@foblex/m-render 2.6.1 → 2.6.3
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.
- package/assets/styles/_code-group.scss +1 -0
- package/assets/styles/_code-highlight.scss +104 -62
- package/assets/styles/_code-view.scss +1 -4
- package/assets/styles/_icons.scss +1 -0
- package/assets/styles/styles.scss +19 -0
- package/fesm2022/foblex-m-render.mjs +2451 -2008
- package/fesm2022/foblex-m-render.mjs.map +1 -1
- package/index.d.ts +3 -5
- package/lib/{domain/i-docs-social-link.d.ts → common/components/f-social-links/domain/i-social-link.d.ts} +1 -1
- package/lib/common/components/f-social-links/domain/i-social-links-provider.d.ts +6 -0
- package/lib/common/components/f-social-links/domain/index.d.ts +2 -0
- package/lib/{f-documentation → common/components}/f-social-links/f-social-links.component.d.ts +1 -1
- package/lib/common/components/f-social-links/index.d.ts +2 -0
- package/lib/common/components/f-theme-button/f-theme-button.component.d.ts +14 -0
- package/lib/{common-components → common/components}/index.d.ts +3 -1
- package/lib/common/components/menus/domain/i-header-menu-link.d.ts +4 -0
- package/lib/common/components/menus/domain/i-header-menu.d.ts +8 -0
- package/lib/common/components/menus/domain/i-version.d.ts +6 -0
- package/lib/common/components/menus/domain/index.d.ts +3 -0
- package/lib/common/components/menus/dropdown-menu/domain/index.d.ts +1 -0
- package/lib/common/components/menus/dropdown-menu/domain/right-top-overlay-position.constant.d.ts +2 -0
- package/lib/common/components/menus/dropdown-menu/dropdown-menu.component.d.ts +19 -0
- package/lib/common/components/menus/dropdown-menu/index.d.ts +2 -0
- package/lib/common/components/menus/index.d.ts +4 -0
- package/lib/common/components/menus/inline-menu/index.d.ts +1 -0
- package/lib/common/components/menus/inline-menu/inline-menu.component.d.ts +17 -0
- package/lib/common/components/menus/npm-version/index.d.ts +1 -0
- package/lib/common/components/menus/npm-version/npm-version.component.d.ts +12 -0
- package/lib/common/directives/index.d.ts +1 -0
- package/lib/common/directives/overflow-observer.directive.d.ts +15 -0
- package/lib/common/domain/configuration-providers/index.d.ts +6 -0
- package/lib/common/domain/configuration-providers/provide-header-media-links.d.ts +3 -0
- package/lib/common/domain/configuration-providers/provide-header-navigation.d.ts +3 -0
- package/lib/common/domain/configuration-providers/provide-header.d.ts +11 -0
- package/lib/common/domain/configuration-providers/provide-language.d.ts +4 -0
- package/lib/common/domain/configuration-providers/provide-logo.d.ts +4 -0
- package/lib/common/domain/configuration-providers/provide-title.d.ts +4 -0
- package/lib/common/domain/i-link.d.ts +4 -0
- package/lib/common/domain/index.d.ts +3 -0
- package/lib/common/domain/providers.d.ts +6 -0
- package/lib/common/index.d.ts +5 -0
- package/lib/common/services/index.d.ts +2 -0
- package/lib/common/services/popover.service.d.ts +9 -0
- package/lib/common/services/theme.service.d.ts +11 -0
- package/lib/{common-services → documentation-page/analytics}/analytics/f-analytics.service.d.ts +2 -2
- package/lib/documentation-page/analytics/analytics/f-cookie-popup/f-cookie-popup.component.d.ts +9 -0
- package/lib/{common-services → documentation-page/analytics}/analytics/index.d.ts +1 -0
- package/lib/{common-services → documentation-page/analytics/common-services}/f-head-tag.service.d.ts +4 -6
- package/lib/documentation-page/analytics/common-services/f-meta.service.d.ts +15 -0
- package/lib/documentation-page/analytics/common-services/index.d.ts +2 -0
- package/lib/documentation-page/analytics/index.d.ts +2 -0
- package/lib/documentation-page/components/header/hamburger-button/domain/i-toggle-navigation-component.d.ts +5 -0
- package/lib/documentation-page/components/header/hamburger-button/domain/index.d.ts +1 -0
- package/lib/documentation-page/components/header/hamburger-button/hamburger-button.component.d.ts +7 -0
- package/lib/documentation-page/components/header/hamburger-button/index.d.ts +2 -0
- package/lib/documentation-page/components/header/header.component.d.ts +6 -0
- package/lib/documentation-page/components/header/index.d.ts +2 -0
- package/lib/documentation-page/components/index.d.ts +4 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-group-tabs/f-code-group-tabs.component.d.ts +11 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-group-tabs/index.d.ts +1 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-group.component.d.ts +10 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-view/components/highlight.component.d.ts +12 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-view/f-code-view.component.d.ts +22 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-view/index.d.ts +3 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-view/utils/parse-language.d.ts +3 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/directives/f-insert-component.directive.d.ts +13 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/domain/i-example-component-instance.d.ts +3 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/domain/i-example-component.d.ts +6 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/domain/i-example-view-data.d.ts +4 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/f-example-view.component.d.ts +18 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/index.d.ts +7 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/utils/coerce-component-height.d.ts +1 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/utils/is-promise.d.ts +1 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/utils/parse-component-tag.d.ts +1 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/index.d.ts +4 -0
- package/lib/{f-documentation/f-page/f-markdown-footer/domain/features → documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/domain}/get-previous-next-page-navigation/get-previous-next-page-navigation.handler.d.ts +3 -3
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/domain/get-previous-next-page-navigation/get-previous-next-page-navigation.response.d.ts +6 -0
- package/lib/{f-documentation/f-page/f-markdown-footer/domain/i-page-link.d.ts → documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/domain/i-markdown-footer-link.d.ts} +1 -1
- package/lib/{domain/i-docs-footer-navigation.d.ts → documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/domain/i-markdown-footer-navigation.d.ts} +1 -1
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/domain/index.d.ts +3 -0
- package/lib/{f-documentation/f-page → documentation-page/components/markdown-container/f-markdown/components}/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/f-footer-navigation-button.component.d.ts +2 -2
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/f-markdown-footer.component.d.ts +24 -0
- package/lib/{f-documentation → documentation-page/components/markdown-container/f-markdown/components/f-preview-group}/f-preview/f-preview.component.d.ts +2 -2
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-preview-group/f-preview/index.d.ts +2 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-preview-group/f-preview-group-filters/index.d.ts +1 -0
- package/lib/{f-documentation → documentation-page/components/markdown-container/f-markdown/components}/f-preview-group/f-preview-group.service.d.ts +1 -1
- package/lib/documentation-page/components/markdown-container/f-markdown/components/f-preview-group/index.d.ts +3 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/components/index.d.ts +3 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/f-markdown-renderer.component.d.ts +23 -0
- package/lib/{f-documentation/f-page/f-markdown/domain → documentation-page/components/markdown-container/f-markdown}/highlight/change-code-focused-syntax.pre-processor.d.ts +2 -2
- package/lib/documentation-page/components/markdown-container/f-markdown/highlight/highlight.service.d.ts +14 -0
- package/lib/{f-documentation/f-page/f-markdown/domain → documentation-page/components/markdown-container/f-markdown}/highlight/index.d.ts +0 -1
- package/lib/{f-documentation/f-page/f-markdown/domain → documentation-page/components/markdown-container/f-markdown}/highlight/mark-code-focused-blocks.post-processor.d.ts +8 -8
- package/lib/{f-documentation/f-page/f-markdown/domain → documentation-page/components/markdown-container/f-markdown}/highlight/modify-punctuation-highlight.post-processor.d.ts +1 -1
- package/lib/documentation-page/components/markdown-container/f-markdown/highlight/theme.d.ts +2 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/index.d.ts +4 -0
- package/lib/{f-documentation/f-page/f-markdown/domain/markdown/parse-markdown → documentation-page/components/markdown-container/f-markdown/markdown/domain}/e-markdown-container-type.d.ts +0 -1
- package/lib/documentation-page/components/markdown-container/f-markdown/markdown/domain/e-parsed-container-type.d.ts +4 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/markdown/domain/i-markdown-container-data.d.ts +4 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/markdown/domain/i-parsed-container-data.d.ts +9 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/markdown/domain/i-preview-navigation-group.d.ts +8 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/markdown/domain/i-preview-navigation-service.d.ts +6 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/markdown/domain/index.d.ts +7 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/markdown/index.d.ts +8 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/markdown/markdown.service.d.ts +19 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/markdown/parse-angular-example-with-code-links.d.ts +17 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/markdown/parse-grouped-code-items.d.ts +15 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/markdown/parse-preview-group.d.ts +18 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/markdown/parse-single-code-item.d.ts +7 -0
- package/lib/documentation-page/components/markdown-container/f-markdown/markdown/utils/get-content.d.ts +2 -0
- package/lib/documentation-page/components/markdown-container/index.d.ts +2 -0
- package/lib/documentation-page/components/markdown-container/markdown-container.component.d.ts +5 -0
- package/lib/documentation-page/components/navigation-panel/index.d.ts +4 -0
- package/lib/documentation-page/components/navigation-panel/navigation-group/navigation-group.component.d.ts +8 -0
- package/lib/documentation-page/components/navigation-panel/navigation-panel.component.d.ts +23 -0
- package/lib/documentation-page/components/scrollable-container/components/index.d.ts +1 -0
- package/lib/documentation-page/components/scrollable-container/components/table-of-content/index.d.ts +2 -0
- package/lib/documentation-page/components/scrollable-container/components/table-of-content/table-of-content-items/index.d.ts +1 -0
- package/lib/documentation-page/components/scrollable-container/components/table-of-content/table-of-content-items/table-of-content-items.component.d.ts +7 -0
- package/lib/documentation-page/components/scrollable-container/components/table-of-content/table-of-content.component.d.ts +16 -0
- package/lib/documentation-page/components/scrollable-container/domain/activate-toc-by-hash/activate-toc-by-hash.handler.d.ts +9 -0
- package/lib/documentation-page/components/scrollable-container/domain/activate-toc-by-hash/activate-toc-by-hash.request.d.ts +4 -0
- package/lib/documentation-page/components/scrollable-container/domain/activate-toc-by-hash/index.d.ts +2 -0
- package/lib/documentation-page/components/scrollable-container/domain/calculate-hash-from-scroll-position-and-activate-toc/calculate-hash-from-scroll-position-and-activate-toc.handler.d.ts +18 -0
- package/lib/documentation-page/components/scrollable-container/domain/calculate-hash-from-scroll-position-and-activate-toc/calculate-hash-from-scroll-position-and-activate-toc.request.d.ts +2 -0
- package/lib/documentation-page/components/scrollable-container/domain/calculate-hash-from-scroll-position-and-activate-toc/index.d.ts +2 -0
- package/lib/documentation-page/components/scrollable-container/domain/calculate-table-of-content-data/calculate-table-of-content-data.handler.d.ts +15 -0
- package/lib/documentation-page/components/scrollable-container/domain/calculate-table-of-content-data/calculate-table-of-content-data.request.d.ts +4 -0
- package/lib/documentation-page/components/scrollable-container/domain/calculate-table-of-content-data/index.d.ts +2 -0
- package/lib/{f-documentation/f-scrollable-container → documentation-page/components/scrollable-container}/domain/get-absolute-top-to-container/get-absolute-top-to-container.handler.d.ts +4 -0
- package/lib/documentation-page/components/scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.request.d.ts +4 -0
- package/lib/documentation-page/components/scrollable-container/domain/i-scrollable-container.d.ts +5 -0
- package/lib/{domain/i-docs-table-of-content.d.ts → documentation-page/components/scrollable-container/domain/i-table-of-content.d.ts} +1 -1
- package/lib/documentation-page/components/scrollable-container/domain/index.d.ts +11 -0
- package/lib/documentation-page/components/scrollable-container/domain/providers.d.ts +7 -0
- package/lib/documentation-page/components/scrollable-container/domain/render-dynamic-components/index.d.ts +2 -0
- package/lib/documentation-page/components/scrollable-container/domain/render-dynamic-components/render-dynamic-components.handler.d.ts +16 -0
- package/lib/{f-documentation/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.request.d.ts → documentation-page/components/scrollable-container/domain/render-dynamic-components/render-dynamic-components.request.d.ts} +1 -1
- package/lib/documentation-page/components/scrollable-container/domain/scroll-to-element-in-container/index.d.ts +2 -0
- package/lib/documentation-page/components/scrollable-container/domain/scroll-to-element-in-container/scroll-to-element-in-container.handler.d.ts +15 -0
- package/lib/documentation-page/components/scrollable-container/domain/scroll-to-element-in-container/scroll-to-element-in-container.request.d.ts +4 -0
- package/lib/documentation-page/components/scrollable-container/index.d.ts +3 -0
- package/lib/documentation-page/components/scrollable-container/scrollable-container.component.d.ts +12 -0
- package/lib/documentation-page/documentation-root.component.d.ts +14 -0
- package/lib/documentation-page/domain/configuration-providers/index.d.ts +8 -0
- package/lib/documentation-page/domain/configuration-providers/provide-404-markdown.d.ts +2 -0
- package/lib/documentation-page/domain/configuration-providers/provide-components.d.ts +6 -0
- package/lib/documentation-page/domain/configuration-providers/provide-directory.d.ts +2 -0
- package/lib/documentation-page/domain/configuration-providers/provide-documentation-meta.d.ts +3 -0
- package/lib/documentation-page/domain/configuration-providers/provide-documentation.d.ts +11 -0
- package/lib/documentation-page/domain/configuration-providers/provide-footer-navigation.d.ts +2 -0
- package/lib/documentation-page/domain/configuration-providers/provide-navigation.d.ts +4 -0
- package/lib/documentation-page/domain/configuration-providers/provide-toc-data.d.ts +3 -0
- package/lib/documentation-page/domain/handle-navigation-links/handle-navigation-links.handler.d.ts +16 -0
- package/lib/documentation-page/domain/i-documentation-configuration.d.ts +15 -0
- package/lib/documentation-page/domain/index.d.ts +4 -0
- package/lib/documentation-page/domain/providers.d.ts +2 -0
- package/lib/documentation-page/index.d.ts +6 -0
- package/lib/documentation-page/routes.d.ts +2 -0
- package/lib/documentation-page/services/documentation.store.d.ts +23 -0
- package/lib/documentation-page/services/index.d.ts +1 -0
- package/lib/home-page/components/f-home-page-buttons-row/index.d.ts +1 -0
- package/lib/home-page/components/f-home-page-features/index.d.ts +1 -0
- package/lib/home-page/components/f-home-page-footer/index.d.ts +1 -0
- package/lib/home-page/components/f-home-page-header/index.d.ts +1 -0
- package/lib/home-page/components/f-home-page-hero/index.d.ts +1 -0
- package/lib/home-page/components/f-home-page-memberships/index.d.ts +1 -0
- package/lib/home-page/components/index.d.ts +6 -0
- package/lib/home-page/domain/configuration-providers/index.d.ts +7 -0
- package/lib/home-page/domain/configuration-providers/provide-background.d.ts +3 -0
- package/lib/home-page/domain/configuration-providers/provide-hero.d.ts +8 -0
- package/lib/home-page/domain/configuration-providers/provide-home-buttons.d.ts +9 -0
- package/lib/home-page/domain/configuration-providers/provide-home-features.d.ts +6 -0
- package/lib/home-page/domain/configuration-providers/provide-home-footer.d.ts +5 -0
- package/lib/home-page/domain/configuration-providers/provide-home-page.d.ts +11 -0
- package/lib/home-page/domain/configuration-providers/provide-image.d.ts +3 -0
- package/lib/home-page/domain/i-home-page-configuration.d.ts +11 -0
- package/lib/home-page/domain/index.d.ts +3 -0
- package/lib/{f-home-page/f-home-page.component.d.ts → home-page/home-root.component.d.ts} +4 -4
- package/lib/home-page/index.d.ts +5 -0
- package/lib/home-page/router.d.ts +2 -0
- package/lib/{f-home-page/f-home-page-environment.service.d.ts → home-page/services/home.store.d.ts} +7 -6
- package/lib/home-page/services/index.d.ts +1 -0
- package/package.json +3 -5
- package/esm2022/foblex-m-render.mjs +0 -5
- package/esm2022/lib/common-components/f-checkbox/f-checkbox.component.mjs +0 -73
- package/esm2022/lib/common-components/f-cookie-popup/f-cookie-popup.component.mjs +0 -33
- package/esm2022/lib/common-components/f-radio-button/f-radio-button.component.mjs +0 -41
- package/esm2022/lib/common-components/f-theme-button/f-theme-button.component.mjs +0 -44
- package/esm2022/lib/common-components/index.mjs +0 -5
- package/esm2022/lib/common-services/analytics/f-accept-cookies-key.mjs +0 -2
- package/esm2022/lib/common-services/analytics/f-analytics.service.mjs +0 -50
- package/esm2022/lib/common-services/analytics/i-window-with-analytics.mjs +0 -2
- package/esm2022/lib/common-services/analytics/index.mjs +0 -5
- package/esm2022/lib/common-services/analytics/set-cookie-consent.mjs +0 -32
- package/esm2022/lib/common-services/f-head-tag.service.mjs +0 -54
- package/esm2022/lib/common-services/f-meta.service.mjs +0 -80
- package/esm2022/lib/common-services/f-popover.service.mjs +0 -25
- package/esm2022/lib/common-services/index.mjs +0 -6
- package/esm2022/lib/common-services/json-ld/f-json-ld.service.mjs +0 -53
- package/esm2022/lib/common-services/json-ld/i-json-ld-creator.mjs +0 -2
- package/esm2022/lib/common-services/json-ld/i-json-ld-entity-of-page.mjs +0 -2
- package/esm2022/lib/common-services/json-ld/i-json-ld.mjs +0 -2
- package/esm2022/lib/common-services/json-ld/index.mjs +0 -5
- package/esm2022/lib/domain/f-state.service.mjs +0 -28
- package/esm2022/lib/domain/get-version-handler/get-version.handler.mjs +0 -28
- package/esm2022/lib/domain/get-version-handler/get-version.request.mjs +0 -7
- package/esm2022/lib/domain/get-version-handler/index.mjs +0 -3
- package/esm2022/lib/domain/handle-navigation-links/handle-navigation-links.handler.mjs +0 -53
- package/esm2022/lib/domain/handle-navigation-links/handle-navigation-links.request.mjs +0 -7
- package/esm2022/lib/domain/handle-navigation-links/index.mjs +0 -3
- package/esm2022/lib/domain/i-docs-component.mjs +0 -2
- package/esm2022/lib/domain/i-docs-footer-navigation.mjs +0 -2
- package/esm2022/lib/domain/i-docs-header-navigation-item.mjs +0 -2
- package/esm2022/lib/domain/i-docs-social-link.mjs +0 -2
- package/esm2022/lib/domain/i-docs-table-of-content.mjs +0 -2
- package/esm2022/lib/domain/i-docs-version.mjs +0 -2
- package/esm2022/lib/domain/i-environment-service.mjs +0 -2
- package/esm2022/lib/domain/i-meta-data.mjs +0 -2
- package/esm2022/lib/domain/index.mjs +0 -11
- package/esm2022/lib/f-documentation/domain/i-docs-environment.mjs +0 -2
- package/esm2022/lib/f-documentation/domain/index.mjs +0 -2
- package/esm2022/lib/f-documentation/f-badge/f-badge.component.mjs +0 -20
- package/esm2022/lib/f-documentation/f-badge/index.mjs +0 -2
- package/esm2022/lib/f-documentation/f-documentation-environment.service.mjs +0 -69
- package/esm2022/lib/f-documentation/f-documentation.component.mjs +0 -54
- package/esm2022/lib/f-documentation/f-hamburger-button/f-hamburger-button.component.mjs +0 -25
- package/esm2022/lib/f-documentation/f-header/f-header.component.mjs +0 -24
- package/esm2022/lib/f-documentation/f-header-menu/f-header-menu.component.mjs +0 -26
- package/esm2022/lib/f-documentation/f-navigation-panel/domain/i-navigation-group.mjs +0 -2
- package/esm2022/lib/f-documentation/f-navigation-panel/domain/i-navigation-item-badge.mjs +0 -2
- package/esm2022/lib/f-documentation/f-navigation-panel/domain/i-navigation-item.mjs +0 -2
- package/esm2022/lib/f-documentation/f-navigation-panel/domain/index.mjs +0 -4
- package/esm2022/lib/f-documentation/f-navigation-panel/f-navigation-group/f-navigation-group.component.mjs +0 -21
- package/esm2022/lib/f-documentation/f-navigation-panel/f-navigation-header/f-navigation-header.component.mjs +0 -26
- package/esm2022/lib/f-documentation/f-navigation-panel/f-navigation-item/f-navigation-item.component.mjs +0 -11
- package/esm2022/lib/f-documentation/f-navigation-panel/f-navigation-panel.component.mjs +0 -101
- package/esm2022/lib/f-documentation/f-navigation-panel/index.mjs +0 -6
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.handler.mjs +0 -107
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.request.mjs +0 -7
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-dynamic-components/index.mjs +0 -3
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.handler.mjs +0 -35
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.request.mjs +0 -7
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/i-parsed-container.mjs +0 -2
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/index.mjs +0 -5
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard/copy-to-clipboard.mjs +0 -15
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard/index.mjs +0 -2
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-async-code-view-handler.mjs +0 -46
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/f-code-group.handler.mjs +0 -54
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/i-code-group-view.mjs +0 -2
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/index.mjs +0 -3
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group-body.handler.mjs +0 -48
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-view-handler.mjs +0 -63
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-example-view-handler.mjs +0 -10
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/index.mjs +0 -7
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/highlight/change-code-focused-syntax.pre-processor.mjs +0 -23
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/highlight/highlight.service.mjs +0 -56
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/highlight/index.mjs +0 -6
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/highlight/mark-code-focused-blocks.post-processor.mjs +0 -53
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/highlight/modify-punctuation-highlight.post-processor.mjs +0 -22
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/highlight/separate-code-by-lines.post-processor.mjs +0 -28
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/index.mjs +0 -5
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/markdown/index.mjs +0 -4
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/markdown/markdown.service.mjs +0 -69
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/e-markdown-container-type.mjs +0 -13
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/i-markdown-it-token.mjs +0 -2
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/index.mjs +0 -8
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-alerts.mjs +0 -19
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-group.mjs +0 -54
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-view.mjs +0 -15
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-example-group.mjs +0 -92
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-preview-group.mjs +0 -54
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/markdown/utils/get-content.mjs +0 -17
- package/esm2022/lib/f-documentation/f-page/f-markdown/domain/markdown/utils/index.mjs +0 -2
- package/esm2022/lib/f-documentation/f-page/f-markdown/f-markdown-renderer.component.mjs +0 -84
- package/esm2022/lib/f-documentation/f-page/f-markdown/index.mjs +0 -3
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.handler.mjs +0 -37
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.request.mjs +0 -7
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.response.mjs +0 -9
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/index.mjs +0 -4
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/domain/features/index.mjs +0 -2
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/domain/i-page-link.mjs +0 -2
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/domain/index.mjs +0 -3
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-information.component.mjs +0 -11
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/f-footer-edit-link.component.mjs +0 -11
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/index.mjs +0 -2
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/f-footer-last-updated.component.mjs +0 -11
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/index.mjs +0 -2
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/f-footer-edit-information/index.mjs +0 -2
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/f-footer-navigation-button.component.mjs +0 -19
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/index.mjs +0 -2
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation.component.mjs +0 -11
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/f-footer-navigation/index.mjs +0 -3
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/f-markdown-footer.component.mjs +0 -89
- package/esm2022/lib/f-documentation/f-page/f-markdown-footer/index.mjs +0 -5
- package/esm2022/lib/f-documentation/f-page/f-page.component.mjs +0 -18
- package/esm2022/lib/f-documentation/f-page/f-table-of-content/f-table-of-content-items/f-table-of-content-items.component.mjs +0 -14
- package/esm2022/lib/f-documentation/f-page/f-table-of-content/f-table-of-content-items/index.mjs +0 -2
- package/esm2022/lib/f-documentation/f-page/f-table-of-content/f-table-of-content.component.mjs +0 -69
- package/esm2022/lib/f-documentation/f-page/f-table-of-content/index.mjs +0 -3
- package/esm2022/lib/f-documentation/f-page/index.mjs +0 -5
- package/esm2022/lib/f-documentation/f-preview/f-preview-base.mjs +0 -3
- package/esm2022/lib/f-documentation/f-preview/f-preview.component.mjs +0 -79
- package/esm2022/lib/f-documentation/f-preview-group/f-preview-group.service.mjs +0 -73
- package/esm2022/lib/f-documentation/f-preview-group-filters/f-preview-group-filters.component.mjs +0 -53
- package/esm2022/lib/f-documentation/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.handler.mjs +0 -53
- package/esm2022/lib/f-documentation/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.request.mjs +0 -7
- package/esm2022/lib/f-documentation/f-scrollable-container/domain/calculate-hash-from-scroll-position/index.mjs +0 -3
- package/esm2022/lib/f-documentation/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.handler.mjs +0 -14
- package/esm2022/lib/f-documentation/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.request.mjs +0 -9
- package/esm2022/lib/f-documentation/f-scrollable-container/domain/get-absolute-top-to-container/index.mjs +0 -3
- package/esm2022/lib/f-documentation/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.handler.mjs +0 -52
- package/esm2022/lib/f-documentation/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.request.mjs +0 -9
- package/esm2022/lib/f-documentation/f-scrollable-container/domain/get-table-of-content-data/index.mjs +0 -3
- package/esm2022/lib/f-documentation/f-scrollable-container/domain/i-table-of-content-item.mjs +0 -2
- package/esm2022/lib/f-documentation/f-scrollable-container/domain/index.mjs +0 -7
- package/esm2022/lib/f-documentation/f-scrollable-container/domain/scroll-to-element-in-container.mjs +0 -35
- package/esm2022/lib/f-documentation/f-scrollable-container/domain/table-of-content-data.mjs +0 -9
- package/esm2022/lib/f-documentation/f-scrollable-container/f-scrollable-container.component.mjs +0 -32
- package/esm2022/lib/f-documentation/f-scrollable-container/f-scrollable.service.mjs +0 -60
- package/esm2022/lib/f-documentation/f-scrollable-container/index.mjs +0 -3
- package/esm2022/lib/f-documentation/f-social-links/f-social-links.component.mjs +0 -13
- package/esm2022/lib/f-documentation/f-version/f-version.component.mjs +0 -16
- package/esm2022/lib/f-documentation/i-documentation-component.mjs +0 -3
- package/esm2022/lib/f-documentation/index.mjs +0 -20
- package/esm2022/lib/f-documentation/providers.mjs +0 -3
- package/esm2022/lib/f-documentation/router.mjs +0 -13
- package/esm2022/lib/f-home-page/domain/i-home-page-environment.mjs +0 -2
- package/esm2022/lib/f-home-page/domain/i-home-page-feature.mjs +0 -2
- package/esm2022/lib/f-home-page/domain/i-home-page-footer.mjs +0 -2
- package/esm2022/lib/f-home-page/domain/i-home-page-hero.mjs +0 -2
- package/esm2022/lib/f-home-page/domain/i-home-page-link.mjs +0 -2
- package/esm2022/lib/f-home-page/domain/i-home-page-membership.mjs +0 -2
- package/esm2022/lib/f-home-page/domain/index.mjs +0 -7
- package/esm2022/lib/f-home-page/f-home-page-environment.service.mjs +0 -39
- package/esm2022/lib/f-home-page/f-home-page-features/f-home-page-features.component.mjs +0 -15
- package/esm2022/lib/f-home-page/f-home-page-footer/f-home-page-footer.component.mjs +0 -13
- package/esm2022/lib/f-home-page/f-home-page-header/f-home-page-header.component.mjs +0 -17
- package/esm2022/lib/f-home-page/f-home-page-hero/f-home-page-buttons-row/f-home-page-buttons-row.component.mjs +0 -18
- package/esm2022/lib/f-home-page/f-home-page-hero/f-home-page-hero.component.mjs +0 -16
- package/esm2022/lib/f-home-page/f-home-page-memberships/f-home-page-memberships.component.mjs +0 -15
- package/esm2022/lib/f-home-page/f-home-page.component.mjs +0 -59
- package/esm2022/lib/f-home-page/index.mjs +0 -10
- package/esm2022/lib/f-home-page/providers.mjs +0 -3
- package/esm2022/lib/f-home-page/router.mjs +0 -7
- package/esm2022/lib/index.mjs +0 -6
- package/esm2022/public-api.mjs +0 -2
- package/lib/common-components/f-cookie-popup/f-cookie-popup.component.d.ts +0 -9
- package/lib/common-components/f-theme-button/f-theme-button.component.d.ts +0 -15
- package/lib/common-services/f-meta.service.d.ts +0 -20
- package/lib/common-services/f-popover.service.d.ts +0 -11
- package/lib/common-services/index.d.ts +0 -5
- package/lib/common-services/json-ld/f-json-ld.service.d.ts +0 -12
- package/lib/common-services/json-ld/i-json-ld-creator.d.ts +0 -7
- package/lib/common-services/json-ld/i-json-ld-entity-of-page.d.ts +0 -3
- package/lib/common-services/json-ld/i-json-ld.d.ts +0 -9
- package/lib/common-services/json-ld/index.d.ts +0 -4
- package/lib/domain/f-state.service.d.ts +0 -13
- package/lib/domain/get-version-handler/get-version.handler.d.ts +0 -13
- package/lib/domain/get-version-handler/get-version.request.d.ts +0 -5
- package/lib/domain/get-version-handler/index.d.ts +0 -2
- package/lib/domain/handle-navigation-links/handle-navigation-links.handler.d.ts +0 -19
- package/lib/domain/i-docs-component.d.ts +0 -5
- package/lib/domain/i-docs-header-navigation-item.d.ts +0 -5
- package/lib/domain/i-docs-version.d.ts +0 -4
- package/lib/domain/i-environment-service.d.ts +0 -4
- package/lib/domain/index.d.ts +0 -10
- package/lib/f-documentation/domain/i-docs-environment.d.ts +0 -21
- package/lib/f-documentation/domain/index.d.ts +0 -1
- package/lib/f-documentation/f-badge/f-badge.component.d.ts +0 -7
- package/lib/f-documentation/f-badge/index.d.ts +0 -1
- package/lib/f-documentation/f-documentation-environment.service.d.ts +0 -23
- package/lib/f-documentation/f-documentation.component.d.ts +0 -15
- package/lib/f-documentation/f-hamburger-button/f-hamburger-button.component.d.ts +0 -9
- package/lib/f-documentation/f-header/f-header.component.d.ts +0 -6
- package/lib/f-documentation/f-header-menu/f-header-menu.component.d.ts +0 -15
- package/lib/f-documentation/f-navigation-panel/f-navigation-group/f-navigation-group.component.d.ts +0 -8
- package/lib/f-documentation/f-navigation-panel/f-navigation-header/f-navigation-header.component.d.ts +0 -12
- package/lib/f-documentation/f-navigation-panel/f-navigation-panel.component.d.ts +0 -28
- package/lib/f-documentation/f-navigation-panel/index.d.ts +0 -5
- package/lib/f-documentation/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.handler.d.ts +0 -26
- package/lib/f-documentation/f-page/f-markdown/domain/handle-dynamic-components/index.d.ts +0 -2
- package/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.handler.d.ts +0 -16
- package/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.request.d.ts +0 -4
- package/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/i-parsed-container.d.ts +0 -3
- package/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/index.d.ts +0 -4
- package/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-async-code-view-handler.d.ts +0 -10
- package/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/f-code-group.handler.d.ts +0 -18
- package/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/i-code-group-view.d.ts +0 -3
- package/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/index.d.ts +0 -2
- package/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group-body.handler.d.ts +0 -15
- package/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-view-handler.d.ts +0 -21
- package/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-example-view-handler.d.ts +0 -6
- package/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/index.d.ts +0 -6
- package/lib/f-documentation/f-page/f-markdown/domain/highlight/highlight.service.d.ts +0 -15
- package/lib/f-documentation/f-page/f-markdown/domain/highlight/separate-code-by-lines.post-processor.d.ts +0 -9
- package/lib/f-documentation/f-page/f-markdown/domain/index.d.ts +0 -4
- package/lib/f-documentation/f-page/f-markdown/domain/markdown/index.d.ts +0 -3
- package/lib/f-documentation/f-page/f-markdown/domain/markdown/markdown.service.d.ts +0 -22
- package/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/index.d.ts +0 -7
- package/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-group.d.ts +0 -17
- package/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-view.d.ts +0 -5
- package/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-example-group.d.ts +0 -21
- package/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-preview-group.d.ts +0 -18
- package/lib/f-documentation/f-page/f-markdown/domain/markdown/utils/get-content.d.ts +0 -2
- package/lib/f-documentation/f-page/f-markdown/f-markdown-renderer.component.d.ts +0 -25
- package/lib/f-documentation/f-page/f-markdown/index.d.ts +0 -2
- package/lib/f-documentation/f-page/f-markdown-footer/domain/features/get-previous-next-page-navigation/get-previous-next-page-navigation.response.d.ts +0 -6
- package/lib/f-documentation/f-page/f-markdown-footer/domain/features/index.d.ts +0 -1
- package/lib/f-documentation/f-page/f-markdown-footer/domain/index.d.ts +0 -2
- package/lib/f-documentation/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/f-footer-last-updated.component.d.ts +0 -5
- package/lib/f-documentation/f-page/f-markdown-footer/f-footer-edit-information/f-footer-last-updated/index.d.ts +0 -1
- package/lib/f-documentation/f-page/f-markdown-footer/f-markdown-footer.component.d.ts +0 -30
- package/lib/f-documentation/f-page/f-page.component.d.ts +0 -5
- package/lib/f-documentation/f-page/f-table-of-content/f-table-of-content-items/f-table-of-content-items.component.d.ts +0 -7
- package/lib/f-documentation/f-page/f-table-of-content/f-table-of-content-items/index.d.ts +0 -1
- package/lib/f-documentation/f-page/f-table-of-content/f-table-of-content.component.d.ts +0 -28
- package/lib/f-documentation/f-page/f-table-of-content/index.d.ts +0 -2
- package/lib/f-documentation/f-page/index.d.ts +0 -4
- package/lib/f-documentation/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.handler.d.ts +0 -15
- package/lib/f-documentation/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.request.d.ts +0 -5
- package/lib/f-documentation/f-scrollable-container/domain/calculate-hash-from-scroll-position/index.d.ts +0 -2
- package/lib/f-documentation/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.request.d.ts +0 -5
- package/lib/f-documentation/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.handler.d.ts +0 -11
- package/lib/f-documentation/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.request.d.ts +0 -11
- package/lib/f-documentation/f-scrollable-container/domain/get-table-of-content-data/index.d.ts +0 -2
- package/lib/f-documentation/f-scrollable-container/domain/index.d.ts +0 -6
- package/lib/f-documentation/f-scrollable-container/domain/scroll-to-element-in-container.d.ts +0 -12
- package/lib/f-documentation/f-scrollable-container/f-scrollable-container.component.d.ts +0 -13
- package/lib/f-documentation/f-scrollable-container/f-scrollable.service.d.ts +0 -25
- package/lib/f-documentation/f-scrollable-container/index.d.ts +0 -2
- package/lib/f-documentation/f-version/f-version.component.d.ts +0 -7
- package/lib/f-documentation/i-documentation-component.d.ts +0 -5
- package/lib/f-documentation/index.d.ts +0 -19
- package/lib/f-documentation/providers.d.ts +0 -3
- package/lib/f-documentation/router.d.ts +0 -2
- package/lib/f-home-page/domain/i-home-page-environment.d.ts +0 -20
- package/lib/f-home-page/domain/i-home-page-feature.d.ts +0 -4
- package/lib/f-home-page/domain/i-home-page-footer.d.ts +0 -3
- package/lib/f-home-page/domain/i-home-page-hero.d.ts +0 -6
- package/lib/f-home-page/domain/i-home-page-link.d.ts +0 -7
- package/lib/f-home-page/domain/index.d.ts +0 -6
- package/lib/f-home-page/index.d.ts +0 -9
- package/lib/f-home-page/providers.d.ts +0 -3
- package/lib/f-home-page/router.d.ts +0 -2
- package/lib/index.d.ts +0 -5
- package/public-api.d.ts +0 -1
- /package/lib/{common-components → common/components}/f-checkbox/f-checkbox.component.d.ts +0 -0
- /package/lib/{common-components → common/components}/f-radio-button/f-radio-button.component.d.ts +0 -0
- /package/lib/{f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard → common/utils}/copy-to-clipboard.d.ts +0 -0
- /package/lib/{f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard → common/utils}/index.d.ts +0 -0
- /package/lib/{common-services → documentation-page/analytics}/analytics/f-accept-cookies-key.d.ts +0 -0
- /package/lib/{common-services → documentation-page/analytics}/analytics/i-window-with-analytics.d.ts +0 -0
- /package/lib/{common-services → documentation-page/analytics}/analytics/set-cookie-consent.d.ts +0 -0
- /package/lib/{domain → documentation-page/analytics/common-services}/i-meta-data.d.ts +0 -0
- /package/lib/{f-documentation/f-page/f-markdown-footer/domain/features → documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/domain}/get-previous-next-page-navigation/get-previous-next-page-navigation.request.d.ts +0 -0
- /package/lib/{f-documentation/f-page/f-markdown-footer/domain/features → documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/domain}/get-previous-next-page-navigation/index.d.ts +0 -0
- /package/lib/{f-documentation/f-page → documentation-page/components/markdown-container/f-markdown/components}/f-markdown-footer/f-footer-edit-information/f-footer-edit-information.component.d.ts +0 -0
- /package/lib/{f-documentation/f-page → documentation-page/components/markdown-container/f-markdown/components}/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/f-footer-edit-link.component.d.ts +0 -0
- /package/lib/{f-documentation/f-page → documentation-page/components/markdown-container/f-markdown/components}/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/index.d.ts +0 -0
- /package/lib/{f-documentation/f-page → documentation-page/components/markdown-container/f-markdown/components}/f-markdown-footer/f-footer-edit-information/index.d.ts +0 -0
- /package/lib/{f-documentation/f-page → documentation-page/components/markdown-container/f-markdown/components}/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/index.d.ts +0 -0
- /package/lib/{f-documentation/f-page → documentation-page/components/markdown-container/f-markdown/components}/f-markdown-footer/f-footer-navigation/f-footer-navigation.component.d.ts +0 -0
- /package/lib/{f-documentation/f-page → documentation-page/components/markdown-container/f-markdown/components}/f-markdown-footer/f-footer-navigation/index.d.ts +0 -0
- /package/lib/{f-documentation/f-page → documentation-page/components/markdown-container/f-markdown/components}/f-markdown-footer/index.d.ts +0 -0
- /package/lib/{f-documentation → documentation-page/components/markdown-container/f-markdown/components/f-preview-group}/f-preview/f-preview-base.d.ts +0 -0
- /package/lib/{f-documentation → documentation-page/components/markdown-container/f-markdown/components/f-preview-group}/f-preview-group-filters/f-preview-group-filters.component.d.ts +0 -0
- /package/lib/{f-documentation/f-page/f-markdown/domain/markdown/parse-markdown → documentation-page/components/markdown-container/f-markdown/markdown/domain}/i-markdown-it-token.d.ts +0 -0
- /package/lib/{f-documentation/f-page/f-markdown/domain/markdown/parse-markdown → documentation-page/components/markdown-container/f-markdown/markdown}/parse-alerts.d.ts +0 -0
- /package/lib/{f-documentation/f-page/f-markdown/domain → documentation-page/components/markdown-container/f-markdown}/markdown/utils/index.d.ts +0 -0
- /package/lib/{f-documentation/f-navigation-panel → documentation-page/components/navigation-panel}/domain/i-navigation-group.d.ts +0 -0
- /package/lib/{f-documentation/f-navigation-panel → documentation-page/components/navigation-panel}/domain/i-navigation-item-badge.d.ts +0 -0
- /package/lib/{f-documentation/f-navigation-panel → documentation-page/components/navigation-panel}/domain/i-navigation-item.d.ts +0 -0
- /package/lib/{f-documentation/f-navigation-panel → documentation-page/components/navigation-panel}/domain/index.d.ts +0 -0
- /package/lib/{f-documentation/f-navigation-panel → documentation-page/components/navigation-panel}/f-navigation-item/f-navigation-item.component.d.ts +0 -0
- /package/lib/{f-documentation/f-scrollable-container → documentation-page/components/scrollable-container}/domain/get-absolute-top-to-container/index.d.ts +0 -0
- /package/lib/{f-documentation/f-scrollable-container → documentation-page/components/scrollable-container}/domain/i-table-of-content-item.d.ts +0 -0
- /package/lib/{f-documentation/f-scrollable-container → documentation-page/components/scrollable-container}/domain/table-of-content-data.d.ts +0 -0
- /package/lib/{domain → documentation-page/domain}/handle-navigation-links/handle-navigation-links.request.d.ts +0 -0
- /package/lib/{domain → documentation-page/domain}/handle-navigation-links/index.d.ts +0 -0
- /package/lib/{f-home-page/f-home-page-hero → home-page/components}/f-home-page-buttons-row/f-home-page-buttons-row.component.d.ts +0 -0
- /package/lib/{f-home-page → home-page/components}/f-home-page-features/f-home-page-features.component.d.ts +0 -0
- /package/lib/{f-home-page → home-page/components}/f-home-page-footer/f-home-page-footer.component.d.ts +0 -0
- /package/lib/{f-home-page → home-page/components}/f-home-page-header/f-home-page-header.component.d.ts +0 -0
- /package/lib/{f-home-page → home-page/components}/f-home-page-hero/f-home-page-hero.component.d.ts +0 -0
- /package/lib/{f-home-page → home-page/components}/f-home-page-memberships/f-home-page-memberships.component.d.ts +0 -0
- /package/lib/{f-home-page → home-page}/domain/i-home-page-membership.d.ts +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"foblex-m-render.mjs","sources":["../../../projects/m-render/src/lib/common-components/f-checkbox/f-checkbox.component.ts","../../../projects/m-render/src/lib/common-components/f-checkbox/f-checkbox.component.html","../../../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/common-services/f-meta.service.ts","../../../projects/m-render/src/lib/common-services/f-popover.service.ts","../../../projects/m-render/src/lib/common-components/f-cookie-popup/f-cookie-popup.component.ts","../../../projects/m-render/src/lib/common-components/f-cookie-popup/f-cookie-popup.component.html","../../../projects/m-render/src/lib/common-components/f-radio-button/f-radio-button.component.ts","../../../projects/m-render/src/lib/common-components/f-radio-button/f-radio-button.component.html","../../../projects/m-render/src/lib/domain/f-state.service.ts","../../../projects/m-render/src/lib/common-components/f-theme-button/f-theme-button.component.ts","../../../projects/m-render/src/lib/common-components/f-theme-button/f-theme-button.component.html","../../../projects/m-render/src/lib/domain/get-version-handler/get-version.request.ts","../../../projects/m-render/src/lib/domain/get-version-handler/get-version.handler.ts","../../../projects/m-render/src/lib/domain/handle-navigation-links/handle-navigation-links.handler.ts","../../../projects/m-render/src/lib/domain/handle-navigation-links/handle-navigation-links.request.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-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-documentation-environment.service.ts","../../../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/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-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-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-navigation-panel/f-navigation-group/f-navigation-group.component.ts","../../../projects/m-render/src/lib/f-documentation/f-navigation-panel/f-navigation-group/f-navigation-group.component.html","../../../projects/m-render/src/lib/f-documentation/f-navigation-panel/f-navigation-header/f-navigation-header.component.ts","../../../projects/m-render/src/lib/f-documentation/f-navigation-panel/f-navigation-header/f-navigation-header.component.html","../../../projects/m-render/src/lib/f-documentation/f-navigation-panel/f-navigation-item/f-navigation-item.component.ts","../../../projects/m-render/src/lib/f-documentation/f-navigation-panel/f-navigation-item/f-navigation-item.component.html","../../../projects/m-render/src/lib/f-documentation/f-navigation-panel/f-navigation-panel.component.ts","../../../projects/m-render/src/lib/f-documentation/f-navigation-panel/f-navigation-panel.component.html","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.handler.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/handle-dynamic-components/handle-dynamic-components.request.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/clipboard/copy-to-clipboard.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/highlight/change-code-focused-syntax.pre-processor.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/highlight/separate-code-by-lines.post-processor.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/highlight/modify-punctuation-highlight.post-processor.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/highlight/mark-code-focused-blocks.post-processor.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/highlight/highlight.service.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-view-handler.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-example-view-handler.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-async-code-view-handler.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group-body.handler.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/pseudo-components/f-code-group/f-code-group.handler.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.handler.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/handle-parsed-containers/handle-parsed-containers.request.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/e-markdown-container-type.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-alerts.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-group.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-code-view.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/markdown/utils/get-content.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-example-group.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/markdown/parse-markdown/parse-preview-group.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/domain/markdown/markdown.service.ts","../../../projects/m-render/src/lib/f-documentation/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.handler.ts","../../../projects/m-render/src/lib/f-documentation/f-scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.request.ts","../../../projects/m-render/src/lib/f-documentation/f-scrollable-container/domain/table-of-content-data.ts","../../../projects/m-render/src/lib/f-documentation/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.handler.ts","../../../projects/m-render/src/lib/f-documentation/f-scrollable-container/domain/get-table-of-content-data/get-table-of-content-data.request.ts","../../../projects/m-render/src/lib/f-documentation/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.handler.ts","../../../projects/m-render/src/lib/f-documentation/f-scrollable-container/domain/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.request.ts","../../../projects/m-render/src/lib/f-documentation/f-scrollable-container/domain/scroll-to-element-in-container.ts","../../../projects/m-render/src/lib/f-documentation/f-scrollable-container/f-scrollable.service.ts","../../../projects/m-render/src/lib/f-documentation/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-documentation/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-documentation/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-documentation/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-information.component.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown-footer/f-footer-edit-information/f-footer-edit-information.component.html","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/f-footer-navigation-button.component.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/f-footer-navigation-button.component.html","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation.component.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown-footer/f-footer-navigation/f-footer-navigation.component.html","../../../projects/m-render/src/lib/f-documentation/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-documentation/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-documentation/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-documentation/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-documentation/f-page/f-markdown-footer/f-markdown-footer.component.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown-footer/f-markdown-footer.component.html","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/f-markdown-renderer.component.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-markdown/f-markdown-renderer.component.html","../../../projects/m-render/src/lib/f-documentation/f-page/f-table-of-content/f-table-of-content-items/f-table-of-content-items.component.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-table-of-content/f-table-of-content-items/f-table-of-content-items.component.html","../../../projects/m-render/src/lib/f-documentation/f-scrollable-container/f-scrollable-container.component.ts","../../../projects/m-render/src/lib/f-documentation/f-scrollable-container/f-scrollable-container.component.html","../../../projects/m-render/src/lib/f-documentation/f-page/f-table-of-content/f-table-of-content.component.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-table-of-content/f-table-of-content.component.html","../../../projects/m-render/src/lib/f-documentation/f-page/f-page.component.ts","../../../projects/m-render/src/lib/f-documentation/f-page/f-page.component.html","../../../projects/m-render/src/lib/f-documentation/f-preview/f-preview-base.ts","../../../projects/m-render/src/lib/f-documentation/f-preview-group/f-preview-group.service.ts","../../../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-documentation/f-preview-group-filters/f-preview-group-filters.component.ts","../../../projects/m-render/src/lib/f-documentation/f-preview-group-filters/f-preview-group-filters.component.html","../../../projects/m-render/src/lib/f-documentation/i-documentation-component.ts","../../../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-documentation/providers.ts","../../../projects/m-render/src/lib/f-documentation/router.ts","../../../projects/m-render/src/lib/f-home-page/providers.ts","../../../projects/m-render/src/lib/f-home-page/f-home-page-environment.service.ts","../../../projects/m-render/src/lib/f-home-page/f-home-page-features/f-home-page-features.component.ts","../../../projects/m-render/src/lib/f-home-page/f-home-page-features/f-home-page-features.component.html","../../../projects/m-render/src/lib/f-home-page/f-home-page-memberships/f-home-page-memberships.component.ts","../../../projects/m-render/src/lib/f-home-page/f-home-page-memberships/f-home-page-memberships.component.html","../../../projects/m-render/src/lib/f-home-page/f-home-page-header/f-home-page-header.component.ts","../../../projects/m-render/src/lib/f-home-page/f-home-page-header/f-home-page-header.component.html","../../../projects/m-render/src/lib/f-home-page/f-home-page-footer/f-home-page-footer.component.ts","../../../projects/m-render/src/lib/f-home-page/f-home-page-footer/f-home-page-footer.component.html","../../../projects/m-render/src/lib/f-home-page/f-home-page-hero/f-home-page-buttons-row/f-home-page-buttons-row.component.ts","../../../projects/m-render/src/lib/f-home-page/f-home-page-hero/f-home-page-buttons-row/f-home-page-buttons-row.component.html","../../../projects/m-render/src/lib/f-home-page/f-home-page-hero/f-home-page-hero.component.ts","../../../projects/m-render/src/lib/f-home-page/f-home-page-hero/f-home-page-hero.component.html","../../../projects/m-render/src/lib/f-home-page/f-home-page.component.ts","../../../projects/m-render/src/lib/f-home-page/f-home-page.component.html","../../../projects/m-render/src/lib/f-home-page/router.ts","../../../projects/m-render/src/foblex-m-render.ts"],"sourcesContent":["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","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 { 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-documentation';\nimport { IMetaData } from '../domain/i-meta-data';\nimport { IDocsEnvironment } from '../f-documentation';\nimport { FHeadTagService } from './index';\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 { DestroyRef, 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(destroyRef: DestroyRef): void {\n destroyRef.onDestroy(() => {\n this.popover.next(null);\n this.popover.complete();\n });\n }\n}\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 {\n ChangeDetectionStrategy,\n Component, ElementRef, HostListener, input, output, viewChild\n} from '@angular/core';\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'f-radio-button',\n templateUrl: './f-radio-button.component.html',\n styleUrls: [ './f-radio-button.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.f-radio-button-checked]': 'checked()',\n }\n})\nexport class FRadioButtonComponent {\n\n public id = input<string>(`f-radio-button-${ uniqueId++ }`);\n\n public change = output<boolean>();\n public checked = input<boolean>(false);\n\n protected labelElement = viewChild<ElementRef>('label');\n\n public onInputClick(): void {\n this._handleInputClick();\n }\n\n public onTouchTargetClick(): void {\n this._handleInputClick();\n }\n\n private _handleInputClick(): void {\n this._emitChangeEvent();\n }\n\n private _emitChangeEvent(): void {\n this.change.emit(true);\n }\n\n protected onInteractionEvent(event: Event): void {\n event.stopPropagation();\n }\n\n @HostListener('click', [ '$event' ])\n protected preventBubblingFromLabel(event: MouseEvent): void {\n if (!!event.target && this.labelElement()?.nativeElement.contains(event.target as HTMLElement)) {\n event.stopPropagation();\n }\n }\n}\n","<input [id]=\"id()\"\n type=\"radio\"\n [checked]=\"checked()\"\n (click)=\"onInputClick()\"\n (change)=\"onInteractionEvent($event)\"/>\n<div class=\"f-radio-button-container\" (click)=\"onTouchTargetClick()\">\n <div class=\"f-radio-button-inner-circle\"></div>\n</div>\n<label [for]=\"id()\" #label>\n <ng-content></ng-content>\n</label>\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 { 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 {\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 ChangeDetectionStrategy,\n Component, HostListener, Inject\n} from '@angular/core';\nimport { F_DOCUMENTATION_COMPONENT, IDocumentationComponent } from '../index';\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 { Inject, Injectable, Optional } from '@angular/core';\nimport {\n GetVersionHandler,\n GetVersionRequest,\n IDocsComponent,\n IDocsFooterNavigation, IDocsHeaderNavigationItem,\n IDocsSocialLink, IDocsTableOfContent, IEnvironmentService\n} from '../domain';\nimport { F_DOCS_ENVIRONMENT, IDocsEnvironment, INavigationGroup } from './index';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable()\nexport class FDocumentationEnvironmentService implements IEnvironmentService {\n\n constructor(\n @Optional() @Inject(F_DOCS_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 {\n ChangeDetectionStrategy,\n Component, inject\n} from '@angular/core';\nimport { FDocumentationEnvironmentService } from '../f-documentation-environment.service';\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 protected links = inject(FDocumentationEnvironmentService).getSocialLinks();\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 { ChangeDetectionStrategy, Component, inject, OnInit } from '@angular/core';\nimport { IDocsHeaderNavigationItem } from '../../domain';\nimport { Router, RouterLink } from '@angular/router';\nimport { FDocumentationEnvironmentService } from '../f-documentation-environment.service';\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 private _router = inject(Router);\n private _fEnvironmentService = inject(FDocumentationEnvironmentService);\n\n public ngOnInit(): void {\n\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 { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { AsyncPipe } from '@angular/common';\nimport { FDocumentationEnvironmentService } from '../f-documentation-environment.service';\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> = inject(FDocumentationEnvironmentService).getVersion();\n}\n","@if (version$ | async;as version) {\n <span class=\"version\">v{{ version }}</span>\n}\n","import {\n ChangeDetectionStrategy,\n Component, inject\n} from '@angular/core';\nimport {\n FThemeButtonComponent,\n} from '../../common-components';\nimport { FDocumentationEnvironmentService } from '../f-documentation-environment.service';\nimport { FHamburgerButtonComponent } from '../f-hamburger-button/f-hamburger-button.component';\nimport { FSocialLinksComponent } from '../f-social-links/f-social-links.component';\nimport { FHeaderMenuComponent } from '../f-header-menu/f-header-menu.component';\nimport { FVersionComponent } from '../f-version/f-version.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 FHamburgerButtonComponent,\n FVersionComponent,\n FSocialLinksComponent,\n FThemeButtonComponent,\n FHeaderMenuComponent\n ]\n})\nexport class FHeaderComponent {\n\n protected title: string = inject(FDocumentationEnvironmentService).getTitle();\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, 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 { Router, RouterLink } from '@angular/router';\nimport { FDocumentationEnvironmentService } from '../../f-documentation-environment.service';\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: FDocumentationEnvironmentService\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 {\n F_DOCUMENTATION_COMPONENT,\n FBadgeComponent,\n FDocumentationEnvironmentService,\n IDocumentationComponent\n} from '../index';\nimport { INavigationGroup, INavigationItem } from './domain';\nimport { 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: FDocumentationEnvironmentService,\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 { HandleDynamicComponentsRequest } from './handle-dynamic-components.request';\nimport { ComponentRef, Injectable, Injector, Type, ViewContainerRef } from '@angular/core';\nimport { FDocumentationEnvironmentService, FPreviewComponent, FPreviewGroupFiltersComponent } from '../../../../index';\n\n@Injectable()\nexport class HandleDynamicComponentsHandler implements IHandler<HandleDynamicComponentsRequest> {\n private componentRefs: ComponentRef<any>[] = [];\n\n constructor(\n private fEnvironmentService: FDocumentationEnvironmentService,\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 {\n tag: 'f-preview-group-filters', component: FPreviewGroupFiltersComponent,\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 { DOCUMENT } from '@angular/common';\nimport { FPopoverService } from '../../../../../../common-services';\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 { EMarkdownContainerType } from './e-markdown-container-type';\nimport { IMarkdownItToken } from './i-markdown-it-token';\nimport { getContent } from '../utils';\n\nimport container from 'markdown-it-container';\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 { EMarkdownContainerType } from './e-markdown-container-type';\nimport { IMarkdownItToken } from './i-markdown-it-token';\nimport { INavigationGroup } from '../../../../../f-navigation-panel';\nimport { getContent } from '../utils';\n\nimport container from 'markdown-it-container';\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 const result = (groups || []).map((x) => {\n return `<h2>${ x.text }</h2><div class=\"f-preview-group\">${ this.getItemsHTML(x) }</div>`;\n }).join('');\n\n return this._getGroupFiltersHTML() + result;\n }\n\n private _getGroupFiltersHTML(): string {\n return `<f-preview-group-filters></f-preview-group-filters>`;\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 { FDocumentationEnvironmentService } from '../../../../f-documentation-environment.service';\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: FDocumentationEnvironmentService,\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 { 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 { BrowserService } from '@foblex/platform';\nimport { FDocumentationEnvironmentService } from '../f-documentation-environment.service';\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: FDocumentationEnvironmentService,\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 { 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 { IPageLink } from '../../i-page-link';\nimport { FDocumentationEnvironmentService } from '../../../../../f-documentation-environment.service';\n\nexport class GetPreviousNextPageNavigationHandler\n implements IHandler<GetPreviousNextPageNavigationRequest, GetPreviousNextPageNavigationResponse> {\n\n constructor(\n private fEnvironmentService: FDocumentationEnvironmentService\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 HandleNavigationLinksHandler,\n HandleNavigationLinksRequest,\n IDocsFooterNavigation\n} from '../../../domain';\nimport { GetPreviousNextPageNavigationHandler, GetPreviousNextPageNavigationRequest, IPageLink } from './domain';\nimport { FDocumentationEnvironmentService } from '../../f-documentation-environment.service';\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: FDocumentationEnvironmentService,\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 HandleNavigationLinksHandler,\n HandleNavigationLinksRequest\n} from '../../../domain';\nimport { FMarkdownFooterComponent } from '../f-markdown-footer';\nimport { FDocumentationEnvironmentService } from '../../f-documentation-environment.service';\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(FDocumentationEnvironmentService).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,\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, 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 { BrowserService } from '@foblex/platform';\nimport { FDocumentationEnvironmentService } from '../../f-documentation-environment.service';\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: FDocumentationEnvironmentService,\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","export abstract class FPreviewBase {\n\n public abstract date?: Date;\n\n public abstract filterKey?: string;\n\n public abstract hostElement: HTMLElement;\n}\n","import { Injectable } from '@angular/core';\nimport { FPreviewBase } from '../f-preview/f-preview-base';\n\n@Injectable()\nexport class FPreviewGroupService {\n\n private _fPreviews: FPreviewBase[] = [];\n private _originalOrder: Map<HTMLElement, Node[]> | null = null;\n\n public add(fPreview: FPreviewBase): void {\n this._fPreviews.push(fPreview);\n }\n\n public remove(fPreview: FPreviewBase): void {\n this._fPreviews = this._fPreviews.filter(preview => preview !== fPreview);\n }\n\n public sortByDate(sort: boolean): void {\n if (sort) {\n this._applyByDateOrder();\n } else {\n this._applyOriginalOrder();\n }\n }\n\n private _setOriginalOrder(): void {\n this._originalOrder = new Map();\n this._fPreviews.forEach((x) => {\n const parentElement = x.hostElement.parentElement;\n if (parentElement) {\n const childrenArray = Array.from(parentElement.children);\n this._originalOrder!.set(parentElement, childrenArray);\n }\n });\n }\n\n private _getOrderByDate(): FPreviewBase[] {\n return this._fPreviews\n .slice()\n .sort((a, b) => {\n const dateA = a.date ? a.date.getTime() : Number.MIN_SAFE_INTEGER;\n const dateB = b.date ? b.date.getTime() : Number.MIN_SAFE_INTEGER;\n return dateB - dateA;\n });\n }\n\n private _applyByDateOrder(): void {\n this._setOriginalOrder();\n this._getOrderByDate().forEach((x) => {\n const parent = x.hostElement.parentElement;\n parent?.appendChild(x.hostElement);\n });\n }\n\n private _applyOriginalOrder(): void {\n this._originalOrder!.forEach((originalChildren, parentElement) => {\n originalChildren.forEach(child => parentElement.appendChild(child));\n });\n }\n\n public filterBy(filterKey: string, _allKey: string): void {\n this._resetLastActiveFilter();\n\n if (filterKey === _allKey) {\n return;\n }\n this._fPreviews.forEach((x) => {\n if (x.filterKey !== filterKey) {\n x.hostElement.style.display = 'none';\n }\n });\n }\n\n private _resetLastActiveFilter(): void {\n this._fPreviews.forEach((x) => {\n x.hostElement.style.display = 'block';\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component, DestroyRef,\n ElementRef,\n inject,\n OnDestroy,\n OnInit, signal\n} from '@angular/core';\nimport { startWith } from 'rxjs';\nimport { FStateService } from '../../domain/f-state.service';\nimport { Router } from '@angular/router';\nimport { INavigationGroup, INavigationItem } from '../f-navigation-panel';\nimport { FDocumentationEnvironmentService } from '../f-documentation-environment.service';\nimport { FPreviewBase } from './f-preview-base';\nimport { FPreviewGroupService } from '../f-preview-group/f-preview-group.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 extends FPreviewBase implements OnInit, OnDestroy {\n\n private _elementReference = inject(ElementRef);\n private _fEnvironment = inject(FDocumentationEnvironmentService);\n private _fPreviewGroupService = inject(FPreviewGroupService);\n private _fState = inject(FStateService);\n private _router = inject(Router);\n private _destroyRef = inject(DestroyRef);\n\n public item: string | undefined;\n public group: string | undefined;\n\n protected viewModel: INavigationItem | undefined;\n protected src = signal<string | undefined>(undefined);\n protected url: string | undefined;\n\n public get hostElement(): HTMLElement {\n return this._elementReference.nativeElement;\n }\n\n public get filterKey(): string | undefined {\n return this.viewModel?.badge?.text.toLowerCase();\n }\n\n public get date(): Date | undefined {\n return this.viewModel?.date;\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._subscribeToThemeChanges();\n }\n\n private _subscribeToThemeChanges(): void {\n this._fState.theme$.pipe(\n startWith(null), takeUntilDestroyed(this._destroyRef)\n ).subscribe(() => this.updateTheme());\n }\n\n public ngOnInit(): void {\n this._fPreviewGroupService.add(this);\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.set(this._fState.getPreferredTheme() === 'dark' ? this.viewModel?.image_dark : this.viewModel?.image);\n if (!this.src()) {\n this.src.set(this.viewModel?.image);\n }\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._fPreviewGroupService.remove(this);\n }\n}\n","@if (viewModel) {\n <img [src]=\"src()\" [alt]=\"viewModel.description\" [title]=\"viewModel.text\">\n <div class=\"title\">\n {{ viewModel.text }}\n @if (viewModel.badge) {\n <span class=\"f-badge {{viewModel.badge.type}}\">{{ viewModel.badge.text }}</span>\n }\n </div>\n <div class=\"description\">{{ viewModel.description }}</div>\n}\n\n\n\n","import { AfterViewInit, ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';\nimport { FDocumentationEnvironmentService } from '../f-documentation-environment.service';\nimport { FCheckboxComponent, FRadioButtonComponent } from '../../common-components';\nimport { TitleCasePipe } from '@angular/common';\nimport { FPreviewGroupService } from '../f-preview-group/f-preview-group.service';\n\n@Component({\n selector: 'div[f-preview-group-filters]',\n templateUrl: './f-preview-group-filters.component.html',\n styleUrls: [ './f-preview-group-filters.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FCheckboxComponent,\n FRadioButtonComponent,\n TitleCasePipe\n ]\n})\nexport class FPreviewGroupFiltersComponent implements AfterViewInit {\n\n private readonly _allKey = 'all';\n\n private _fEnvironment = inject(FDocumentationEnvironmentService);\n private _fPreviewGroupService = inject(FPreviewGroupService);\n\n protected filters = signal<string[]>([]);\n protected activeFilter = signal<string>(this._allKey);\n\n protected isSortByDateChecked = signal<boolean>(false);\n\n public initialize(): void {\n this.filters.set(this._calculateFiltersMap());\n }\n\n public ngAfterViewInit(): void {\n this.onFilterChange(this._allKey);\n }\n\n private _calculateFiltersMap(): string[] {\n const filters: string[] = [];\n this._fEnvironment.getNavigation().forEach((group) => {\n group.items.forEach((item) => {\n if (item.badge && !filters.includes(item.badge.text.toLowerCase())) {\n filters.push(item.badge.text.toLowerCase());\n }\n });\n });\n if (filters.length > 0) {\n filters.unshift(this._allKey);\n }\n return filters;\n }\n\n protected onFilterChange(key: string): void {\n this.activeFilter.set(key);\n this._fPreviewGroupService.filterBy(key, this._allKey);\n }\n\n protected onSortByDateChange(event: boolean): void {\n this.isSortByDateChecked.set(event);\n this._fPreviewGroupService.sortByDate(event);\n }\n}\n","@if (filters().length) {\n <div class=\"filters-row\">\n @for (filter of filters(); track filter) {\n <f-radio-button [checked]=\"activeFilter() === filter\"\n (change)=\"onFilterChange(filter)\">{{ filter | titlecase }}\n </f-radio-button>\n }\n <div class=\"flex-space\"></div>\n <f-checkbox [checked]=\"isSortByDateChecked()\" (change)=\"onSortByDateChange($event)\">Sort by Newness</f-checkbox>\n </div>\n}\n\n\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, ChangeDetectorRef,\n Component, DestroyRef, inject, 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 { FDocumentationEnvironmentService } from './f-documentation-environment.service';\nimport { FPopoverService } from '../common-services';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FPreviewGroupService } from './f-preview-group/f-preview-group.service';\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 FDocumentationEnvironmentService,\n FPopoverService,\n FPreviewGroupService,\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 {\n\n protected isNavigationVisible: boolean = false;\n\n protected popoverMessage: string | null = null;\n\n private _fPopover = inject(FPopoverService);\n private _destroyRef = inject(DestroyRef);\n private _changeDetectorRef = inject(ChangeDetectorRef);\n\n public ngOnInit() {\n this._fPopover.dispose(this._destroyRef);\n this._subscribeOnPopover();\n }\n\n private _subscribeOnPopover(): void {\n this._fPopover.popover$.pipe(takeUntilDestroyed(this._destroyRef)).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","<f-navigation-panel [class.visible]=\"isNavigationVisible\"></f-navigation-panel>\n<div class=\"f-backdrop\" [class.visible]=\"isNavigationVisible\" (click)=\"onToggleNavigation(false)\"></div>\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 { InjectionToken } from '@angular/core';\nimport { IDocsEnvironment } from './domain';\n\nexport const F_DOCS_ENVIRONMENT = new InjectionToken<IDocsEnvironment>('F_DOCS_ENVIRONMENT');\n","import { Routes } from '@angular/router';\n\nexport const F_DOCS_ROUTES: Routes = [\n {\n path: '',\n loadComponent: () => import('./index').then(m => m.FDocumentationComponent),\n children: [\n {\n path: '**',\n loadComponent: () => import('./f-page').then(m => m.FPageComponent)\n }\n ]\n }\n];\n","import { InjectionToken } from '@angular/core';\nimport { IHomePageEnvironment } from './domain/i-home-page-environment';\n\nexport const F_HOME_PAGE_ENVIRONMENT = new InjectionToken<IHomePageEnvironment>('F_HOME_PAGE_ENVIRONMENT');\n","import { inject, Inject, Injectable, Optional, Type } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { F_HOME_PAGE_ENVIRONMENT } from './providers';\nimport {\n IHomePageEnvironment,\n IHomePageFeature,\n IHomePageFooter,\n IHomePageHero,\n IHomePageLink,\n IHomePageMembership\n} from './domain';\nimport {\n IEnvironmentService\n} from '../domain';\n\n@Injectable()\nexport class FHomePageEnvironmentService implements IEnvironmentService {\n\n private _environment = inject(F_HOME_PAGE_ENVIRONMENT);\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 getHero(): IHomePageHero {\n return this._environment.hero;\n }\n\n public getButtons(): IHomePageLink[] {\n return this._environment.buttons || [];\n }\n\n public getFeatures(): IHomePageFeature[] {\n return this._environment.features || [];\n }\n\n public getMemberships(): IHomePageMembership[] {\n return this._environment.memberships || [];\n }\n\n public getFooter(): IHomePageFooter {\n return this._environment.footer;\n }\n\n public getBackgroundComponent(): Type<any> | undefined {\n return this._environment.backgroundComponent;\n }\n\n public getImageComponent(): Type<any> | undefined {\n return this._environment.heroImageComponent;\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { FHomePageEnvironmentService } from '../f-home-page-environment.service';\n\n@Component({\n selector: 'f-home-page-features',\n templateUrl: './f-home-page-features.component.html',\n styleUrl: './f-home-page-features.component.scss',\n standalone: true,\n host: {\n '[class.display-none]': '!viewModel.length',\n }\n})\nexport class FHomePageFeaturesComponent {\n protected viewModel = inject(FHomePageEnvironmentService).getFeatures();\n}\n","<div class=\"feature-list\">\n @for (feature of viewModel; track feature.headline) {\n <div class=\"feature\">\n <h2>{{ feature.headline }}</h2>\n <p>{{ feature.description }}</p>\n </div>\n }\n</div>\n\n","import { Component, inject } from '@angular/core';\nimport { FHomePageEnvironmentService } from '../f-home-page-environment.service';\n\n@Component({\n selector: 'f-home-page-memberships',\n templateUrl: './f-home-page-memberships.component.html',\n styleUrl: './f-home-page-memberships.component.scss',\n standalone: true,\n host: {\n '[class.display-none]': '!viewModel.length',\n }\n})\nexport class FHomePageMembershipsComponent {\n protected viewModel = inject(FHomePageEnvironmentService).getMemberships();\n}\n","<div class=\"membership-list\">\n @for (membership of viewModel; track membership.id) {\n <div class=\"membership\">\n <h2>{{ membership.name }}</h2>\n <p>{{ membership.description }}</p>\n <div class=\"benefit-list\">\n @for (benefit of membership.benefits; track benefit) {\n <p class=\"benefit\">✅ {{ benefit }}</p>\n }\n </div>\n <a class=\"f-button\" [href]=\"membership.buttonRef\">{{ membership.buttonText }}</a>\n </div>\n }\n</div>\n","import { Component, inject } from '@angular/core';\nimport { FThemeButtonComponent } from '../../common-components';\nimport { FHomePageEnvironmentService } from '../f-home-page-environment.service';\n\n@Component({\n selector: 'header[f-home-page-header]',\n templateUrl: './f-home-page-header.component.html',\n styleUrl: './f-home-page-header.component.scss',\n standalone: true,\n imports: [\n FThemeButtonComponent\n ]\n})\nexport class FHomePageHeaderComponent {\n\n protected logo = inject(FHomePageEnvironmentService).getLogo();\n\n protected title = inject(FHomePageEnvironmentService).getTitle();\n}\n","<div class=\"content\">\n <a class=\"logo-link\" href=\"/\" aria-label=\"Home\">\n <img [src]=\"logo\" class=\"logo\" alt=\"{{ title }} Logo\" width=\"24\" height=\"24\"/>\n <span class=\"title\">{{ title }}</span>\n </a>\n\n <div class=\"flex-space\"></div>\n <button f-theme-button aria-label=\"Change theme\"></button>\n</div>\n\n","import { Component, inject } from '@angular/core';\nimport { FHomePageEnvironmentService } from '../f-home-page-environment.service';\n\n@Component({\n selector: 'footer[f-home-page-footer]',\n templateUrl: './f-home-page-footer.component.html',\n styleUrl: './f-home-page-footer.component.scss',\n standalone: true,\n})\nexport class FHomePageFooterComponent {\n\n protected viewModel = inject(FHomePageEnvironmentService).getFooter();\n}\n","<div class=\"content\">\n <div class=\"flex-space\"></div>\n <div>\n <div class=\"item\">Created with Foblex <a href=\"https://github.com/Foblex/m-render\" target=\"_blank\">MRender</a></div>\n <div class=\"item\">{{ viewModel.text }}</div>\n </div>\n</div>\n\n","import { Component, inject } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { FHomePageEnvironmentService } from '../../f-home-page-environment.service';\n\n@Component({\n selector: 'f-home-page-buttons-row',\n templateUrl: './f-home-page-buttons-row.component.html',\n styleUrl: './f-home-page-buttons-row.component.scss',\n standalone: true,\n imports: [\n RouterLink\n ],\n host: {\n '[class.display-none]': '!viewModel.length',\n }\n})\nexport class FHomePageButtonsRowComponent {\n protected viewModel = inject(FHomePageEnvironmentService).getButtons();\n}\n","@for (button of viewModel; track button.text) {\n @if (button.routerLink) {\n <a class=\"f-button\" [class.primary]=\"button.primary\" routerLink=\"{{ button.routerLink }}\">\n @if (button.icon) {\n <span class=\"f-icon {{ button.icon }}\"></span>\n }\n {{ button.text }}\n </a>\n } @else if(button.href) {\n <a class=\"f-button\" [class.primary]=\"button.primary\" href=\"{{ button.href }}\">{{ button.text }}</a>\n }\n}\n\n","import { Component, inject } from '@angular/core';\nimport { FHomePageButtonsRowComponent } from './f-home-page-buttons-row/f-home-page-buttons-row.component';\nimport { FHomePageEnvironmentService } from '../f-home-page-environment.service';\n\n@Component({\n selector: 'f-home-page-hero',\n templateUrl: './f-home-page-hero.component.html',\n styleUrl: './f-home-page-hero.component.scss',\n standalone: true,\n imports: [\n FHomePageButtonsRowComponent\n ]\n})\nexport class FHomePageHeroComponent {\n\n protected viewModel = inject(FHomePageEnvironmentService).getHero();\n}\n","<h1>{{ viewModel.headline }}</h1>\n<p class=\"powered\">{{ viewModel.tagline1 }}</p>\n<p class=\"powered\">{{ viewModel.tagline2 }}</p>\n<p class=\"second-description\">{{ viewModel.subDescription }}</p>\n<f-home-page-buttons-row></f-home-page-buttons-row>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy, Component, ComponentRef, inject, Type, ViewChild, ViewContainerRef\n} from '@angular/core';\nimport { FHomePageFooterComponent } from './f-home-page-footer/f-home-page-footer.component';\nimport { FHomePageHeaderComponent } from './f-home-page-header/f-home-page-header.component';\nimport { FHomePageFeaturesComponent } from './f-home-page-features/f-home-page-features.component';\nimport { FHomePageHeroComponent } from './f-home-page-hero/f-home-page-hero.component';\nimport { FHomePageEnvironmentService } from './f-home-page-environment.service';\nimport { FHomePageMembershipsComponent } from './f-home-page-memberships/f-home-page-memberships.component';\n\n@Component({\n selector: 'f-home-page',\n templateUrl: './f-home-page.component.html',\n styleUrls: [ './f-home-page.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n FHomePageEnvironmentService,\n ],\n imports: [\n FHomePageFooterComponent,\n FHomePageHeaderComponent,\n FHomePageFeaturesComponent,\n FHomePageHeroComponent,\n FHomePageMembershipsComponent,\n ]\n})\nexport class FHomePageComponent implements AfterViewInit {\n\n private _environment = inject(FHomePageEnvironmentService);\n\n @ViewChild('backgroundContainer', { read: ViewContainerRef })\n private _backgroundContainer: ViewContainerRef | undefined;\n\n @ViewChild('heroImageContainer', { read: ViewContainerRef })\n private _heroImageContainer: ViewContainerRef | undefined;\n\n public ngAfterViewInit(): void {\n this._renderImageComponent(this._environment.getImageComponent());\n this._renderBackgroundComponent(this._environment.getBackgroundComponent());\n }\n\n private _renderImageComponent<T>(component?: Type<T>): void {\n if (component) {\n this.requestComponentRedraw(this._getImageComponentReference(component));\n }\n }\n\n private _renderBackgroundComponent<T>(component?: Type<T>): void {\n if (component) {\n this.requestComponentRedraw(this._getBackgroundComponentReference(component));\n }\n }\n\n private _getBackgroundComponentReference<T>(component: Type<T>): ComponentRef<T> {\n return this._backgroundContainer!.createComponent(component);\n }\n\n private _getImageComponentReference<T>(component: Type<T>): ComponentRef<T> {\n return this._heroImageContainer!.createComponent(component);\n }\n\n private requestComponentRedraw(componentRef: ComponentRef<any>): void {\n componentRef.changeDetectorRef.markForCheck();\n }\n}\n","<ng-container #backgroundContainer></ng-container>\n<header f-home-page-header></header>\n\n<div class=\"body\">\n <div class=\"hero-row\">\n <f-home-page-hero></f-home-page-hero>\n <ng-container #heroImageContainer></ng-container>\n </div>\n <f-home-page-features></f-home-page-features>\n <f-home-page-memberships></f-home-page-memberships>\n</div>\n\n<div class=\"flex-space\"></div>\n<footer f-home-page-footer></footer>\n","import { Routes } from '@angular/router';\n\nexport const F_HOME_PAGE_ROUTES: Routes = [\n {\n path: '',\n loadComponent: () => import('./index').then(m => m.FHomePageComponent),\n }\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uniqueId","getDOM","i2.FHeadTagService","i3","i1","i1.FStateService","i2.FDocumentationEnvironmentService","filter","i2","i1.FDocumentationEnvironmentService","RULE","i3.FDocumentationEnvironmentService","i4","i1.FScrollableService","i2.FScrollableService"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"foblex-m-render.mjs","sources":["../../../../libs/m-render/src/lib/common/components/f-checkbox/f-checkbox.component.ts","../../../../libs/m-render/src/lib/common/components/f-checkbox/f-checkbox.component.html","../../../../libs/m-render/src/lib/common/components/f-radio-button/f-radio-button.component.ts","../../../../libs/m-render/src/lib/common/components/f-radio-button/f-radio-button.component.html","../../../../libs/m-render/src/lib/common/components/f-social-links/domain/i-social-links-provider.ts","../../../../libs/m-render/src/lib/common/components/f-social-links/f-social-links.component.ts","../../../../libs/m-render/src/lib/common/components/f-social-links/f-social-links.component.html","../../../../libs/m-render/src/lib/common/services/popover.service.ts","../../../../libs/m-render/src/lib/common/services/theme.service.ts","../../../../libs/m-render/src/lib/common/components/f-theme-button/f-theme-button.component.ts","../../../../libs/m-render/src/lib/common/components/f-theme-button/f-theme-button.component.html","../../../../libs/m-render/src/lib/common/components/menus/npm-version/npm-version.component.ts","../../../../libs/m-render/src/lib/common/components/menus/npm-version/npm-version.component.html","../../../../libs/m-render/src/lib/common/components/menus/dropdown-menu/domain/right-top-overlay-position.constant.ts","../../../../libs/m-render/src/lib/common/components/menus/dropdown-menu/dropdown-menu.component.ts","../../../../libs/m-render/src/lib/common/components/menus/dropdown-menu/dropdown-menu.component.html","../../../../libs/m-render/src/lib/common/domain/configuration-providers/provide-header.ts","../../../../libs/m-render/src/lib/common/domain/configuration-providers/provide-header-media-links.ts","../../../../libs/m-render/src/lib/common/domain/configuration-providers/provide-header-navigation.ts","../../../../libs/m-render/src/lib/common/domain/configuration-providers/provide-language.ts","../../../../libs/m-render/src/lib/common/domain/configuration-providers/provide-logo.ts","../../../../libs/m-render/src/lib/common/domain/configuration-providers/provide-title.ts","../../../../libs/m-render/src/lib/common/domain/providers.ts","../../../../libs/m-render/src/lib/common/components/menus/inline-menu/inline-menu.component.ts","../../../../libs/m-render/src/lib/common/components/menus/inline-menu/inline-menu.component.html","../../../../libs/m-render/src/lib/common/directives/overflow-observer.directive.ts","../../../../libs/m-render/src/lib/common/utils/copy-to-clipboard.ts","../../../../libs/m-render/src/lib/documentation-page/analytics/analytics/f-accept-cookies-key.ts","../../../../libs/m-render/src/lib/documentation-page/analytics/analytics/set-cookie-consent.ts","../../../../libs/m-render/src/lib/documentation-page/analytics/analytics/f-cookie-popup/f-cookie-popup.component.ts","../../../../libs/m-render/src/lib/documentation-page/analytics/analytics/f-cookie-popup/f-cookie-popup.component.html","../../../../libs/m-render/src/lib/documentation-page/analytics/analytics/f-analytics.service.ts","../../../../libs/m-render/src/lib/documentation-page/analytics/common-services/f-head-tag.service.ts","../../../../libs/m-render/src/lib/documentation-page/domain/handle-navigation-links/handle-navigation-links.request.ts","../../../../libs/m-render/src/lib/documentation-page/domain/handle-navigation-links/handle-navigation-links.handler.ts","../../../../libs/m-render/src/lib/documentation-page/domain/configuration-providers/provide-404-markdown.ts","../../../../libs/m-render/src/lib/documentation-page/domain/configuration-providers/provide-components.ts","../../../../libs/m-render/src/lib/documentation-page/domain/configuration-providers/provide-directory.ts","../../../../libs/m-render/src/lib/documentation-page/domain/configuration-providers/provide-documentation.ts","../../../../libs/m-render/src/lib/documentation-page/domain/configuration-providers/provide-documentation-meta.ts","../../../../libs/m-render/src/lib/documentation-page/domain/configuration-providers/provide-footer-navigation.ts","../../../../libs/m-render/src/lib/documentation-page/domain/configuration-providers/provide-navigation.ts","../../../../libs/m-render/src/lib/documentation-page/domain/configuration-providers/provide-toc-data.ts","../../../../libs/m-render/src/lib/documentation-page/domain/providers.ts","../../../../libs/m-render/src/lib/documentation-page/analytics/common-services/f-meta.service.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/hamburger-button/domain/i-toggle-navigation-component.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/hamburger-button/hamburger-button.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/hamburger-button/hamburger-button.component.html","../../../../libs/m-render/src/lib/documentation-page/services/documentation.store.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/header.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/header.component.html","../../../../libs/m-render/src/lib/documentation-page/components/navigation-panel/navigation-group/navigation-group.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/navigation-panel/navigation-group/navigation-group.component.html","../../../../libs/m-render/src/lib/documentation-page/components/navigation-panel/f-navigation-item/f-navigation-item.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/navigation-panel/f-navigation-item/f-navigation-item.component.html","../../../../libs/m-render/src/lib/documentation-page/components/navigation-panel/navigation-panel.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/navigation-panel/navigation-panel.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-group-tabs/f-code-group-tabs.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-group-tabs/f-code-group-tabs.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/highlight/change-code-focused-syntax.pre-processor.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/highlight/modify-punctuation-highlight.post-processor.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/highlight/mark-code-focused-blocks.post-processor.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/highlight/theme.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/highlight/highlight.service.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-view/components/highlight.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-view/utils/parse-language.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/directives/f-insert-component.directive.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/utils/coerce-component-height.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/utils/parse-component-tag.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/utils/is-promise.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/f-example-view.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-example-view/f-example-view.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-view/f-code-view.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-view/f-code-view.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/markdown/domain/e-markdown-container-type.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/markdown/domain/e-parsed-container-type.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/markdown/domain/i-preview-navigation-service.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/markdown/utils/get-content.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/markdown/markdown.service.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/markdown/parse-alerts.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/markdown/parse-grouped-code-items.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/markdown/parse-single-code-item.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/markdown/parse-angular-example-with-code-links.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/markdown/parse-preview-group.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-group.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-code-group/f-code-group.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/domain/get-previous-next-page-navigation/get-previous-next-page-navigation.response.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/domain/get-previous-next-page-navigation/get-previous-next-page-navigation.handler.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/domain/get-previous-next-page-navigation/get-previous-next-page-navigation.request.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/f-footer-edit-information/f-footer-edit-information.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/f-footer-edit-information/f-footer-edit-information.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/f-footer-navigation-button.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/f-footer-navigation/f-footer-navigation-button/f-footer-navigation-button.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/f-footer-navigation/f-footer-navigation.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/f-footer-navigation/f-footer-navigation.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/f-footer-edit-link.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/f-footer-edit-information/f-footer-edit-link/f-footer-edit-link.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/f-markdown-footer.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/f-markdown-footer.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-preview-group/f-preview/f-preview-base.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-preview-group/f-preview/f-preview.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-preview-group/f-preview/f-preview.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-preview-group/f-preview-group-filters/f-preview-group-filters.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-preview-group/f-preview-group-filters/f-preview-group-filters.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/components/f-preview-group/f-preview-group.service.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/components/table-of-content/table-of-content-items/table-of-content-items.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/components/table-of-content/table-of-content-items/table-of-content-items.component.html","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/activate-toc-by-hash/activate-toc-by-hash.request.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/activate-toc-by-hash/activate-toc-by-hash.handler.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/components/table-of-content/table-of-content.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/components/table-of-content/table-of-content.component.html","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/calculate-hash-from-scroll-position-and-activate-toc/calculate-hash-from-scroll-position-and-activate-toc.request.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.request.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.handler.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/calculate-hash-from-scroll-position-and-activate-toc/calculate-hash-from-scroll-position-and-activate-toc.handler.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/calculate-table-of-content-data/calculate-table-of-content-data.request.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/table-of-content-data.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/calculate-table-of-content-data/calculate-table-of-content-data.handler.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/render-dynamic-components/render-dynamic-components.request.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/render-dynamic-components/render-dynamic-components.handler.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/scroll-to-element-in-container/scroll-to-element-in-container.request.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/scroll-to-element-in-container/scroll-to-element-in-container.handler.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/i-scrollable-container.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/domain/providers.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/scrollable-container.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/scrollable-container.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/f-markdown-renderer.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/f-markdown-renderer.component.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/markdown-container.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/markdown-container.component.html","../../../../libs/m-render/src/lib/documentation-page/documentation-root.component.ts","../../../../libs/m-render/src/lib/documentation-page/documentation-root.component.html","../../../../libs/m-render/src/lib/documentation-page/routes.ts","../../../../libs/m-render/src/lib/home-page/domain/configuration-providers/provide-background.ts","../../../../libs/m-render/src/lib/home-page/domain/configuration-providers/provide-hero.ts","../../../../libs/m-render/src/lib/home-page/domain/configuration-providers/provide-home-buttons.ts","../../../../libs/m-render/src/lib/home-page/domain/configuration-providers/provide-home-features.ts","../../../../libs/m-render/src/lib/home-page/domain/configuration-providers/provide-home-footer.ts","../../../../libs/m-render/src/lib/home-page/domain/configuration-providers/provide-home-page.ts","../../../../libs/m-render/src/lib/home-page/domain/configuration-providers/provide-image.ts","../../../../libs/m-render/src/lib/home-page/services/home.store.ts","../../../../libs/m-render/src/lib/home-page/components/f-home-page-buttons-row/f-home-page-buttons-row.component.ts","../../../../libs/m-render/src/lib/home-page/components/f-home-page-buttons-row/f-home-page-buttons-row.component.html","../../../../libs/m-render/src/lib/home-page/components/f-home-page-features/f-home-page-features.component.ts","../../../../libs/m-render/src/lib/home-page/components/f-home-page-features/f-home-page-features.component.html","../../../../libs/m-render/src/lib/home-page/components/f-home-page-footer/f-home-page-footer.component.ts","../../../../libs/m-render/src/lib/home-page/components/f-home-page-footer/f-home-page-footer.component.html","../../../../libs/m-render/src/lib/home-page/components/f-home-page-header/f-home-page-header.component.ts","../../../../libs/m-render/src/lib/home-page/components/f-home-page-header/f-home-page-header.component.html","../../../../libs/m-render/src/lib/home-page/components/f-home-page-hero/f-home-page-hero.component.ts","../../../../libs/m-render/src/lib/home-page/components/f-home-page-hero/f-home-page-hero.component.html","../../../../libs/m-render/src/lib/home-page/components/f-home-page-memberships/f-home-page-memberships.component.ts","../../../../libs/m-render/src/lib/home-page/components/f-home-page-memberships/f-home-page-memberships.component.html","../../../../libs/m-render/src/lib/home-page/home-root.component.ts","../../../../libs/m-render/src/lib/home-page/home-root.component.html","../../../../libs/m-render/src/lib/home-page/router.ts","../../../../libs/m-render/src/foblex-m-render.ts"],"sourcesContent":["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 = `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 = 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 {\n ChangeDetectionStrategy,\n Component, ElementRef, HostListener, input, output, viewChild,\n} from '@angular/core';\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'f-radio-button',\n templateUrl: './f-radio-button.component.html',\n styleUrls: [ './f-radio-button.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.f-radio-button-checked]': 'checked()',\n },\n})\nexport class FRadioButtonComponent {\n\n public id = input<string>(`f-radio-button-${ uniqueId++ }`);\n\n public change = output<boolean>();\n public checked = input<boolean>(false);\n\n protected labelElement = viewChild<ElementRef>('label');\n\n public onInputClick(): void {\n this._handleInputClick();\n }\n\n public onTouchTargetClick(): void {\n this._handleInputClick();\n }\n\n private _handleInputClick(): void {\n this._emitChangeEvent();\n }\n\n private _emitChangeEvent(): void {\n this.change.emit(true);\n }\n\n protected onInteractionEvent(event: Event): void {\n event.stopPropagation();\n }\n\n @HostListener('click', [ '$event' ])\n protected preventBubblingFromLabel(event: MouseEvent): void {\n if (!!event.target && this.labelElement()?.nativeElement.contains(event.target as HTMLElement)) {\n event.stopPropagation();\n }\n }\n}\n","<input [id]=\"id()\"\n type=\"radio\"\n [checked]=\"checked()\"\n (click)=\"onInputClick()\"\n (change)=\"onInteractionEvent($event)\"/>\n<div class=\"f-radio-button-container\" (click)=\"onTouchTargetClick()\">\n <div class=\"f-radio-button-inner-circle\"></div>\n</div>\n<label [for]=\"id()\" #label>\n <ng-content></ng-content>\n</label>\n","import { InjectionToken } from '@angular/core';\nimport { ISocialLink } from './i-social-link';\n\nexport interface ISocialLinksProvider {\n\n getSocialLinks(): ISocialLink[];\n}\n\nexport const F_SOCIAL_LINKS_PROVIDER = new InjectionToken<ISocialLinksProvider>('F_SOCIAL_LINKS_PROVIDER');\n","import {\n ChangeDetectionStrategy,\n Component, inject,\n} from '@angular/core';\nimport { F_SOCIAL_LINKS_PROVIDER } 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 protected links = inject(F_SOCIAL_LINKS_PROVIDER).getSocialLinks();\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, Signal, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PopoverService {\n private readonly _message = signal<string | null>(null);\n\n public get message(): Signal<string | null> {\n return this._message.asReadonly();\n }\n\n public show(message: string, timeout = 2000): void {\n this._message.set(message);\n setTimeout(() => this._message.set(null), timeout);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { BrowserService } from '@foblex/platform';\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n\n private readonly _browser = inject(BrowserService);\n private readonly _theme = new Subject<void>();\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._browser.localStorage.getItem('preferred-theme')\n || (this._browser.window.isMediaQuery('(prefers-color-scheme: dark)') ? 'dark' : 'light');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostListener, inject,\n OnInit,\n Renderer2,\n} from '@angular/core';\nimport { BrowserService, ILocalStorage } from '@foblex/platform';\nimport { ThemeService } from '../../services';\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 private readonly _renderer = inject(Renderer2);\n private readonly _fState = inject(ThemeService);\n private readonly _browser = inject(BrowserService);\n\n private get _localStorage(): ILocalStorage {\n return this._browser.localStorage;\n }\n\n private get _documentElement(): HTMLElement {\n return this._browser.document.documentElement;\n }\n\n public ngOnInit(): void {\n if (this._fState.getPreferredTheme() === 'dark' && !this._isDocumentContainsDarkTheme()) {\n this._renderer.addClass(this._documentElement, 'dark');\n this._localStorage.setItem('preferred-theme', 'dark');\n }\n }\n\n private _isDocumentContainsDarkTheme(): boolean {\n return this._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._documentElement, 'dark');\n this._localStorage.setItem('preferred-theme', 'dark');\n } else {\n this._renderer.removeClass(this._documentElement, 'dark');\n this._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, inject, input } from '@angular/core';\nimport { map, Observable, of } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError } from 'rxjs/operators';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { IVersion } from '../domain';\n\n@Component({\n selector: 'npm-version',\n templateUrl: './npm-version.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NpmVersionComponent {\n public readonly value = input<IVersion>()\n private readonly _http = inject(HttpClient);\n\n protected version = toSignal(\n this._localVersion(this.value()) ||\n this._npmPackage(this.value()),\n );\n\n private _localVersion(version: IVersion | undefined): Observable<string | undefined> | undefined {\n return version?.text ? of(version?.text) : undefined;\n }\n\n private _npmPackage(\n version: IVersion | undefined,\n ): Observable<string | undefined> {\n const packageName = version?.npmPackage;\n if (!packageName) {\n return of(undefined);\n }\n\n return this._http\n .get<{ 'dist-tags': { latest: string } }>(\n this._npmRegistry(packageName),\n )\n .pipe(\n map((response) => response['dist-tags']?.latest),\n catchError(() => of(undefined)),\n );\n }\n\n private _npmRegistry(name: string): string {\n return `https://registry.npmjs.org/${encodeURIComponent(name)}`;\n }\n}\n","@if (version()) {\n <span class=\"version\">v{{ version() }}</span>\n} @else {\n <div class=\"spinner\"></div>\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const RIGHT_TOP_OVERLAY_POSITION: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n];\n","import { ChangeDetectionStrategy, Component, inject, input, OnDestroy, signal } from '@angular/core';\nimport { RIGHT_TOP_OVERLAY_POSITION } from './domain';\nimport { CdkConnectedOverlay, CdkOverlayOrigin, Overlay } from '@angular/cdk/overlay';\nimport { ILink } from '../../../domain';\n\n@Component({\n selector: 'dropdown-menu',\n templateUrl: './dropdown-menu.component.html',\n styleUrls: ['./dropdown-menu.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CdkConnectedOverlay,\n CdkOverlayOrigin,\n ],\n})\nexport class DropdownMenuComponent implements OnDestroy {\n\n public label = input<string>('Menu');\n public links = input<ILink[]>([]);\n\n protected readonly isOpen = signal(false);\n protected readonly scrollStrategy = inject(Overlay).scrollStrategies.block();\n protected readonly positions = RIGHT_TOP_OVERLAY_POSITION;\n\n private _hoverTimeout: any | undefined;\n\n protected mouseEnter(): void {\n clearTimeout(this._hoverTimeout);\n this.open();\n }\n\n protected mouseLeave(): void {\n clearTimeout(this._hoverTimeout);\n this._hoverTimeout = setTimeout(() => this.close(), 200);\n }\n\n protected toggle(): void {\n this.isOpen.update(x => !x);\n }\n\n protected open(): void {\n if (!this.isOpen()) {\n this.isOpen.set(true);\n }\n }\n\n protected close(): void {\n this.isOpen.set(false);\n }\n\n public ngOnDestroy(): void {\n clearTimeout(this._hoverTimeout);\n }\n}\n","<span class=\"label\" cdk-overlay-origin\n (click)=\"toggle()\"\n (mouseenter)=\"mouseEnter()\"\n (mouseleave)=\"mouseLeave()\"\n #overlayOrigin=\"cdkOverlayOrigin\">\n <span class=\"text\">{{ label() }}</span>\n <span class=\"f-icon chevron-down\"></span>\n</span>\n\n<ng-template\n cdk-connected-overlay\n [cdkConnectedOverlayLockPosition]=\"true\"\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayDisableClose]=\"false\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayOffsetY]=\"-10\"\n (backdropClick)=\"close()\"\n>\n <div class=\"dropdown-panel\"\n (mouseenter)=\"mouseEnter()\"\n (mouseleave)=\"mouseLeave()\">\n <div class=\"items\">\n @for (link of links(); track link.link) {\n <div class=\"menu-item\">\n <a class=\"menu-link\" [href]=\"link.link\">{{ link.text }}</a>\n </div>\n }\n </div>\n </div>\n</ng-template>\n\n","import { IHeaderMenuLink, ISocialLink } from '../../components';\nimport { InjectionToken } from '@angular/core';\n\nexport function provideHeader(\n ...configuration: Partial<IHeaderConfiguration>[]\n): Partial<IHasHeaderConfiguration> {\n return {\n header: Object.assign({}, ...configuration),\n };\n}\n\nexport interface IHeaderConfiguration {\n\n navigation?: IHeaderMenuLink[];\n\n mediaLinks?: ISocialLink[];\n}\n\nexport interface IHasHeaderConfiguration {\n header?: IHeaderConfiguration;\n}\n\nexport const HEADER_CONFIGURATION = new InjectionToken<IHasHeaderConfiguration>('HEADER_CONFIGURATION');\n","import { IHeaderConfiguration } from './provide-header';\nimport { ISocialLink } from '../../components';\n\nexport function provideHeaderMediaLinks(mediaLinks: ISocialLink[]): Partial<IHeaderConfiguration> {\n return {\n mediaLinks,\n };\n}\n\n","import { IHeaderConfiguration } from './provide-header';\nimport { IHeaderMenuLink } from '../../components';\n\nexport function provideHeaderNavigation(navigation: IHeaderMenuLink[]): Partial<IHeaderConfiguration> {\n return {\n navigation,\n };\n}\n\n","export function provideLanguage(lang: string): ILanguageConfiguration {\n return {\n lang,\n };\n}\n\nexport interface ILanguageConfiguration {\n lang: string;\n}\n","export function provideLogo(logo: string): ILogoConfiguration {\n return {\n logo,\n };\n}\n\nexport interface ILogoConfiguration {\n logo: string;\n}\n","export function provideTitle(title: string): ITitleConfiguration {\n return {\n title,\n };\n}\n\nexport interface ITitleConfiguration {\n title: string;\n}\n","import { InjectionToken } from '@angular/core';\nimport { IHeaderConfiguration } from './configuration-providers';\n\nexport const HEADER_CONFIGURATION_STORE = new InjectionToken<IHeaderConfigurationStore>('HEADER_CONFIGURATION_STORE');\n\nexport interface IHeaderConfigurationStore {\n getHeader(): IHeaderConfiguration | undefined;\n}\n","import { ChangeDetectionStrategy, Component, inject, OnInit, signal } from '@angular/core';\nimport { Router, RouterLink } from '@angular/router';\nimport { IHeaderMenuLink } from '../domain';\nimport { HEADER_CONFIGURATION_STORE } from '../../../domain';\n\n@Component({\n selector: 'inline-menu',\n templateUrl: './inline-menu.component.html',\n styleUrls: [ './inline-menu.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RouterLink,\n ],\n})\nexport class InlineMenuComponent implements OnInit {\n private readonly _router = inject(Router);\n private readonly _store = inject(HEADER_CONFIGURATION_STORE);\n\n protected navigation: IDocsHeaderNavigationItemViewModel[] = [];\n protected isOverflowed = signal(false);\n\n public ngOnInit(): void {\n this.navigation = this._store.getHeader()?.navigation?.map((x) => {\n return {\n ...x,\n isActive: this._router.url.startsWith(x.link),\n };\n }) || [];\n }\n\n protected overflowed(event: boolean): void {\n this.isOverflowed.set(event);\n }\n}\n\ntype IDocsHeaderNavigationItemViewModel = IHeaderMenuLink & { isActive: boolean };\n","<!--<div class=\"inline-menu-wrapper\" [element]=\"element\" overflowObserver (overflowed)=\"overflowed($event)\">-->\n<!-- <div #element class=\"inline-menu-container\" [class.hidden]=\"isOverflowed()\">-->\n<!-- @for (item of navigation; track item.link) {-->\n<!-- <a class=\"inline-menu-link\" [routerLink]=\"item.link\" [class.active]=\"item.isActive\">-->\n<!-- <span>{{ item.text }}</span>-->\n<!-- </a>-->\n<!-- }-->\n<!-- </div>-->\n\n<!-- @if (isOverflowed()) {-->\n\n<!-- }-->\n<!-- <dropdown-menu label=\"\"/>-->\n<!--</div>-->\n\n\n\n<div class=\"inline-menu-wrapper\" >\n <div #element class=\"inline-menu-container\" [class.hidden]=\"isOverflowed()\">\n @for (item of navigation; track item.link) {\n <a class=\"inline-menu-link\" [routerLink]=\"item.link\" [class.active]=\"item.isActive\">\n <span>{{ item.text }}</span>\n </a>\n }\n </div>\n</div>\n\n","import { AfterViewInit, Directive, ElementRef, inject, input, NgZone, OnDestroy, output } from '@angular/core';\n\n@Directive({\n selector: '[overflowObserver]',\n standalone: true,\n})\nexport class OverflowObserverDirective implements AfterViewInit, OnDestroy {\n public readonly element = input<HTMLElement>();\n public readonly overflowed = output<boolean>();\n\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n private readonly _ngZone = inject(NgZone);\n\n private _resizeObserver!: ResizeObserver;\n private _overflowed = false;\n\n public ngAfterViewInit(): void {\n if (!this.element()) {\n throw new Error('Element must be provided to OverflowObserverDirective');\n }\n this._ngZone.runOutsideAngular(() => {\n this._resizeObserver = new ResizeObserver(() => this._checkOverflow());\n this._resizeObserver.observe(this._elementRef.nativeElement);\n this._resizeObserver.observe(this.element()!);\n });\n setTimeout(() => this._checkOverflow());\n }\n\n private _checkOverflow(): void {\n const container = this._elementRef.nativeElement;\n const child = this.element();\n\n if (!child || !container) return;\n\n console.log(container.clientWidth, child.clientWidth, child.scrollWidth);\n\n const overflowed = child.scrollWidth >= container.clientWidth;\n\n if (overflowed !== this._overflowed) {\n this._overflowed = overflowed;\n this._ngZone.run(() => this.overflowed.emit(overflowed));\n }\n }\n\n public ngOnDestroy(): void {\n this._resizeObserver.disconnect();\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) => permission.state !== 'denied'),\n switchMap((isGranted: boolean) => {\n if (isGranted) {\n return from(navigator.clipboard.write(data));\n }\n return of(undefined);\n }),\n );\n}\n","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 { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';\nimport { F_LOCAL_STORAGE } from '@foblex/platform';\nimport { F_ACCEPT_COOKIES_KEY } from '../f-accept-cookies-key';\nimport { setCookieConsent } from '../set-cookie-consent';\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 FCookiePopupComponent {\n private readonly _storage = inject(F_LOCAL_STORAGE);\n\n protected readonly hasAccepted = signal<boolean>(false);\n\n constructor() {\n try {\n this.hasAccepted.set(this._storage?.getItem(F_ACCEPT_COOKIES_KEY) === 'true');\n } catch {\n this.hasAccepted.set(false);\n }\n }\n\n protected accept(): void {\n try {\n this._storage?.setItem(F_ACCEPT_COOKIES_KEY, 'true');\n } catch { /* empty */ }\n\n this.hasAccepted.set(true);\n setCookieConsent('granted');\n }\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 { 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._installGtag(analyticsId);\n }\n\n private _installGtag(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 } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class FHeadTagService {\n\n private _document = inject(DOCUMENT);\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 extends Node>(tag: string): TElement {\n const element = this._document.createElement(tag) as Node;\n const head = this._document.getElementsByTagName('head')[ 0 ];\n head.appendChild(element);\n\n return element as TElement;\n }\n}\n\nexport interface IMetaTag {\n\n property: string;\n\n content: string;\n}\n","export class HandleNavigationLinksRequest {\n constructor(\n public event: MouseEvent,\n ) {\n }\n}\n","import { FExecutionRegister, IExecution } from '@foblex/mediator';\nimport { HandleNavigationLinksRequest } from './handle-navigation-links.request';\nimport { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BrowserService } from '@foblex/platform';\n\n@Injectable()\n@FExecutionRegister(HandleNavigationLinksRequest)\nexport class HandleNavigationLinksHandler\n implements IExecution<HandleNavigationLinksRequest, void> {\n private readonly _router = inject(Router);\n private readonly _browser = inject(BrowserService);\n\n public handle(request: HandleNavigationLinksRequest): void {\n const target = this._getClosestAnchorTag(this._getTargetElement(request.event));\n\n if (target && this._hasHref(target)) {\n request.event.preventDefault();\n\n const href = target.getAttribute('href')!;\n if (!this._isExternalLink(href)) {\n this._navigateInternalLink(href);\n } else {\n this._navigateExternalLink(href);\n }\n }\n }\n\n private _getTargetElement(event: Event): HTMLElement {\n return event.target as HTMLElement;\n }\n\n private _getClosestAnchorTag(element: HTMLElement): HTMLElement | null {\n return element.closest('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 _navigateExternalLink(href: string): void {\n this._browser.window.open(href, '_blank');\n }\n}\n","import { IDocumentationConfiguration } from '../i-documentation-configuration';\n\nexport function provide404Markdown(notFoundMarkdown: string): Partial<IDocumentationConfiguration> {\n return {\n notFoundMarkdown,\n };\n}\n","import { IDocumentationConfiguration } from '../i-documentation-configuration';\nimport { Type } from '@angular/core';\nimport { IExampleComponent } from '../../components';\n\nexport function defineLazyComponent(\n selector: string,\n loader: () => Promise<Record<string, unknown>>,\n): IExampleComponent {\n return {\n selector,\n component: extractComponent(loader),\n };\n}\n\nexport function provideComponents(components: IExampleComponent[]): Partial<IDocumentationConfiguration> {\n return {\n components,\n };\n}\n\nexport function extractComponent(loader: () => Promise<Record<string, unknown>>): Promise<Type<any>> {\n return loader().then(module => {\n const component = Object.values(module).find(\n (v): v is Type<any> => typeof v === 'function' && (v as any).ɵcmp,\n );\n if (!component) {\n throw new Error('Component not found');\n }\n return component;\n });\n}\n","import { IDocumentationConfiguration } from '../i-documentation-configuration';\n\nexport function provideDirectory(docsDir: string): Partial<IDocumentationConfiguration> {\n return {\n docsDir,\n };\n}\n","import { IDocumentationConfiguration } from '../i-documentation-configuration';\nimport { InjectionToken } from '@angular/core';\n\nexport function provideDocumentation(configuration: IProviderInstance) {\n const merged = Object.assign({}, ...configuration.providers);\n return {\n provide: DOCUMENTATION_CONFIGURATION, useValue: merged,\n };\n}\n\nexport const DOCUMENTATION_CONFIGURATION = new InjectionToken<IDocumentationConfiguration>('DOCUMENTATION_CONFIGURATION');\n\ninterface IProviderInstance {\n providers: Partial<IDocumentationConfiguration>[];\n}\n","import { IMetaData } from '../../analytics';\nimport { IDocumentationConfiguration } from '../i-documentation-configuration';\n\nexport function provideDocumentationMeta(meta: IMetaData): Partial<IDocumentationConfiguration> {\n return {\n meta,\n };\n}\n","import { IDocumentationConfiguration, IMarkdownFooterNavigation } from '../../index';\n\nexport function provideFooterNavigation(\n navigation: IMarkdownFooterNavigation,\n): Partial<IDocumentationConfiguration> {\n return {\n footer: {\n navigation,\n },\n };\n}\n\n","import { IDocumentationConfiguration } from '../i-documentation-configuration';\nimport { INavigationGroup, INavigationItem } from '../../components';\n\nexport function provideNavigation(...navigation: INavigationGroup[]): Partial<IDocumentationConfiguration> {\n return {\n navigation,\n };\n}\n\nexport function defineNavigationGroup(name: string | undefined, items: INavigationItem[]): INavigationGroup {\n return {\n text: name,\n items,\n };\n}\n","import { ITableOfContent } from '../../components';\nimport { IDocumentationConfiguration } from '../i-documentation-configuration';\n\nexport function provideTocData(toC: ITableOfContent): Partial<IDocumentationConfiguration> {\n return {\n toC,\n };\n}\n","import { HandleNavigationLinksHandler } from './handle-navigation-links';\n\nexport const COMMON_FEATURES = [\n\n HandleNavigationLinksHandler,\n];\n","import { inject, Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter, map, Observable, startWith } from 'rxjs';\nimport { BrowserService } from '@foblex/platform';\nimport { IMetaData } from './i-meta-data';\nimport { FHeadTagService } from './f-head-tag.service';\nimport { tap } from 'rxjs/operators';\nimport { DOCUMENTATION_CONFIGURATION } from '../../domain';\nimport { INavigationGroup, INavigationItem } from '../../components';\n\n@Injectable()\nexport class FMetaService {\n\n private readonly _router = inject(Router);\n private readonly _headTag = inject(FHeadTagService);\n private readonly _browser = inject(BrowserService);\n private readonly _configuration = inject(DOCUMENTATION_CONFIGURATION);\n\n public changes(): Observable<void> {\n return this._router.events.pipe(\n startWith(new NavigationEnd(1, '', '')),\n filter(event => event instanceof NavigationEnd),\n map(() => void 0),\n tap(() => {\n if (!this._configuration.meta) {\n return;\n }\n const defaultData = this._configuration.meta;\n\n const 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._browser.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._browser.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._browser.window.location.origin + data.image.slice(1);\n } else {\n data.image = this._browser.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\n public dispose(): void {\n if (!this._configuration.meta) {\n return;\n }\n this._updateMetaTags(this._configuration.meta);\n }\n\n private _findDocGroupByUrl(url: string): INavigationGroup | undefined {\n return this._configuration.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._headTag.setTitle(item.title);\n this._headTag.setDescription(item.description);\n this._headTag.setCanonical(item.url);\n\n this._headTag.updateTag({ property: 'og:url', content: item.url });\n this._headTag.updateTag({ property: 'og:type', content: item.type });\n this._headTag.updateTag({ property: 'og:title', content: item.title });\n this._headTag.updateTag({ property: 'og:site_name', content: item.title });\n this._headTag.updateTag({ property: 'og:locale', content: item.locale });\n this._headTag.updateTag({ property: 'og:description', content: item.description });\n this._headTag.updateTag({ property: 'og:image', content: item.image });\n this._headTag.updateTag({ property: 'og:image:secure_url', content: item.image });\n this._headTag.updateTag({ property: 'og:image:type', content: item.image_type });\n this._headTag.updateTag({ property: 'og:image:width', content: item.image_width.toString() });\n this._headTag.updateTag({ property: 'og:image:height', content: item.image_height.toString() });\n }\n}\n\n\n","import { InjectionToken } from '@angular/core';\n\nexport interface IToggleNavigationComponent {\n\n onToggleNavigation(value: boolean): void;\n}\n\nexport const TOGGLE_NAVIGATION_COMPONENT = new InjectionToken<IToggleNavigationComponent>('TOGGLE_NAVIGATION_COMPONENT');\n","import {\n ChangeDetectionStrategy,\n Component, inject,\n} from '@angular/core';\nimport { TOGGLE_NAVIGATION_COMPONENT } from './domain';\n\n@Component({\n selector: 'button[hamburger-button]',\n templateUrl: './hamburger-button.component.html',\n styleUrls: [ './hamburger-button.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(click)': '_onShowNavigation()',\n },\n})\nexport class HamburgerButtonComponent {\n private readonly _parent = inject(TOGGLE_NAVIGATION_COMPONENT, {\n optional: true,\n });\n\n protected _onShowNavigation(): void {\n this._parent?.onToggleNavigation(true);\n }\n}\n","<span class=\"f-icon hamburger\"></span>\n\n","import { ComponentRef, inject, Injectable, signal } from '@angular/core';\nimport {\n IExampleComponent,\n IMarkdownFooterNavigation,\n INavigationGroup,\n ITableOfContent,\n TableOfContentData,\n} from '../components';\nimport {\n IHeaderConfiguration,\n IHeaderConfigurationStore,\n IHeaderMenuLink,\n ISocialLink,\n ISocialLinksProvider,\n} from '../../common';\nimport { DOCUMENTATION_CONFIGURATION } from '../domain';\n\n@Injectable()\nexport class DocumentationStore\n implements ISocialLinksProvider, IHeaderConfigurationStore {\n private readonly _configuration = inject(DOCUMENTATION_CONFIGURATION);\n\n public readonly tocData = signal<TableOfContentData>(new TableOfContentData([], []));\n public readonly dComponents = signal<ComponentRef<any>[]>([]);\n\n public disposeDComponents(): void {\n this.dComponents().forEach((ref) => ref.destroy());\n this.dComponents.set([]);\n }\n\n public getMarkdownUrl(markdown: string): string {\n if (!markdown || !this._isMarkdownExist(markdown)) {\n return this._configuration.notFoundMarkdown;\n }\n let url = this._configuration.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\n return url;\n }\n\n private _isMarkdownExist(id: string): boolean {\n return !!this._configuration.navigation.find((x) =>\n x.items.some((i: { link: string; }) => i.link === id),\n );\n }\n\n public getLogo(): string {\n return this._configuration.logo;\n }\n\n public getTitle(): string {\n return this._configuration.title;\n }\n\n public getHeaderNavigation(): IHeaderMenuLink[] {\n return this._configuration.header?.navigation || [];\n }\n\n // public getNpmVersion(): IVersion | undefined {\n // return this._configuration.version;\n // }\n\n public getComponents(): IExampleComponent[] {\n return this._configuration.components || [];\n }\n\n public getNavigation(): INavigationGroup[] {\n return this._configuration.navigation;\n }\n\n public getFooterNavigation(): IMarkdownFooterNavigation {\n return this._configuration.footer?.navigation || {};\n }\n\n public getSocialLinks(): ISocialLink[] {\n return this._configuration.header?.mediaLinks || [];\n }\n\n public getToC(): ITableOfContent {\n return (\n this._configuration.toC || {\n title: 'In this article',\n range: { start: 2, end: 6 },\n }\n );\n }\n\n // public getMetaData(): IMetaData | undefined {\n // return this._configuration.meta;\n // }\n\n public getHeader(): IHeaderConfiguration | undefined {\n return this._configuration.header;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component, inject,\n} from '@angular/core';\nimport { HamburgerButtonComponent } from './hamburger-button';\nimport { DocumentationStore } from '../../services';\nimport {\n DropdownMenuComponent,\n FSocialLinksComponent,\n FThemeButtonComponent,\n InlineMenuComponent,\n NpmVersionComponent,\n} from '../../../common';\n\n@Component({\n selector: 'f-header',\n templateUrl: './header.component.html',\n styleUrls: [ './header.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n HamburgerButtonComponent,\n NpmVersionComponent,\n FSocialLinksComponent,\n FThemeButtonComponent,\n InlineMenuComponent,\n DropdownMenuComponent,\n ],\n})\nexport class HeaderComponent {\n protected title = inject(DocumentationStore).getTitle();\n}\n","<button hamburger-button></button>\n<div class=\"title text-ellipsis\">{{ title }}</div>\n<inline-menu/>\n<!--<npm-version/>-->\n<div class=\"divider\"></div>\n<button f-theme-button></button>\n<div class=\"divider\"></div>\n<f-social-links/>\n\n","import { ChangeDetectionStrategy, Component, input, signal } from '@angular/core';\n\n@Component({\n selector: 'f-navigation-group',\n templateUrl: './navigation-group.component.html',\n styleUrls: [ './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 NavigationGroupComponent {\n public readonly title = input<string | undefined>(undefined);\n\n protected readonly isCollapsed = signal(false);\n\n protected toggle(): void {\n this.isCollapsed.set(!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';\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,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n HostListener,\n inject,\n OnInit,\n} from '@angular/core';\nimport { NavigationEnd, Router, RouterLink } from '@angular/router';\nimport { startWith } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { FNavigationItemComponent } from './f-navigation-item/f-navigation-item.component';\nimport { NavigationGroupComponent } from './navigation-group/navigation-group.component';\nimport {\n INavigationItem,\n} from './domain';\nimport { deepClone } from '@foblex/utils';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TOGGLE_NAVIGATION_COMPONENT } from '../header';\nimport { DocumentationStore } from '../../services';\nimport { HandleNavigationLinksRequest } from '../../domain';\nimport { FMediator } from '@foblex/mediator';\n\n@Component({\n selector: 'f-navigation-panel',\n templateUrl: './navigation-panel.component.html',\n styleUrls: ['./navigation-panel.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FNavigationItemComponent,\n NavigationGroupComponent,\n RouterLink,\n ],\n})\nexport class NavigationPanelComponent implements OnInit, AfterViewInit {\n private readonly _provider = inject(DocumentationStore);\n private readonly _parent = inject(TOGGLE_NAVIGATION_COMPONENT, {\n optional: true,\n });\n private readonly _router = inject(Router);\n private readonly _mediator = inject(FMediator);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _destroyRef = inject(DestroyRef);\n\n protected value: string | undefined;\n protected navigation = this._provider.getNavigation();\n protected title = this._provider.getTitle();\n protected image = this._provider.getLogo();\n\n public ngOnInit(): void {\n const currentPath = this._router.url;\n const prefix = currentPath.substring(0, currentPath.lastIndexOf('/'));\n const navigation = deepClone(this._provider.getNavigation());\n navigation.forEach((group) => {\n group.items.forEach((item) => this._normalizeLink(item, prefix));\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('/')\n ? `${prefix}${item.link}`\n : `${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._subscribeOnRouteChanges();\n }\n\n private _subscribeOnRouteChanges(): void {\n this._router.events\n .pipe(\n startWith(new NavigationEnd(1, '', '')),\n filter((event) => event instanceof NavigationEnd),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this._highlightLink(this._router.url);\n this._parent?.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 =\n group.items.find((x) => {\n return url.endsWith(x.link);\n })?.link || this.value;\n });\n }\n\n @HostListener('click', ['$event'])\n protected _onDocumentClick(event: MouseEvent): void {\n this._mediator.execute(new HandleNavigationLinksRequest(event));\n }\n}\n","<a routerLink class=\"navigation-header\">\n <img [src]=\"image\" width=\"24\" height=\"24\" alt=\"logo\" class=\"logo\"/> {{ title }}\n</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 class=\"f-badge {{ item.badge.type }}\">{{ item.badge.text }}</span>\n }\n </a>\n }\n </f-navigation-group>\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core';\nimport { IParsedContainerData } from '../../../markdown';\n\n@Component({\n selector: 'f-code-group-tabs',\n templateUrl: './f-code-group-tabs.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'f-code-group-tabs',\n '[style.display]': 'display()',\n },\n})\nexport class FCodeGroupTabsComponent {\n public data = input<IParsedContainerData[]>([]);\n public tabIndex = output<number>();\n\n protected display = computed(() => {\n const data = this.data();\n return !data.length || data.length === 1 ? 'none' : 'block';\n });\n protected index = signal<number>(0);\n\n protected onTabClick(index: number): void {\n this.index.set(index);\n this.tabIndex.emit(index);\n }\n}\n","@for (data of data(); track data) {\n <button class=\"f-tab-button\" [class.active]=\"$index === index()\"\n (click)=\"onTabClick($index)\">\n {{ data.tab }}\n </button>\n}\n","import { Observable, of } from 'rxjs';\nimport { IHandler } from '@foblex/mediator';\n\nexport class ChangeCodeFocusedSyntaxPreProcessor\n 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 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 _browser: 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._browser.window.getComputedStyle(element).color;\n }\n\n private _createRgbaString(color: string, opacity: number, isRgb = 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\"><span>${ p1 }</span></focus>`;\n },\n};\n","import { ThemeInput } from '@shikijs/types'\n\nexport const UNIVERSAL_THEME: ThemeInput = {\n name: 'universal',\n colors: {\n 'editor.background': 'transparent',\n 'editor.foreground': 'var(--code-view-text-color)',\n },\n settings: [\n {\n scope: ['comment', 'punctuation.definition.comment', 'string.comment'],\n settings: {\n foreground: 'var(--token-comment)',\n },\n },\n {\n scope: ['constant', 'entity.name.constant', 'variable.other.constant', 'variable.other.enummember', 'variable.language'],\n settings: {\n foreground: 'var(--token-number)',\n },\n },\n {\n scope: ['entity', 'entity.name'],\n settings: {\n foreground: 'var(--token-tag)',\n },\n },\n {\n scope: 'variable.parameter.function',\n settings: {\n foreground: 'var(--primary-text)',\n },\n },\n {\n scope: 'entity.name.tag',\n settings: {\n foreground: 'var(--token-tag)',\n },\n },\n {\n scope: 'keyword',\n settings: {\n foreground: 'var(--token-keyword)',\n },\n },\n {\n scope: ['storage', 'storage.type'],\n settings: {\n foreground: 'var(--token-keyword)',\n },\n },\n {\n scope: ['storage.modifier.package', 'storage.modifier.import', 'storage.type.java'],\n settings: {\n foreground: 'var(--primary-text)',\n },\n },\n {\n scope: ['string', 'punctuation.definition.string', 'string punctuation.section.embedded source'],\n settings: {\n foreground: 'var(--token-string)',\n },\n },\n {\n scope: 'support',\n settings: {\n foreground: 'var(--token-function)',\n },\n },\n {\n scope: 'meta.property-name',\n settings: {\n foreground: 'var(--token-function)',\n },\n },\n {\n scope: 'variable',\n settings: {\n foreground: 'var(--token-variable)',\n },\n },\n {\n scope: 'variable.other',\n settings: {\n foreground: 'var(--token-function)',\n },\n },\n {\n scope: [\n 'invalid.broken',\n 'invalid.deprecated',\n 'invalid.illegal',\n 'invalid.unimplemented',\n ],\n settings: {\n fontStyle: 'italic',\n foreground: 'var(--danger-2)',\n },\n },\n {\n scope: 'carriage-return',\n settings: {\n fontStyle: 'italic underline',\n foreground: 'var(--background-color)',\n background: 'var(--token-keyword)',\n },\n },\n {\n scope: 'message.error',\n settings: {\n foreground: 'var(--danger-2)',\n },\n },\n {\n scope: 'string variable',\n settings: {\n foreground: 'var(--token-function)',\n },\n },\n {\n scope: ['source.regexp', 'string.regexp'],\n settings: {\n foreground: 'var(--token-interpolation)',\n },\n },\n {\n scope: [\n 'string.regexp.character-class',\n 'string.regexp constant.character.escape',\n 'string.regexp source.ruby.embedded',\n 'string.regexp string.regexp.arbitrary-repitition',\n ],\n settings: {\n foreground: 'var(--token-interpolation)',\n },\n },\n {\n scope: 'string.regexp constant.character.escape',\n settings: {\n fontStyle: 'bold',\n foreground: 'var(--token-attr-value)',\n },\n },\n {\n scope: ['support.constant', 'support.variable', 'meta.module-reference'],\n settings: {\n foreground: 'var(--token-function)',\n },\n },\n {\n scope: 'punctuation.definition.list.begin.markdown',\n settings: {\n foreground: 'var(--token-variable)',\n },\n },\n {\n scope: ['markup.heading', 'markup.heading entity.name'],\n settings: {\n fontStyle: 'bold',\n foreground: 'var(--token-function)',\n },\n },\n {\n scope: 'markup.quote',\n settings: {\n foreground: 'var(--token-attr-value)',\n },\n },\n {\n scope: 'markup.italic',\n settings: {\n fontStyle: 'italic',\n foreground: 'var(--primary-text)',\n },\n },\n {\n scope: 'markup.bold',\n settings: {\n fontStyle: 'bold',\n foreground: 'var(--primary-text)',\n },\n },\n {\n scope: 'markup.underline',\n settings: {\n fontStyle: 'underline',\n },\n },\n {\n scope: 'markup.strikethrough',\n settings: {\n fontStyle: 'strikethrough',\n },\n },\n {\n scope: 'markup.inline.raw',\n settings: {\n foreground: 'var(--token-function)',\n },\n },\n {\n scope: ['markup.deleted', 'meta.diff.header.from-file', 'punctuation.definition.deleted'],\n settings: {\n background: 'var(--danger-3)',\n foreground: 'var(--danger-2)',\n },\n },\n {\n scope: ['markup.inserted', 'meta.diff.header.to-file', 'punctuation.definition.inserted'],\n settings: {\n background: 'var(--success-3)',\n foreground: 'var(--token-attr-value)',\n },\n },\n {\n scope: ['markup.changed', 'punctuation.definition.changed'],\n settings: {\n background: 'var(--warning-3)',\n foreground: 'var(--token-variable)',\n },\n },\n {\n scope: ['markup.ignored', 'markup.untracked'],\n settings: {\n background: 'var(--token-function)',\n foreground: 'var(--alt-background)',\n },\n },\n {\n scope: 'meta.diff.range',\n settings: {\n fontStyle: 'bold',\n foreground: 'var(--token-attr-name)',\n },\n },\n {\n scope: 'meta.diff.header',\n settings: {\n foreground: 'var(--token-function)',\n },\n },\n {\n scope: 'meta.separator',\n settings: {\n fontStyle: 'bold',\n foreground: 'var(--token-function)',\n },\n },\n {\n scope: 'meta.output',\n settings: {\n foreground: 'var(--token-function)',\n },\n },\n {\n scope: [\n 'brackethighlighter.tag',\n 'brackethighlighter.curly',\n 'brackethighlighter.round',\n 'brackethighlighter.square',\n 'brackethighlighter.angle',\n 'brackethighlighter.quote',\n ],\n settings: {\n foreground: 'var(--gray-1)',\n },\n },\n {\n scope: 'brackethighlighter.unmatched',\n settings: {\n foreground: 'var(--danger-2)',\n },\n },\n {\n scope: ['constant.other.reference.link', 'string.other.link'],\n settings: {\n fontStyle: 'underline',\n foreground: 'var(--token-interpolation)',\n },\n },\n ],\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable, of, Subscriber, switchMap } from 'rxjs';\nimport { ModifyPunctuationHighlightPostProcessor } from './modify-punctuation-highlight.post-processor';\nimport { BrowserService } from '@foblex/platform';\nimport { MarkCodeFocusedBlocksPostProcessor } from './mark-code-focused-blocks.post-processor';\nimport { ChangeCodeFocusedSyntaxPreProcessor } from './change-code-focused-syntax.pre-processor';\nimport { BundledLanguage, BundledTheme, createHighlighter, HighlighterGeneric } from 'shiki';\nimport { UNIVERSAL_THEME } from './theme';\nimport { LANGUAGES } from '../components';\n\ntype Highlighter = HighlighterGeneric<BundledLanguage, BundledTheme>;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HighlightService {\n\n private _highlighter: Highlighter | undefined;\n private readonly _browser = inject(BrowserService);\n\n public highlight(element: HTMLElement, lang: string, content: string): Observable<HTMLElement> {\n return this._browser.isBrowser() ? this._markNoneLanguage(element).pipe(\n switchMap((x) => new ChangeCodeFocusedSyntaxPreProcessor().handle(x)),\n switchMap((x) => this._highlightCodeWithPrism(x, lang, content)),\n switchMap((x) => new ModifyPunctuationHighlightPostProcessor().handle(x)),\n switchMap((x) => new MarkCodeFocusedBlocksPostProcessor(this._browser).handle(x)),\n ) : of(element);\n }\n\n private _highlightCodeWithPrism(element: HTMLElement, lang: string, content: string): Observable<HTMLElement> {\n return new Observable<HTMLElement>((observer) => {\n this._loadHighlighter().then(() => this._highlight(observer, element, lang, content));\n });\n }\n\n private _highlight(\n observer: Subscriber<HTMLElement>,\n element: HTMLElement,\n lang: string,\n content: string,\n ): void {\n element.innerHTML = this._codeToHtml(content, lang);\n observer.next(element);\n observer.complete();\n }\n\n private _codeToHtml(code: string, language: string | undefined): string {\n return this._highlighter?.codeToHtml(code, {\n lang: language || 'text',\n theme: 'universal',\n defaultColor: false,\n }) || code;\n }\n\n private async _loadHighlighter(): Promise<Highlighter> {\n if (!this._highlighter) {\n this._highlighter = await createHighlighter({\n themes: [UNIVERSAL_THEME], langs: LANGUAGES,\n });\n }\n return this._highlighter;\n }\n\n private _markNoneLanguage(element: HTMLElement): Observable<HTMLElement> {\n element.querySelectorAll('pre code:not([class*=\"language-\"])').forEach(\n (x) => {\n x.classList.add('language-none');\n x.innerHTML = x.textContent ?? '';\n },\n );\n return of(element);\n }\n}\n","import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, input, OnInit } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { HighlightService } from '../../../../highlight';\n\n@Component({\n selector: 'highlight',\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HighlightComponent implements OnInit {\n\n private readonly _highlightService = inject(HighlightService);\n private readonly _elementRef = inject(ElementRef);\n private readonly _destroyRef = inject(DestroyRef);\n\n public content = input.required<string>();\n public language = input.required<string>();\n\n public ngOnInit() {\n queueMicrotask(() => {\n this._highlightService.highlight(this._elementRef.nativeElement, this.language(), this.content())\n .pipe(\n take(1), takeUntilDestroyed(this._destroyRef),\n ).subscribe();\n })\n }\n}\n","export function parseLanguageFromFileExtension(url: string): string {\n const match = url.match(/\\.([0-9a-z]+)(?:[\\?#]|$)/i);\n\n if (match) {\n let extension = match[1];\n if (extension === 'css') {\n extension = 'scss';\n }\n return extension;\n }\n return '';\n}\n\nexport const LANGUAGES = [\n 'javascript',\n 'typescript',\n 'angular-html',\n 'angular-ts',\n 'shell',\n 'html',\n 'bash',\n 'css',\n 'scss',\n 'markdown',\n 'text',\n];\n\nexport function parseSyntaxLanguage(language: string): string {\n let result: string;\n switch (language) {\n case 'js':\n case 'javascript':\n result = 'javascript';\n break;\n case 'ts':\n case 'typescript':\n case 'angular-ts':\n result = 'angular-ts';\n break;\n case 'html':\n case 'angular-html':\n result = 'angular-html';\n break;\n default:\n result = extractLanguage(language);\n }\n if(!LANGUAGES.includes(result)) {\n result = 'text';\n }\n return result;\n}\n\nfunction extractLanguage(language: string): string {\n const match = language.match(/^([^\\s\\[]+)/);\n return match ? match[1].toLowerCase() : language;\n}\n","import { ComponentRef, Directive, inject, input, OnDestroy, OnInit, Type, ViewContainerRef } from '@angular/core';\nimport { IExampleComponentInstance } from '../domain/i-example-component-instance';\n\n@Directive({\n standalone: true,\n selector: 'ng-container[fInsertComponent]',\n})\nexport class FInsertComponentDirective implements OnInit, OnDestroy {\n public component = input<Type<IExampleComponentInstance> | null>();\n\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private _componentRef: ComponentRef<IExampleComponentInstance> | null = null;\n\n public ngOnInit(): void {\n const component = this.component();\n if (!component) {\n return;\n }\n this._createComponent(component);\n }\n\n private _createComponent(component: Type<IExampleComponentInstance>): void {\n this._viewContainerRef.clear();\n this._componentRef = this._viewContainerRef.createComponent(component);\n this._componentRef.instance?.initialize?.();\n }\n\n public ngOnDestroy(): void {\n this._componentRef?.destroy();\n this._viewContainerRef.clear();\n }\n}\n","export function coerceComponentHeight(value: string | number | undefined): string {\n if (value === undefined) {\n return 'auto';\n }\n value = Number(value);\n if (value) {\n return value + 'px';\n }\n return 'auto';\n}\n","export function parseComponentTag(html: string): string | null {\n const regex = /^<([a-zA-Z0-9-]+)(\\s+[^>]+)?><\\/\\1>$/;\n const match = regex.exec(html);\n return match ? match[1] : null;\n}\n","export function isPromise<T = unknown>(value: unknown): value is Promise<T> {\n return !!value && typeof (value as { then?: unknown }).then === 'function';\n}\n","import { ChangeDetectionStrategy, Component, inject, input, OnInit, signal, Type } from '@angular/core';\nimport { IExampleComponent } from './domain/i-example-component';\nimport { coerceComponentHeight } from './utils/coerce-component-height';\nimport { parseComponentTag } from './utils/parse-component-tag';\nimport { FInsertComponentDirective } from './directives/f-insert-component.directive';\nimport { IExampleViewData } from './domain/i-example-view-data';\nimport { isPromise } from './utils/is-promise';\nimport { IParsedContainerData } from '../../../markdown';\nimport { IExampleComponentInstance } from './domain/i-example-component-instance';\nimport { DocumentationStore } from '../../../../../../services';\n\n@Component({\n selector: 'f-example-view',\n templateUrl: './f-example-view.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FInsertComponentDirective,\n ],\n host: {\n class: 'f-example-view',\n '[style.height]': 'data().height',\n },\n})\nexport class FExampleViewComponent implements OnInit {\n\n public data = input.required<IExampleViewData, IParsedContainerData>({\n transform: (x) => {\n return {\n height: coerceComponentHeight(x.height),\n value: parseComponentTag(x.value) || '',\n };\n },\n });\n\n protected errors = signal<string>('');\n protected component = signal<Type<IExampleComponentInstance> | null>(null);\n\n private readonly _provider = inject(DocumentationStore);\n\n public ngOnInit(): void {\n const result = this._findComponentByTag(this.data().value);\n if (!result || !result.component) {\n this.errors.set(`Component with tag \"${this.data().value}\" not found`);\n return;\n }\n const { component, selector } = result;\n\n if (isPromise(component)) {\n this._loadAndAddComponentToContainer(component, selector);\n } else {\n this.component.set(component);\n }\n }\n\n private _findComponentByTag(selector: string | null): IExampleComponent | undefined {\n return this._provider?.getComponents()\n ?.find((component) => component.selector === selector);\n }\n\n private _logComponentResolutionError(tag: string): void {\n console.error(`Component for tag \"${tag}\" could not be resolved.`);\n }\n\n private _logComponentLoadingError(tag: string, error: object): void {\n console.error(`Error while loading component for tag \"${tag}\":`, error);\n }\n\n private _loadAndAddComponentToContainer(lazyComponent: Promise<Type<IExampleComponentInstance>>, tag: string): void {\n lazyComponent.then(extracted => {\n this.component.set(extracted);\n if (!extracted) {\n this._logComponentResolutionError(tag);\n }\n }).catch(error => this._logComponentLoadingError(tag, error));\n }\n}\n","{{ errors() }}\n@if (component()) {\n <ng-container fInsertComponent [component]=\"component()\"/>\n}\n\n","import { ChangeDetectionStrategy, Component, computed, DestroyRef, inject, input, OnInit, signal } from '@angular/core';\nimport { catchError, take } from 'rxjs/operators';\nimport { EMPTY } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { HighlightComponent } from './components/highlight.component';\nimport { parseLanguageFromFileExtension, parseSyntaxLanguage } from './utils/parse-language';\nimport { IParsedContainerData } from '../../../markdown';\nimport { copyToClipboard, PopoverService } from '../../../../../../../common';\nimport { coerceComponentHeight } from '../f-example-view';\n\n@Component({\n selector: 'f-code-view',\n templateUrl: './f-code-view.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'f-code-view',\n '[style.height]': 'height()',\n },\n imports: [\n HighlightComponent,\n ],\n})\nexport class FCodeViewComponent implements OnInit {\n private readonly _httpClient = inject(HttpClient);\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _popoverService = inject(PopoverService);\n\n public readonly data = input<IParsedContainerData>();\n\n protected readonly height = computed(() => {\n return coerceComponentHeight(this.data()?.height);\n });\n\n protected readonly content = signal<string>('');\n protected readonly visibleLanguage = signal<string>('');\n protected readonly syntaxLanguage = signal<string>('');\n\n public ngOnInit(): void {\n this._updateLanguage();\n this._updateNotExistingData(this.data());\n this._updateExistingData(this.data());\n }\n\n private _updateLanguage(): void {\n const data = this.data();\n const language = data?.language || parseLanguageFromFileExtension(data?.value || '');\n this.syntaxLanguage.set(parseSyntaxLanguage(language));\n this.visibleLanguage.set(language);\n }\n\n private _updateNotExistingData(data?: IParsedContainerData): void {\n if (data?.isLink) {\n this._loadCodeByLink(data.value);\n }\n }\n\n private _updateExistingData(data?: IParsedContainerData): void {\n if (!data?.isLink) {\n this.content.set(data?.value || '');\n }\n }\n\n private _loadCodeByLink(link: string): void {\n if (!link) return;\n\n this._httpClient.get(link, { responseType: 'text' }).pipe(\n take(1),\n takeUntilDestroyed(this._destroyRef),\n catchError(() => EMPTY),\n ).subscribe((content) => this.content.set(content));\n }\n\n protected onCopyClick(): void {\n this._copyContentToClipboard(this.content());\n }\n\n private _copyContentToClipboard(content: string): void {\n copyToClipboard(content).pipe(\n take(1),\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this._popoverService.show('Copied!'));\n }\n}\n\n","<span class=\"f-code-language\">{{ visibleLanguage() }}</span>\n<button class=\"f-copy-button\" (click)=\"onCopyClick()\"></button>\n@if (content()) {\n <highlight [content]=\"content()\" [language]=\"syntaxLanguage()\"/>\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 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","export enum EParsedContainerType {\n\n CODE = 'code',\n\n EXAMPLE = 'ng-component',\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { IPreviewNavigationGroup } from \"./i-preview-navigation-group\";\n\nexport interface IPreviewNavigationService<T extends IPreviewNavigationGroup> {\n getNavigation(): T[];\n}\n\nexport const F_PREVIEW_NAVIGATION_PROVIDER = new InjectionToken<IPreviewNavigationService<IPreviewNavigationGroup>>('F_PREVIEW_NAVIGATION_PROVIDER');\n","import { IMarkdownItToken } from '../index';\n\nexport function getContent(tokens: IMarkdownItToken[], index: number, eContainerType: string): 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 { inject, Injectable } from '@angular/core';\nimport { Observable, of, switchMap } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport MarkdownIt from 'markdown-it';\n\nimport {\n EMarkdownContainerType,\n ParseAlerts,\n ParseAngularExampleWithCodeLinks,\n ParseGroupedCodeItems,\n ParsePreviewGroup,\n ParseSingleCodeItem,\n} from './index';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { catchError, take } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { F_PREVIEW_NAVIGATION_PROVIDER } from './domain';\n\n@Injectable()\nexport class MarkdownService {\n\n private readonly _markdown = new MarkdownIt({ html: true, linkify: true });\n private readonly _httpClient = inject(HttpClient);\n private readonly _domSanitizer = inject(DomSanitizer);\n private readonly _router = inject(Router);\n private readonly _provider = inject(F_PREVIEW_NAVIGATION_PROVIDER);\n\n constructor() {\n this._markdown\n .use((x) => new ParseSingleCodeItem().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 ParseGroupedCodeItems().render())\n .use(...new ParsePreviewGroup(this._provider.getNavigation()).render())\n .use(...new ParseAngularExampleWithCodeLinks().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 MarkdownIt from 'markdown-it';\nimport container from 'markdown-it-container';\nimport { IMarkdownItToken } from './domain';\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 './domain';\nimport { IMarkdownItToken } from './domain';\nimport { EParsedContainerType, IParsedContainerData } from \"./domain\";\n\ntype ContainerArgs = [typeof container, string, { render: any }]\nconst F_CONTAINER_CLOSE_TAG = 'container_code-group_close';\n\nexport class ParseGroupedCodeItems {\n\n public render(): ContainerArgs {\n return [container, EMarkdownContainerType.CODE_GROUP, {\n render: (tokens: IMarkdownItToken[], index: number) => {\n if (this._isOpeningToken(tokens, index)) {\n\n return this._openingExampleGroupHTML(this._generateData(tokens, index));\n }\n return '</f-code-group>';\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): IParsedContainerData[] {\n const result: IParsedContainerData[] = [];\n\n for (let i = index + 1; !this._isClosingToken(tokens, i); i++) {\n if (this._isCodeFenceToken(tokens[i])) {\n result.push({\n tab: this._getCodeBlockTitle(tokens[i].info),\n value: tokens[i].content,\n type: EParsedContainerType.CODE,\n isLink: false,\n height: 'auto',\n language: this._getCodeLanguage(tokens[i].info),\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 _openingExampleGroupHTML(data: IParsedContainerData[]): string {\n const jsonData = JSON.stringify(data).replace(/\"/g, '"');\n return `<f-code-group data-data=\"${jsonData}\">`;\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 const match = data.trim().match(/^([a-zA-Z0-9_-]+)\\s*\\[.*\\]$/);\n return match ? match[1] : '';\n }\n}\n","import MarkdownIt from 'markdown-it';\nimport { IMarkdownItToken } from './domain';\nimport { EParsedContainerType, IParsedContainerData } from \"./domain\";\n\nexport class ParseSingleCodeItem {\n\n public render(markdown: MarkdownIt): void {\n const fence = markdown.renderer.rules.fence;\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) => {\n const data = this._getTokenData(tokens[index]);\n return (\n `<f-code-group data-data=\"${this._coerceData(this._createCodeData(data))}\"></f-code-group>`\n );\n }\n }\n\n private _getTokenData(token: IMarkdownItToken): ITokenData {\n return { value: token.content, language: token.info };\n }\n\n private _coerceData(data: IParsedContainerData): string {\n return JSON.stringify([data]).replace(/\"/g, '"');\n }\n\n private _createCodeData({ value, language }: ITokenData): IParsedContainerData {\n return {\n tab: '',\n value,\n language,\n type: EParsedContainerType.CODE,\n }\n }\n}\n\ninterface ITokenData {\n value: string;\n language: string;\n}\n","import { EMarkdownContainerType } from './domain';\nimport { IMarkdownItToken } from './domain';\nimport { getContent } from './utils';\n\nimport container from 'markdown-it-container';\nimport { EParsedContainerType, IMarkdownContainerData, IParsedContainerData } from \"./domain\";\n\ntype ContainerArgs = [typeof container, string, { render: any }];\n\nexport class ParseAngularExampleWithCodeLinks {\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 '</f-code-group>';\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): IParsedContainerData[] {\n const result: IParsedContainerData[] = [];\n const component = this._parseNgComponent(tokens[index]);\n const height = component?.height || 'auto';\n if (component) {\n result.push(this._createComponentData(component));\n }\n const content = getContent(tokens, index, EMarkdownContainerType.EXAMPLE_GROUP);\n if (content) {\n this._parseData(content).forEach((x) => result.push(this._createContentData(x, height)));\n }\n\n return result;\n }\n\n private _createComponentData(component: { tag: string, height?: string }): IParsedContainerData {\n return {\n tab: 'Example',\n value: component.tag,\n type: EParsedContainerType.EXAMPLE,\n height: component.height || 'auto',\n }\n }\n\n private _createContentData(content: { fileName: string, url: string }, height?: string): IParsedContainerData {\n return {\n tab: content.fileName,\n value: content.url,\n isLink: true,\n type: EParsedContainerType.CODE,\n height,\n }\n }\n\n private _parseNgComponent(token: IMarkdownItToken): IMarkdownContainerData | null {\n if (!this._isNgComponent(token)) {\n return null;\n }\n\n const 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 _isNgComponent(token: IMarkdownItToken): boolean {\n return token.info.trim().startsWith(EMarkdownContainerType.EXAMPLE_GROUP);\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: IParsedContainerData[]): string {\n const jsonData = JSON.stringify(data).replace(/\"/g, '"');\n return `<f-code-group data-data=\"${jsonData}\">`;\n }\n}\n","import { EMarkdownContainerType } from './domain';\nimport { IMarkdownItToken } from './domain';\nimport { getContent } from './utils';\n\nimport container from 'markdown-it-container';\nimport { IPreviewNavigationGroup } from './domain';\n\ntype ContainerArgs = [ typeof container, string, { render: any } ]\n\nexport class ParsePreviewGroup {\n\n constructor(\n private _navigation: IPreviewNavigationGroup[],\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): IPreviewNavigationGroup[] {\n const groups: IPreviewNavigationGroup[] = [];\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: IPreviewNavigationGroup[]): string {\n const result = (groups || []).map((x) => {\n return `<h2>${ x.text }</h2><div class=\"f-preview-group\">${ this._getItemsHTML(x) }</div>`;\n }).join('');\n\n return this._getGroupFiltersHTML() + result;\n }\n\n private _getGroupFiltersHTML(): string {\n return `<f-preview-group-filters></f-preview-group-filters>`;\n }\n\n private _getItemsHTML(group: IPreviewNavigationGroup): 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 { ChangeDetectionStrategy, Component, signal } from '@angular/core';\nimport { FCodeGroupTabsComponent } from './f-code-group-tabs';\nimport { FExampleViewComponent } from \"./f-example-view\";\nimport { FCodeViewComponent } from './f-code-view';\nimport { EParsedContainerType, IParsedContainerData } from '../../markdown';\n\n@Component({\n selector: 'f-code-group',\n templateUrl: './f-code-group.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FCodeGroupTabsComponent,\n FCodeViewComponent,\n FExampleViewComponent,\n ],\n host: {\n class: 'f-code-group',\n },\n})\nexport class FCodeGroupComponent {\n public data = signal<IParsedContainerData[]>([]);\n\n protected index = signal<number>(0);\n protected containerType = EParsedContainerType;\n\n protected onTabClick(index: number): void {\n this.index.set(index);\n }\n}\n","<f-code-group-tabs [data]=\"data()\" (tabIndex)=\"onTabClick($event)\"/>\n<div class=\"f-code-group-body\">\n @for (data of data(); track data) {\n @let isExampleView = data.type === containerType.EXAMPLE;\n @let display = $index === index() ? 'block' : 'none';\n @if (isExampleView) {\n <f-example-view [style.display]=\"display\" [data]=\"data\"/>\n } @else {\n <f-code-view [style.display]=\"display\" [data]=\"data\"/>\n }\n }\n</div>\n","import { IMarkdownFooterLink } from '../i-markdown-footer-link';\n\nexport class GetPreviousNextPageNavigationResponse {\n\n constructor(\n public previousLink: IMarkdownFooterLink | undefined,\n public nextLink: IMarkdownFooterLink | 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 { IMarkdownFooterLink } from '../i-markdown-footer-link';\nimport { DocumentationStore } from '../../../../../../../services';\n\nexport class GetPreviousNextPageNavigationHandler\n implements IHandler<GetPreviousNextPageNavigationRequest, GetPreviousNextPageNavigationResponse> {\n\n constructor(\n private _provider: DocumentationStore,\n ) {\n }\n\n public handle(request: GetPreviousNextPageNavigationRequest): GetPreviousNextPageNavigationResponse {\n let previous: IMarkdownFooterLink | undefined = undefined;\n let next: IMarkdownFooterLink | undefined = undefined;\n\n this._provider.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._provider.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._provider.getNavigation().length - 1) {\n const nextGroup = this._provider.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 { IMarkdownFooterLink } 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!: IMarkdownFooterLink;\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, ChangeDetectorRef,\n Component, DestroyRef, HostListener, inject, 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 { debounceTime, startWith } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport {\n GetPreviousNextPageNavigationHandler,\n GetPreviousNextPageNavigationRequest,\n IMarkdownFooterLink, IMarkdownFooterNavigation,\n} from './domain';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DocumentationStore } from '../../../../../services';\nimport { HandleNavigationLinksRequest } from '../../../../../domain';\nimport { FMediator } from '@foblex/mediator';\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 ],\n standalone: true,\n})\nexport class FMarkdownFooterComponent implements OnInit {\n private readonly _mediator = inject(FMediator);\n private readonly _provider = inject(DocumentationStore);\n private readonly _router = inject(Router);\n private readonly _activatedRoute = inject(ActivatedRoute);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _destroyRef = inject(DestroyRef);\n\n protected navigation: IMarkdownFooterNavigation = {};\n protected editLink: string | undefined;\n protected previousLink: IMarkdownFooterLink | undefined;\n protected nextLink: IMarkdownFooterLink | undefined;\n\n public ngOnInit(): void {\n this._router.events\n .pipe(\n startWith(null), debounceTime(10), takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => this._updateData())\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(\n JSON.stringify(this._provider.getFooterNavigation()),\n );\n if (this.navigation.editLink) {\n this.editLink = this._getEditLink();\n }\n const previousNext = new GetPreviousNextPageNavigationHandler(\n this._provider,\n ).handle(new GetPreviousNextPageNavigationRequest(this._getCurrentLink()));\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(\n item: IMarkdownFooterLink | undefined,\n prefix: string,\n ): void {\n if (item?.link && !this._isExternalLink(item.link)) {\n item.link = item.link.startsWith('/')\n ? `${prefix}${item.link}`\n : `${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._activatedRoute.snapshot.url.map((x) => x.path).join('/');\n }\n\n @HostListener('click', ['$event'])\n protected _onDocumentClick(event: MouseEvent): void {\n this._mediator.execute(new HandleNavigationLinksRequest(event));\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>111</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","export abstract class FPreviewBase {\n\n public abstract date?: Date;\n\n public abstract filterKey?: string;\n\n public abstract hostElement: HTMLElement;\n}\n","import {\n ChangeDetectionStrategy,\n Component, DestroyRef,\n ElementRef,\n inject,\n OnDestroy,\n OnInit, signal,\n} from '@angular/core';\nimport { startWith } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { DocumentationStore } from '../../../../../../services';\nimport { FPreviewBase } from './f-preview-base';\nimport { FPreviewGroupService } from '../index';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { INavigationGroup, INavigationItem } from '../../../../../navigation-panel';\nimport { ThemeService } from '../../../../../../../common';\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 extends FPreviewBase implements OnInit, OnDestroy {\n\n private _elementReference = inject(ElementRef);\n private _fEnvironment = inject(DocumentationStore);\n private _fPreviewGroupService = inject(FPreviewGroupService);\n private _fState = inject(ThemeService);\n private _router = inject(Router);\n private _destroyRef = inject(DestroyRef);\n\n public item: string | undefined;\n public group: string | undefined;\n\n protected viewModel: INavigationItem | undefined;\n protected src = signal<string | undefined>(undefined);\n protected url: string | undefined;\n\n public get hostElement(): HTMLElement {\n return this._elementReference.nativeElement;\n }\n\n public get filterKey(): string | undefined {\n return this.viewModel?.badge?.text.toLowerCase();\n }\n\n public get date(): Date | undefined {\n return this.viewModel?.date;\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._subscribeToThemeChanges();\n }\n\n private _subscribeToThemeChanges(): void {\n this._fState.theme$.pipe(\n startWith(null), takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this._updateTheme());\n }\n\n public ngOnInit(): void {\n this._fPreviewGroupService.add(this);\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.set(this._fState.getPreferredTheme() === 'dark' ? this.viewModel?.image_dark : this.viewModel?.image);\n if (!this.src()) {\n this.src.set(this.viewModel?.image);\n }\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._fPreviewGroupService.remove(this);\n }\n}\n","@if (viewModel) {\n <img [src]=\"src()\" [alt]=\"viewModel.description\" [title]=\"viewModel.text\">\n <div class=\"title\">\n {{ viewModel.text }}\n @if (viewModel.badge) {\n <span class=\"f-badge {{viewModel.badge.type}}\">{{ viewModel.badge.text }}</span>\n }\n </div>\n <div class=\"description\">{{ viewModel.description }}</div>\n}\n\n\n\n","import { AfterViewInit, ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';\nimport { DocumentationStore } from '../../../../../../services';\nimport { TitleCasePipe } from '@angular/common';\nimport { FPreviewGroupService } from '../index';\nimport { FCheckboxComponent, FRadioButtonComponent } from '../../../../../../../common';\n\n@Component({\n selector: 'div[f-preview-group-filters]',\n templateUrl: './f-preview-group-filters.component.html',\n styleUrls: [ './f-preview-group-filters.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FCheckboxComponent,\n FRadioButtonComponent,\n TitleCasePipe,\n ],\n})\nexport class FPreviewGroupFiltersComponent implements AfterViewInit {\n\n private readonly _allKey = 'all';\n\n private _fEnvironment = inject(DocumentationStore);\n private _fPreviewGroupService = inject(FPreviewGroupService);\n\n protected filters = signal<string[]>([]);\n protected activeFilter = signal<string>(this._allKey);\n\n protected isSortByDateChecked = signal<boolean>(false);\n\n public initialize(): void {\n this.filters.set(this._calculateFiltersMap());\n }\n\n public ngAfterViewInit(): void {\n this.onFilterChange(this._allKey);\n }\n\n private _calculateFiltersMap(): string[] {\n const filters: string[] = [];\n this._fEnvironment.getNavigation().forEach((group) => {\n group.items.forEach((item) => {\n if (item.badge && !filters.includes(item.badge.text.toLowerCase())) {\n filters.push(item.badge.text.toLowerCase());\n }\n });\n });\n if (filters.length > 0) {\n filters.unshift(this._allKey);\n }\n return filters;\n }\n\n protected onFilterChange(key: string): void {\n this.activeFilter.set(key);\n this._fPreviewGroupService.filterBy(key, this._allKey);\n }\n\n protected onSortByDateChange(event: boolean): void {\n this.isSortByDateChecked.set(event);\n this._fPreviewGroupService.sortByDate(event);\n }\n}\n","@if (filters().length) {\n <div class=\"filters-row\">\n @for (filter of filters(); track filter) {\n <f-radio-button [checked]=\"activeFilter() === filter\"\n (change)=\"onFilterChange(filter)\">{{ filter | titlecase }}\n </f-radio-button>\n }\n <div class=\"flex-space\"></div>\n <f-checkbox [checked]=\"isSortByDateChecked()\" (change)=\"onSortByDateChange($event)\">Sort by Newness</f-checkbox>\n </div>\n}\n\n\n\n","import { Injectable } from '@angular/core';\nimport { FPreviewBase } from './f-preview';\n\n@Injectable()\nexport class FPreviewGroupService {\n\n private _fPreviews: FPreviewBase[] = [];\n private _originalOrder: Map<HTMLElement, Node[]> | null = null;\n\n public add(fPreview: FPreviewBase): void {\n this._fPreviews.push(fPreview);\n }\n\n public remove(fPreview: FPreviewBase): void {\n this._fPreviews = this._fPreviews.filter(preview => preview !== fPreview);\n }\n\n public sortByDate(sort: boolean): void {\n if (sort) {\n this._applyByDateOrder();\n } else {\n this._applyOriginalOrder();\n }\n }\n\n private _setOriginalOrder(): void {\n this._originalOrder = new Map();\n this._fPreviews.forEach((x) => {\n const parentElement = x.hostElement.parentElement;\n if (parentElement) {\n const childrenArray = Array.from(parentElement.children);\n this._originalOrder!.set(parentElement, childrenArray);\n }\n });\n }\n\n private _getOrderByDate(): FPreviewBase[] {\n return this._fPreviews\n .slice()\n .sort((a, b) => {\n const dateA = a.date ? a.date.getTime() : Number.MIN_SAFE_INTEGER;\n const dateB = b.date ? b.date.getTime() : Number.MIN_SAFE_INTEGER;\n return dateB - dateA;\n });\n }\n\n private _applyByDateOrder(): void {\n this._setOriginalOrder();\n this._getOrderByDate().forEach((x) => {\n const parent = x.hostElement.parentElement;\n parent?.appendChild(x.hostElement);\n });\n }\n\n private _applyOriginalOrder(): void {\n this._originalOrder!.forEach((originalChildren, parentElement) => {\n originalChildren.forEach(child => parentElement.appendChild(child));\n });\n }\n\n public filterBy(filterKey: string, _allKey: string): void {\n this._resetLastActiveFilter();\n\n if (filterKey === _allKey) {\n return;\n }\n this._fPreviews.forEach((x) => {\n if (x.filterKey !== filterKey) {\n x.hostElement.style.display = 'none';\n }\n });\n }\n\n private _resetLastActiveFilter(): void {\n this._fPreviews.forEach((x) => {\n x.hostElement.style.display = 'block';\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component, input,\n} from '@angular/core';\nimport { ITableOfContentItem } from '../../../domain';\n\n@Component({\n selector: 'ul[f-table-of-content-items]',\n styleUrls: [ './table-of-content-items.component.scss' ],\n templateUrl: './table-of-content-items.component.html',\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: true,\n})\nexport class TableOfContentItemsComponent {\n public readonly items = input.required<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","export class ActivateTocByHashRequest {\n constructor(\n public hash: string | undefined,\n ) {\n }\n}\n","import { FExecutionRegister, IExecution } from '@foblex/mediator';\nimport { ActivateTocByHashRequest } from './activate-toc-by-hash.request';\nimport { inject, Injectable } from '@angular/core';\nimport { DocumentationStore } from '../../../../services';\n\n@Injectable()\n@FExecutionRegister(ActivateTocByHashRequest)\nexport class ActivateTocByHashHandler\n implements IExecution<ActivateTocByHashRequest, void> {\n\n private readonly _provider = inject(DocumentationStore);\n\n public handle(payload: ActivateTocByHashRequest): void {\n this._provider.tocData.update((data) => ({\n ...data,\n flat: data.flat.map((x) => ({\n ...x,\n isActive: x.hash === payload.hash,\n })),\n }));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component, computed,\n ElementRef,\n HostListener,\n inject,\n} from '@angular/core';\nimport { TableOfContentItemsComponent } from './table-of-content-items';\nimport { BrowserService } from '@foblex/platform';\nimport { DocumentationStore } from '../../../../services';\nimport { ScrollToElementInContainerRequest } from '../../index';\nimport { ActivateTocByHashRequest } from '../../domain/activate-toc-by-hash';\nimport { FMediator } from '@foblex/mediator';\n\n@Component({\n selector: 'aside[f-table-of-content]',\n styleUrls: ['./table-of-content.component.scss'],\n templateUrl: './table-of-content.component.html',\n standalone: true,\n imports: [TableOfContentItemsComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableOfContentComponent {\n\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n private readonly _browser = inject(BrowserService);\n private readonly _provider = inject(DocumentationStore);\n private readonly _mediator = inject(FMediator);\n\n protected readonly tocData = computed(() => {\n return this._provider.tocData();\n });\n\n protected readonly activeMarkerPosition = computed(() => {\n const index = this.tocData()?.flat.findIndex((x) => x.isActive) || 0;\n return this._getActiveMarkerPosition(index);\n });\n protected readonly title = inject(DocumentationStore).getToC().title;\n\n private _getActiveMarkerPosition(activeIndex: number): number {\n const itemHeight = parseInt(\n this._getComputedStyle(this._elementRef.nativeElement).getPropertyValue(\n '--on-page-navigation-item-height',\n ),\n );\n return (activeIndex + 1) * itemHeight + itemHeight / 4;\n }\n\n private _getComputedStyle(element: HTMLElement): CSSStyleDeclaration {\n return this._browser.window.getComputedStyle(element);\n }\n\n @HostListener('click', ['$event'])\n protected _onDocumentClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n if (target.tagName === 'A') {\n event.preventDefault();\n this._scrollTo(target.getAttribute('href')!);\n }\n }\n\n private _scrollTo(hash: string): void {\n this._mediator.execute<void>(new ActivateTocByHashRequest(hash));\n this._mediator.execute<void>(new ScrollToElementInContainerRequest(hash));\n }\n}\n","@let data = tocData();\n@if (data) {\n <div class=\"title\">{{ title || 'In this article' }}</div>\n <ul f-table-of-content-items [items]=\"data.tree\"></ul>\n <div class=\"active-marker\" [style.top]=\"activeMarkerPosition() + 'px'\"></div>\n}\n\n","export class CalculateHashFromScrollPositionAndActivateTocRequest {\n}\n","export class GetAbsoluteTopToContainerRequest {\n constructor(\n public element: HTMLElement,\n ) {\n }\n}\n","import { FExecutionRegister, IHandler } from '@foblex/mediator';\nimport { GetAbsoluteTopToContainerRequest } from './get-absolute-top-to-container.request';\nimport { inject, Injectable } from '@angular/core';\nimport {\n SCROLLABLE_CONTAINER,\n} from '../../../index';\n\n@Injectable()\n@FExecutionRegister(GetAbsoluteTopToContainerRequest)\nexport class GetAbsoluteTopToContainerHandler implements IHandler<GetAbsoluteTopToContainerRequest, number> {\n\n private readonly _scrollableContainer = inject(SCROLLABLE_CONTAINER);\n\n public handle(request: GetAbsoluteTopToContainerRequest): number {\n let element = request.element;\n let result = 0;\n\n while (element !== this._scrollableContainer.htmlElement) {\n if (!element) return NaN;\n result += element.offsetTop;\n element = element.offsetParent as HTMLElement;\n }\n\n return result;\n }\n}\n","import { FExecutionRegister, FMediator, IExecution } from '@foblex/mediator';\nimport { CalculateHashFromScrollPositionAndActivateTocRequest } from './calculate-hash-from-scroll-position-and-activate-toc.request';\nimport { GetAbsoluteTopToContainerRequest } from '../get-absolute-top-to-container';\nimport { BrowserService } from '@foblex/platform';\nimport { inject, Injectable } from '@angular/core';\nimport {\n SCROLLABLE_CONTAINER,\n} from '../../../index';\nimport { ActivateTocByHashRequest } from '../activate-toc-by-hash';\nimport { DocumentationStore } from '../../../../services';\n\ninterface IHasTopItem {\n hash: string;\n top: number;\n}\n\n@Injectable()\n@FExecutionRegister(CalculateHashFromScrollPositionAndActivateTocRequest)\nexport class CalculateHashFromScrollPositionAndActivateTocHandler\n implements IExecution<CalculateHashFromScrollPositionAndActivateTocRequest, void> {\n\n private readonly _browser = inject(BrowserService);\n private readonly _mediator = inject(FMediator);\n private readonly _provider = inject(DocumentationStore);\n private readonly _scrollableContainer = inject(SCROLLABLE_CONTAINER);\n\n public handle(): void {\n let result: string | undefined;\n const containerScrollTop = this._getContainerScrollTop();\n\n const elementsWithTopPosition = this._calculateElementsTopPositions();\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 this._mediator.execute(new ActivateTocByHashRequest(result));\n }\n\n private _getContainerScrollTop(): number {\n return this._scrollableContainer.htmlElement.scrollTop + this._getHeaderHeight();\n }\n\n private _getHeaderHeight(): number {\n return parseInt(this._browser.window\n .getComputedStyle(this._browser.document.documentElement)\n .getPropertyValue('--header-height'), 10,\n );\n }\n\n private _calculateElementsTopPositions(): IHasTopItem[] {\n return this._provider.tocData().flat.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 this._mediator.execute(\n new GetAbsoluteTopToContainerRequest(element),\n );\n }\n\n private _isScrollAtBottom(containerScrollTop: number): boolean {\n return Math.abs(containerScrollTop - this._getHeaderHeight() + this._scrollableContainer.htmlElement.clientHeight - this._scrollableContainer.htmlElement.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","export class CalculateTableOfContentDataRequest {\n\n constructor(\n public fMarkdownPage: HTMLElement,\n ) {\n }\n}\n","import { ITableOfContentItem } from './i-table-of-content-item';\n\nexport class TableOfContentData {\n constructor(\n public flat: ITableOfContentItem[],\n public tree: ITableOfContentItem[],\n ) {\n }\n}\n","import { FExecutionRegister, FMediator, IExecution } from '@foblex/mediator';\nimport { CalculateTableOfContentDataRequest } from './calculate-table-of-content-data.request';\nimport { inject, Injectable } from '@angular/core';\nimport { DocumentationStore } from '../../../../services';\nimport {\n CalculateHashFromScrollPositionAndActivateTocRequest,\n} from '../calculate-hash-from-scroll-position-and-activate-toc';\nimport { TableOfContentData } from '../table-of-content-data';\nimport { ITableOfContentItem } from '../i-table-of-content-item';\n\n@Injectable()\n@FExecutionRegister(CalculateTableOfContentDataRequest)\nexport class CalculateTableOfContentDataHandler implements IExecution<CalculateTableOfContentDataRequest, void> {\n\n private readonly _provider = inject(DocumentationStore);\n private readonly _mediator = inject(FMediator);\n\n public handle(request: CalculateTableOfContentDataRequest): void {\n const flat: ITableOfContentItem[] = [];\n const tree: ITableOfContentItem[] = [];\n const stack: ITableOfContentItem[] = [];\n\n this._getNavigationSelectors(request.fMarkdownPage, this._provider.getToC().range).forEach((element) => {\n const tocItem = this._createItem(element);\n this._insertItemIntoTree(tocItem, tree, stack);\n flat.push(tocItem);\n });\n\n this._provider.tocData.set(new TableOfContentData(flat, tree));\n this._mediator.send<string | undefined>(\n new CalculateHashFromScrollPositionAndActivateTocRequest(),\n );\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 const 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 RenderDynamicComponentsRequest {\n constructor(\n public hostElement: HTMLElement,\n ) {\n }\n}\n","import { FExecutionRegister, IHandler } from '@foblex/mediator';\nimport { RenderDynamicComponentsRequest } from './render-dynamic-components.request';\nimport { ComponentRef, inject, Injectable, Type, ViewContainerRef } from '@angular/core';\nimport { FCodeGroupComponent, FPreviewComponent, FPreviewGroupFiltersComponent } from '../../../index';\nimport { DocumentationStore } from '../../../../services';\n\ninterface DynamicComponentDescriptor {\n tag: string;\n component: Type<any>;\n}\n\n@Injectable()\n@FExecutionRegister(RenderDynamicComponentsRequest)\nexport class RenderDynamicComponentsHandler implements IHandler<RenderDynamicComponentsRequest> {\n\n private readonly _provider = inject(DocumentationStore);\n private readonly _containerRef = inject(ViewContainerRef);\n\n private readonly _componentsMap: DynamicComponentDescriptor[] = [\n { tag: 'f-code-group', component: FCodeGroupComponent },\n { tag: 'f-preview', component: FPreviewComponent },\n { tag: 'f-preview-group-filters', component: FPreviewGroupFiltersComponent },\n ];\n\n public handle(request: RenderDynamicComponentsRequest): void {\n this._provider.disposeDComponents();\n\n this._componentsMap.forEach(({ tag, component }) => {\n const elements = this._queryElements(request.hostElement, tag);\n if (elements.length) {\n elements.forEach((x) => {\n try {\n this._renderComponent(x, component);\n } catch (error) {\n this._logError(tag, error);\n }\n });\n }\n });\n }\n\n private _queryElements(root: HTMLElement, tag: string): HTMLElement[] {\n return Array.from(root.querySelectorAll(tag));\n }\n\n private _renderComponent(element: HTMLElement, component: Type<any>): void {\n const componentRef = this._containerRef.createComponent(component);\n this._provider.dComponents.update((x) => {\n x.push(componentRef);\n return x;\n });\n\n this._assignInputs(componentRef, element);\n componentRef.instance?.initialize?.();\n\n const newElement = this._extractComponentRoot(componentRef);\n element.replaceWith(newElement);\n }\n\n private _assignInputs(componentRef: ComponentRef<any>, element: HTMLElement): void {\n const dataset = element.dataset;\n if (!dataset) return;\n\n Object.entries(dataset).forEach(([key, rawValue]) => {\n let value = rawValue;\n if (value?.startsWith?.('{') || value?.startsWith?.('[')) {\n try {\n value = JSON.parse(value);\n // eslint-disable-next-line no-unused-vars,@typescript-eslint/no-unused-vars\n } catch (e) { /* empty */ }\n }\n if (componentRef.instance[key]?.set) {\n componentRef.instance[key].set(value);\n } else {\n componentRef.instance[key] = value;\n }\n });\n }\n\n private _extractComponentRoot(componentRef: ComponentRef<any>): HTMLElement {\n componentRef.changeDetectorRef.markForCheck();\n return (componentRef.hostView as any).rootNodes[0] as HTMLElement;\n }\n\n private _logError(tag: string, error: any): void {\n console.error(`Error inserting component for <${tag}>:`, error);\n }\n}\n","export class ScrollToElementInContainerRequest {\n constructor(public hash: string) {\n }\n}\n","import { FExecutionRegister, IHandler } from '@foblex/mediator';\nimport { ScrollToElementInContainerRequest } from './scroll-to-element-in-container.request';\nimport { inject, Injectable } from '@angular/core';\nimport { SCROLLABLE_CONTAINER } from '../../../index';\n\n@Injectable()\n@FExecutionRegister(ScrollToElementInContainerRequest)\nexport class ScrollToElementInContainerHandler implements IHandler<ScrollToElementInContainerRequest, void> {\n\n private readonly _scrollableContainer = inject(SCROLLABLE_CONTAINER);\n\n public handle(payload: ScrollToElementInContainerRequest): void {\n this._scrollableContainer.htmlElement.scrollTo({\n top: this._getScrollTo(this._getScrollToElement(payload.hash)) - 64,\n behavior: 'smooth',\n });\n }\n\n private _getScrollToElement(hash: string): HTMLElement {\n const element = this._scrollableContainer.htmlElement.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._scrollableContainer.htmlElement.scrollTop;\n }\n\n private _getElementTop(element: HTMLElement): number {\n return element.getBoundingClientRect().top;\n }\n\n private _getContainerTop(): number {\n return this._scrollableContainer.htmlElement.getBoundingClientRect().top;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const SCROLLABLE_CONTAINER = new InjectionToken<IScrollableContainer>('SCROLLABLE_CONTAINER');\n\nexport interface IScrollableContainer {\n\n htmlElement: HTMLElement;\n}\n\n\n","import { CalculateHashFromScrollPositionAndActivateTocHandler } from './calculate-hash-from-scroll-position-and-activate-toc';\nimport { GetAbsoluteTopToContainerHandler } from './get-absolute-top-to-container';\nimport { ScrollToElementInContainerHandler } from './scroll-to-element-in-container';\nimport { CalculateTableOfContentDataHandler } from './calculate-table-of-content-data';\nimport { ActivateTocByHashHandler } from './activate-toc-by-hash';\nimport { RenderDynamicComponentsHandler } from './render-dynamic-components';\n\nexport const SCROLLABLE_CONTAINER_FEATURES = [\n\n ActivateTocByHashHandler,\n\n CalculateHashFromScrollPositionAndActivateTocHandler,\n\n GetAbsoluteTopToContainerHandler,\n\n CalculateTableOfContentDataHandler,\n\n RenderDynamicComponentsHandler,\n\n ScrollToElementInContainerHandler,\n];\n","import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, forwardRef, inject, OnInit } from '@angular/core';\nimport {\n CalculateHashFromScrollPositionAndActivateTocRequest,\n IScrollableContainer,\n SCROLLABLE_CONTAINER,\n SCROLLABLE_CONTAINER_FEATURES,\n} from './domain';\nimport { debounceTime, fromEvent, startWith } from 'rxjs';\nimport { FMediator } from '@foblex/mediator';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TableOfContentComponent } from './components';\n\n@Component({\n selector: 'f-scrollable-container',\n templateUrl: './scrollable-container.component.html',\n styleUrls: ['./scrollable-container.component.scss'],\n standalone: true,\n providers: [\n {\n provide: SCROLLABLE_CONTAINER,\n useExisting: forwardRef(() => ScrollableContainerComponent),\n },\n FMediator,\n ...SCROLLABLE_CONTAINER_FEATURES,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TableOfContentComponent,\n ],\n})\nexport class ScrollableContainerComponent implements OnInit, IScrollableContainer {\n\n private readonly _mediator = inject(FMediator);\n private readonly _destroyRef = inject(DestroyRef);\n\n public readonly htmlElement = inject(ElementRef<HTMLElement>).nativeElement;\n\n public ngOnInit(): void {\n fromEvent(this.htmlElement, 'scroll')\n .pipe(\n debounceTime(100), startWith(null), takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => this._calculateHashAndActivate());\n }\n\n private _calculateHashAndActivate(): void {\n this._mediator.send<string | undefined>(\n new CalculateHashFromScrollPositionAndActivateTocRequest(),\n );\n }\n}\n\n","<ng-content></ng-content>\n<aside f-table-of-content></aside>\n\n\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n effect,\n ElementRef,\n HostListener,\n inject,\n Injector,\n OnDestroy,\n OnInit,\n signal,\n untracked,\n} from '@angular/core';\nimport { debounceTime, startWith, switchMap } from 'rxjs';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { catchError, tap } from 'rxjs/operators';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DocumentationStore } from '../../../services';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MarkdownService } from './markdown';\nimport { BrowserService } from '@foblex/platform';\nimport { CalculateTableOfContentDataRequest, RenderDynamicComponentsRequest } from '../../scrollable-container';\nimport { FMarkdownFooterComponent } from './components';\nimport { FMediator } from '@foblex/mediator';\nimport { HandleNavigationLinksRequest } from '../../../domain';\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 ],\n imports: [FMarkdownFooterComponent],\n host: {\n class: 'm-render',\n },\n})\nexport class FMarkdownRendererComponent implements OnInit, OnDestroy {\n protected value = signal<SafeHtml | undefined>(undefined);\n\n private readonly _hostElement = inject(ElementRef).nativeElement;\n private readonly _router = inject(Router);\n private readonly _activatedRoute = inject(ActivatedRoute);\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _injector = inject(Injector);\n private readonly _browser = inject(BrowserService);\n private readonly _mediator = inject(FMediator);\n private readonly _markdown = inject(MarkdownService);\n private readonly _provider = inject(DocumentationStore);\n\n private get _markdownPath(): string {\n return this._activatedRoute.snapshot.url.map((x) => x.path).join('/');\n }\n\n public ngOnInit(): void {\n this._updateRenderDependencies();\n this._subscribeOnRouteChanges();\n }\n\n private _subscribeOnRouteChanges(): void {\n this._router.events\n .pipe(\n startWith(null),\n debounceTime(50),\n switchMap(() =>\n this._markdown.parse(\n this._provider.getMarkdownUrl(this._markdownPath),\n ),\n ),\n tap((x) => this.value.set(x)),\n catchError((e, data) => data),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe();\n }\n\n private _updateRenderDependencies(): void {\n effect(\n () => {\n const html = this.value();\n if (html && this._browser.isBrowser()) {\n untracked(() => {\n requestAnimationFrame(() => { // Need to track after new html is rerendered\n this._mediator.execute(new RenderDynamicComponentsRequest(this._hostElement));\n this._mediator.execute(new CalculateTableOfContentDataRequest(this._hostElement));\n });\n });\n }\n },\n { injector: this._injector },\n );\n }\n\n @HostListener('click', ['$event'])\n protected _onDocumentClick(event: MouseEvent): void {\n this._mediator.execute(new HandleNavigationLinksRequest(event));\n }\n\n public ngOnDestroy(): void {\n this._provider.disposeDComponents();\n }\n}\n","<div [innerHTML]=\"value()\"></div>\n@if (value()) {\n <footer f-markdown-footer></footer>\n}\n\n","import {\n ChangeDetectionStrategy,\n Component,\n} from '@angular/core';\nimport { FMarkdownRendererComponent } from './f-markdown';\n\n@Component({\n selector: 'f-markdown-container',\n templateUrl: './markdown-container.component.html',\n styleUrls: [ './markdown-container.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FMarkdownRendererComponent,\n ],\n host: {\n 'ngSkipHydration': '',\n },\n})\nexport class MarkdownContainerComponent {}\n","<f-markdown-renderer></f-markdown-renderer>\n\n","import { ChangeDetectionStrategy, Component, DestroyRef, inject, OnDestroy, OnInit, signal } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport {\n F_PREVIEW_NAVIGATION_PROVIDER,\n FPreviewGroupService,\n HeaderComponent,\n IToggleNavigationComponent,\n NavigationPanelComponent,\n ScrollableContainerComponent,\n TOGGLE_NAVIGATION_COMPONENT,\n} from './components';\nimport { DocumentationStore } from './services';\nimport { FMediator } from '@foblex/mediator';\nimport { COMMON_FEATURES } from './domain';\nimport { F_SOCIAL_LINKS_PROVIDER, HEADER_CONFIGURATION_STORE, PopoverService } from '../common';\nimport { FMetaService } from './analytics';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'documentation-root',\n templateUrl: './documentation-root.component.html',\n styleUrls: ['./documentation-root.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n DocumentationStore,\n FMetaService,\n {\n provide: F_PREVIEW_NAVIGATION_PROVIDER,\n useExisting: DocumentationStore,\n },\n {\n provide: F_SOCIAL_LINKS_PROVIDER,\n useExisting: DocumentationStore,\n },\n {\n provide: HEADER_CONFIGURATION_STORE,\n useExisting: DocumentationStore,\n },\n FPreviewGroupService,\n {\n provide: TOGGLE_NAVIGATION_COMPONENT,\n useExisting: DocumentationRootComponent,\n },\n FMediator,\n ...COMMON_FEATURES,\n ],\n imports: [\n NavigationPanelComponent,\n ScrollableContainerComponent,\n RouterOutlet,\n HeaderComponent,\n ],\n})\nexport class DocumentationRootComponent implements IToggleNavigationComponent, OnInit, OnDestroy {\n protected readonly isNavigationVisible = signal<boolean>(false);\n protected readonly popover = inject(PopoverService).message;\n\n private readonly _metaService = inject(FMetaService);\n private readonly _destroyRef = inject(DestroyRef);\n\n public ngOnInit() {\n this._metaService.changes().pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe();\n }\n\n public onToggleNavigation(value: boolean): void {\n this.isNavigationVisible.set(value);\n }\n\n public ngOnDestroy(): void {\n this._metaService.dispose();\n // Cleanup logic if needed\n }\n}\n","<f-navigation-panel [class.visible]=\"isNavigationVisible()\"></f-navigation-panel>\n<div class=\"f-backdrop\" [class.visible]=\"isNavigationVisible()\" (click)=\"onToggleNavigation(false)\"></div>\n\n<f-scrollable-container>\n <f-header></f-header>\n <router-outlet></router-outlet>\n</f-scrollable-container>\n\n@if (popover()) {\n <div class=\"popover\">{{ popover() }}</div>\n}\n","import { Routes } from '@angular/router';\n\nexport const DOCUMENTATION_ROUTES: Routes = [\n {\n path: '',\n loadComponent: () => import('./index').then(m => m.DocumentationRootComponent),\n children: [\n {\n path: '**',\n loadComponent: () => import('./components/markdown-container').then(m => m.MarkdownContainerComponent),\n },\n ],\n },\n];\n","import { Type } from '@angular/core';\nimport { IHomePageConfiguration } from '../i-home-page-configuration';\n\nexport function provideBackground(background: Type<any>): Partial<IHomePageConfiguration> {\n return {\n background,\n };\n}\n","import { IHomePageConfiguration } from '../i-home-page-configuration';\n\nexport function provideHero(hero: IHomePageHero): Partial<IHomePageConfiguration> {\n return {\n hero,\n };\n}\n\nexport interface IHomePageHero {\n headline?: string;\n tagline1?: string;\n tagline2?: string;\n subDescription?: string;\n}\n","import { IHomePageConfiguration } from '../i-home-page-configuration';\n\nexport function provideHomeButtons(buttons: IHomePageLink[]): Partial<IHomePageConfiguration> {\n return {\n buttons,\n };\n}\n\nexport interface IHomePageLink {\n\n primary?: boolean;\n\n routerLink?: string;\n\n href?: string;\n\n text: string;\n\n icon?: string;\n}\n","import { IHomePageConfiguration } from '../i-home-page-configuration';\n\nexport function provideHomeFeatures(features: IHomePageFeature[]): Partial<IHomePageConfiguration> {\n return {\n features,\n };\n}\n\nexport interface IHomePageFeature {\n\n headline: string;\n\n description: string;\n}\n","import { IHomePageConfiguration } from '../i-home-page-configuration';\n\nexport function provideHomeFooter(footer: IHomePageFooter): Partial<IHomePageConfiguration> {\n return {\n footer,\n };\n}\n\nexport interface IHomePageFooter {\n\n text: string;\n}\n","import { InjectionToken } from '@angular/core';\nimport { IHomePageConfiguration } from '../i-home-page-configuration';\n\nexport function provideHomePage(configuration: IProviderInstance) {\n const merged = Object.assign({}, ...configuration.providers);\n return [{\n provide: HOME_PAGE_CONFIGURATION, useValue: merged,\n }];\n}\n\nexport const HOME_PAGE_CONFIGURATION = new InjectionToken<IHomePageConfiguration>('HOME_PAGE_CONFIGURATION');\n\ninterface IProviderInstance {\n providers: Partial<IHomePageConfiguration>[];\n}\n","import { Type } from '@angular/core';\nimport { IHomePageConfiguration } from '../i-home-page-configuration';\n\nexport function provideImage(image: Type<any>): Partial<IHomePageConfiguration> {\n return {\n image,\n };\n}\n","import { inject, Injectable, Type } from '@angular/core';\nimport {\n HOME_PAGE_CONFIGURATION,\n IHomePageFeature,\n IHomePageFooter,\n IHomePageHero,\n IHomePageLink,\n IHomePageMembership,\n} from '../domain';\nimport { IHeaderConfiguration, IHeaderConfigurationStore } from '../../common';\n\n@Injectable()\nexport class HomeStore implements IHeaderConfigurationStore {\n private readonly _configuration = inject(HOME_PAGE_CONFIGURATION);\n\n public getLogo(): string {\n return this._configuration.logo;\n }\n\n public getTitle(): string {\n return this._configuration.title;\n }\n\n public getHero(): IHomePageHero {\n return this._configuration.hero;\n }\n\n public getButtons(): IHomePageLink[] {\n return this._configuration.buttons || [];\n }\n\n public getFeatures(): IHomePageFeature[] {\n return this._configuration.features || [];\n }\n\n public getMemberships(): IHomePageMembership[] {\n return [];\n }\n\n public getFooter(): IHomePageFooter {\n return this._configuration.footer;\n }\n\n public getBackgroundComponent(): Type<any> | undefined {\n return this._configuration.background;\n }\n\n public getImageComponent(): Type<any> | undefined {\n return this._configuration.image;\n }\n\n public getHeader(): IHeaderConfiguration | undefined {\n return this._configuration.header;\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { HomeStore } from '../../services';\n\n@Component({\n selector: 'f-home-page-buttons-row',\n templateUrl: './f-home-page-buttons-row.component.html',\n styleUrl: './f-home-page-buttons-row.component.scss',\n standalone: true,\n imports: [\n RouterLink,\n ],\n host: {\n '[class.display-none]': '!viewModel.length',\n },\n})\nexport class FHomePageButtonsRowComponent {\n protected viewModel = inject(HomeStore).getButtons();\n}\n","@for (button of viewModel; track button.text) {\n @if (button.routerLink) {\n <a class=\"f-button\" [class.primary]=\"button.primary\" routerLink=\"{{ button.routerLink }}\">\n @if (button.icon) {\n <span class=\"f-icon {{ button.icon }}\"></span>\n }\n {{ button.text }}\n </a>\n } @else if(button.href) {\n <a class=\"f-button\" [class.primary]=\"button.primary\" href=\"{{ button.href }}\">\n @if (button.icon) {\n <span class=\"f-icon {{ button.icon }}\"></span>\n }\n {{ button.text }}\n </a>\n }\n}\n\n","import { Component, inject } from '@angular/core';\nimport { HomeStore } from '../../services';\n\n@Component({\n selector: 'f-home-page-features',\n templateUrl: './f-home-page-features.component.html',\n styleUrl: './f-home-page-features.component.scss',\n standalone: true,\n host: {\n '[class.display-none]': '!viewModel.length',\n },\n})\nexport class FHomePageFeaturesComponent {\n protected viewModel = inject(HomeStore).getFeatures();\n}\n","<div class=\"feature-list\">\n @for (feature of viewModel; track feature.headline) {\n <div class=\"feature\">\n <h2>{{ feature.headline }}</h2>\n <p>{{ feature.description }}</p>\n </div>\n }\n</div>\n\n","import { Component, inject } from '@angular/core';\nimport { HomeStore } from '../../services';\n\n@Component({\n selector: 'footer[f-home-page-footer]',\n templateUrl: './f-home-page-footer.component.html',\n styleUrl: './f-home-page-footer.component.scss',\n standalone: true,\n})\nexport class FHomePageFooterComponent {\n\n protected viewModel = inject(HomeStore).getFooter();\n}\n","<div class=\"content\">\n <div class=\"flex-space\"></div>\n <div>\n <div class=\"item\">Created with Foblex <a href=\"https://github.com/Foblex/m-render\" target=\"_blank\">MRender</a></div>\n <div class=\"item\">{{ viewModel.text }}</div>\n </div>\n</div>\n\n","import { Component, inject } from '@angular/core';\nimport { HomeStore } from '../../services';\nimport { FThemeButtonComponent } from '../../../common';\n\n@Component({\n selector: 'header[f-home-page-header]',\n templateUrl: './f-home-page-header.component.html',\n styleUrl: './f-home-page-header.component.scss',\n standalone: true,\n imports: [\n FThemeButtonComponent,\n ],\n})\nexport class FHomePageHeaderComponent {\n protected logo = inject(HomeStore).getLogo();\n protected title = inject(HomeStore).getTitle();\n}\n","<div class=\"content\">\n <a class=\"logo-link\" href=\"/libs/public\" aria-label=\"Home\">\n <img [src]=\"logo\" class=\"logo\" alt=\"{{ title }} Logo\" width=\"24\" height=\"24\"/>\n <span class=\"title\">{{ title }}</span>\n </a>\n\n <div class=\"flex-space\"></div>\n <button f-theme-button aria-label=\"Change theme\"></button>\n</div>\n\n","import { Component, inject } from '@angular/core';\nimport { FHomePageButtonsRowComponent } from '../f-home-page-buttons-row';\nimport { HomeStore } from '../../services';\n\n@Component({\n selector: 'f-home-page-hero',\n templateUrl: './f-home-page-hero.component.html',\n styleUrl: './f-home-page-hero.component.scss',\n standalone: true,\n imports: [\n FHomePageButtonsRowComponent,\n ],\n})\nexport class FHomePageHeroComponent {\n\n protected viewModel = inject(HomeStore).getHero();\n}\n","<h1>{{ viewModel.headline }}</h1>\n<p class=\"powered\">{{ viewModel.tagline1 }}</p>\n<p class=\"powered\">{{ viewModel.tagline2 }}</p>\n<p class=\"second-description\">{{ viewModel.subDescription }}</p>\n<f-home-page-buttons-row></f-home-page-buttons-row>\n","import { Component, inject } from '@angular/core';\nimport { HomeStore } from '../../services';\n\n@Component({\n selector: 'f-home-page-memberships',\n templateUrl: './f-home-page-memberships.component.html',\n styleUrl: './f-home-page-memberships.component.scss',\n standalone: true,\n host: {\n '[class.display-none]': '!viewModel.length',\n },\n})\nexport class FHomePageMembershipsComponent {\n protected viewModel = inject(HomeStore).getMemberships();\n}\n","<div class=\"membership-list\">\n @for (membership of viewModel; track membership.id) {\n <div class=\"membership\">\n <h2>{{ membership.name }}</h2>\n <p>{{ membership.description }}</p>\n <div class=\"benefit-list\">\n @for (benefit of membership.benefits; track benefit) {\n <p class=\"benefit\">✅ {{ benefit }}</p>\n }\n </div>\n <a class=\"f-button\" [href]=\"membership.buttonRef\">{{ membership.buttonText }}</a>\n </div>\n }\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy, Component, ComponentRef, inject, Type, ViewChild, ViewContainerRef,\n} from '@angular/core';\nimport { HomeStore } from './services';\nimport {\n FHomePageFeaturesComponent,\n FHomePageFooterComponent,\n FHomePageHeaderComponent,\n FHomePageHeroComponent, FHomePageMembershipsComponent,\n} from './components';\nimport { HEADER_CONFIGURATION_STORE } from '../common';\n\n@Component({\n selector: 'home-root',\n templateUrl: './home-root.component.html',\n styleUrls: [ './home-root.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n HomeStore,\n {\n provide: HEADER_CONFIGURATION_STORE,\n useExisting: HomeStore,\n },\n ],\n imports: [\n FHomePageFooterComponent,\n FHomePageHeaderComponent,\n FHomePageFeaturesComponent,\n FHomePageHeroComponent,\n FHomePageMembershipsComponent,\n ],\n})\nexport class HomeRootComponent implements AfterViewInit {\n\n private _environment = inject(HomeStore);\n\n @ViewChild('backgroundContainer', { read: ViewContainerRef })\n private _backgroundContainer: ViewContainerRef | undefined;\n\n @ViewChild('heroImageContainer', { read: ViewContainerRef })\n private _heroImageContainer: ViewContainerRef | undefined;\n\n public ngAfterViewInit(): void {\n this._renderImageComponent(this._environment.getImageComponent());\n this._renderBackgroundComponent(this._environment.getBackgroundComponent());\n }\n\n private _renderImageComponent<T>(component?: Type<T>): void {\n if (component) {\n this._requestComponentRedraw(this._getImageComponentReference(component));\n }\n }\n\n private _renderBackgroundComponent<T>(component?: Type<T>): void {\n if (component) {\n this._requestComponentRedraw(this._getBackgroundComponentReference(component));\n }\n }\n\n private _getBackgroundComponentReference<T>(component: Type<T>): ComponentRef<T> {\n return this._backgroundContainer!.createComponent(component);\n }\n\n private _getImageComponentReference<T>(component: Type<T>): ComponentRef<T> {\n return this._heroImageContainer!.createComponent(component);\n }\n\n private _requestComponentRedraw(componentRef: ComponentRef<any>): void {\n componentRef.changeDetectorRef.markForCheck();\n }\n}\n","<ng-container #backgroundContainer></ng-container>\n<header f-home-page-header></header>\n\n<div class=\"body\">\n <div class=\"hero-row\">\n <f-home-page-hero></f-home-page-hero>\n <ng-container #heroImageContainer></ng-container>\n </div>\n <f-home-page-features></f-home-page-features>\n <f-home-page-memberships></f-home-page-memberships>\n</div>\n\n<div class=\"flex-space\"></div>\n<footer f-home-page-footer></footer>\n","import { Routes } from '@angular/router';\n\nexport const HOME_ROUTES: Routes = [\n {\n path: '',\n loadComponent: () => import('./index').then(m => m.HomeRootComponent),\n },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uniqueId","filter","RULE"],"mappings":"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"}
|