@foblex/m-render 2.6.7 → 2.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"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/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/markdown.service.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/markdown/utils.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 let target = this._getTargetElement(request.event);\n if (!target) {\n return;\n }\n target = this._getClosestAnchorTag(target);\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 | null {\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' && Object.prototype.hasOwnProperty.call(v, 'ɵ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';\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 const html = element.innerHTML;\n if (!FOCUS_REGEX.test(html)) {\n return of(element);\n }\n\n element.innerHTML = html.replace(FOCUS_REGEX, (_match, content) => {\n return `<focus class=\"focused\"><div class=\"inline-focus\">${content}</div></focus>`;\n });\n\n const focused = element.querySelector('.focused');\n if (focused) {\n this._applyOpacity(element.parentElement as HTMLElement);\n }\n\n return of(element);\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 FOCUS_REGEX = /ƒƒƒ([\\s\\S]*?)¢¢¢/g;\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 { defer, from, Observable, of, switchMap } from 'rxjs';\nimport { BrowserService } from '@foblex/platform';\nimport { MarkCodeFocusedBlocksPostProcessor } from './mark-code-focused-blocks.post-processor';\nimport { BundledLanguage, BundledTheme, createHighlighter, HighlighterGeneric } from 'shiki';\nimport { UNIVERSAL_THEME } from './theme';\nimport { LANGUAGES } from '../components';\nimport { catchError, shareReplay } from 'rxjs/operators';\n\ntype Highlighter = HighlighterGeneric<BundledLanguage, BundledTheme>;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HighlightService {\n private readonly _browser = inject(BrowserService);\n private readonly _highlighter$: Observable<Highlighter> = defer(() =>\n from(createHighlighter({ themes: [UNIVERSAL_THEME], langs: LANGUAGES })),\n ).pipe(\n shareReplay(1),\n );\n\n public highlight(\n element: HTMLElement, lang: string, content: string,\n ): Observable<HTMLElement> {\n if (!this._browser.isBrowser()) {\n console.warn('[HighlightService] Skipping highlight on server.');\n return of(element);\n }\n return this._highlightCodeBlock(element, lang, content).pipe(\n switchMap((x) => this._postProcess(x)),\n catchError((err) => {\n console.error('[HighlightService] Failed to highlight:', err);\n return of(element);\n }),\n );\n }\n\n private _highlightCodeBlock(\n element: HTMLElement, lang: string, content: string,\n ): Observable<HTMLElement> {\n return this._highlighter$.pipe(\n switchMap((highlighter) => this._renderCode(element, highlighter, lang, content)),\n );\n }\n\n private _renderCode(\n element: HTMLElement, highlighter: Highlighter, lang: string, content: string,\n ): Observable<HTMLElement> {\n return new Observable<HTMLElement>((observer) => {\n const processedContent = this._preprocessFocus(content);\n element.innerHTML = highlighter.codeToHtml(processedContent, { lang, theme: 'universal', defaultColor: false });\n requestAnimationFrame(() => {\n observer.next(element);\n observer.complete();\n });\n });\n }\n\n private _preprocessFocus(code: string): string {\n return code.replace(/\\|\\:\\|([\\s\\S]*?)\\|\\:\\|/g, (_, p1) => `ƒƒƒ${p1}¢¢¢`);\n }\n\n private _postProcess(element: HTMLElement): Observable<HTMLElement> {\n return of(element).pipe(\n switchMap((x) => new MarkCodeFocusedBlocksPostProcessor(this._browser).handle(x)),\n );\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 | undefined {\n if (value === undefined) {\n return undefined;\n }\n value = Number(value);\n if (value) {\n return value + 'px';\n }\n return undefined;\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 { 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 { IMarkdownItToken } from './domain';\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\nexport function encodeDataAttr(data: unknown): string {\n return JSON.stringify(data).replace(/\"/g, '&quot;');\n}\n\nexport function isOpeningToken(token: IMarkdownItToken): boolean {\n return token.nesting === 1;\n}\n\nexport function isClosingToken(token: IMarkdownItToken): boolean {\n return token.nesting === -1;\n}\n\nexport function parseFileLinkLine(line: string): { fileName: string, url: string } | null {\n const match = line.match(/\\[(.+?)\\] <<< (.+)/);\n return match ? { fileName: match[1], url: match[2] } : null;\n}\n\nexport function parseSingleBracketText(line: string): string | null {\n const match = line.match(/\\[(.+?)\\]/);\n return match ? match[1] : null;\n}\n","import MarkdownIt from 'markdown-it';\nimport container from 'markdown-it-container';\nimport { IMarkdownItToken } from './domain';\nimport { isOpeningToken } from './utils';\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 (isOpeningToken(token)) {\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\";\nimport { encodeDataAttr, isClosingToken, isOpeningToken } from './utils';\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 (isOpeningToken(tokens[index])) {\n return this._openingExampleGroupHTML(this._generateData(tokens, index));\n }\n return '</f-code-group>';\n },\n }];\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 isClosingToken(token[index]) && 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 return `<f-code-group data-data=\"${encodeDataAttr(data)}\">`;\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';\nimport { encodeDataAttr } from './utils';\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=\"${encodeDataAttr([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 _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';\n\nimport container from 'markdown-it-container';\nimport { EParsedContainerType, IMarkdownContainerData, IParsedContainerData } from './domain';\nimport { encodeDataAttr, getContent, isOpeningToken, parseFileLinkLine } from './utils';\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 return isOpeningToken(tokens[index]) ? this._opening(tokens, index) : '</f-code-group>';\n },\n }];\n }\n\n private _opening(tokens: IMarkdownItToken[], index: number): string {\n const data = this._collectData(tokens, index);\n return `<f-code-group data-data=\"${encodeDataAttr(data)}\">`;\n }\n\n private _collectData(tokens: IMarkdownItToken[], index: number): IParsedContainerData[] {\n const result: IParsedContainerData[] = [];\n\n const component = this._parseNgComponent(tokens[index]);\n const height = component?.height || 'auto';\n if (component) {\n result.push({\n tab: 'Example',\n value: component.tag,\n type: EParsedContainerType.EXAMPLE,\n height: component.height || 'auto',\n });\n }\n const content = getContent(tokens, index, EMarkdownContainerType.EXAMPLE_GROUP);\n const items = (content || '').split('\\n').map(parseFileLinkLine).filter(Boolean) as {\n fileName: string,\n url: string\n }[];\n items.forEach(({ fileName, url }) => result.push({\n tab: fileName,\n value: url,\n isLink: true,\n type: EParsedContainerType.CODE,\n height,\n }));\n\n return result;\n }\n\n private _parseNgComponent(token: IMarkdownItToken): IMarkdownContainerData | null {\n const cleanedInput = token.info.replace(/ng-component\\s*/, '');\n const tagMatch = cleanedInput.match(/<([a-zA-Z0-9-]+)>.*<\\/\\1>/);\n const heightMatch = cleanedInput.match(/\\[height\\]=\"(\\d+)\"/);\n\n if (!tagMatch) return null;\n\n return {\n tag: tagMatch[0],\n height: heightMatch?.[1],\n };\n }\n}\n","import { EMarkdownContainerType } from './domain';\nimport { IMarkdownItToken } from './domain';\n\nimport container from 'markdown-it-container';\nimport { IPreviewNavigationGroup } from './domain';\nimport { getContent, isOpeningToken, parseSingleBracketText } from './utils';\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 (isOpeningToken(tokens[index])) {\n return this._getGroupsHTML(this._generateData(tokens, index));\n }\n return '';\n },\n } ];\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(parseSingleBracketText).filter(Boolean) as string[];\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, of, 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) => {\n console.error('[MarkdownRenderer] parse error:', e);\n return of(data);\n }),\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 raf(() => { // Wait for HTML to be rendered before initializing dynamic components and TOC\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 console.log('_onDocumentClick2');\n\n this._mediator.execute(new HandleNavigationLinksRequest(event));\n }\n\n public ngOnDestroy(): void {\n this._provider.disposeDComponents();\n }\n}\n\nconst raf = typeof requestAnimationFrame === 'function'\n ? requestAnimationFrame\n : (fn: FrameRequestCallback) => setTimeout(fn);\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 }}\" target=\"_blank\" rel=\"noopener noreferrer\">\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"],"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.handler.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/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/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/markdown.service.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-container/f-markdown/markdown/utils.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","import { IExecution } from '@foblex/mediator';\nimport { HandleNavigationLinksRequest } from './handle-navigation-links.request';\nimport { Router } from '@angular/router';\nimport { BrowserService } from '@foblex/platform';\n\nexport class HandleNavigationLinksHandler\n implements IExecution<HandleNavigationLinksRequest, void> {\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, request.router);\n } else {\n this._navigateExternalLink(href, request.browser);\n }\n }\n }\n\n private _getTargetElement(event: Event): HTMLElement | null {\n return event?.target as HTMLElement;\n }\n\n private _getClosestAnchorTag(element: HTMLElement | null): HTMLElement | undefined | 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, router: Router): void {\n if (href.startsWith('/')) {\n href = href.substring(1);\n }\n router.navigate([href]).then();\n }\n\n private _navigateExternalLink(href: string, browser: BrowserService): void {\n browser.window.open(href, '_blank');\n }\n}\n","import { BrowserService } from '@foblex/platform';\nimport { Router } from '@angular/router';\n\nexport class HandleNavigationLinksRequest {\n constructor(\n public event: MouseEvent,\n public browser: BrowserService,\n public router: Router,\n ) {\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' && Object.prototype.hasOwnProperty.call(v, 'ɵ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 { HandleNavigationLinksHandler, HandleNavigationLinksRequest } from '../../domain';\nimport { BrowserService } from '@foblex/platform';\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 _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _browser = inject(BrowserService);\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 new HandleNavigationLinksHandler().handle(\n new HandleNavigationLinksRequest(event, this._browser, this._router),\n );\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';\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 const html = element.innerHTML;\n if (!FOCUS_REGEX.test(html)) {\n return of(element);\n }\n\n element.innerHTML = html.replace(FOCUS_REGEX, (_match, content) => {\n return `<focus class=\"focused\"><div class=\"inline-focus\">${content}</div></focus>`;\n });\n\n const focused = element.querySelector('.focused');\n if (focused) {\n this._applyOpacity(element.parentElement as HTMLElement);\n }\n\n return of(element);\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 FOCUS_REGEX = /ƒƒƒ([\\s\\S]*?)¢¢¢/g;\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 { defer, from, Observable, of, switchMap } from 'rxjs';\nimport { BrowserService } from '@foblex/platform';\nimport { MarkCodeFocusedBlocksPostProcessor } from './mark-code-focused-blocks.post-processor';\nimport { BundledLanguage, BundledTheme, createHighlighter, HighlighterGeneric } from 'shiki';\nimport { UNIVERSAL_THEME } from './theme';\nimport { LANGUAGES } from '../components';\nimport { catchError, shareReplay } from 'rxjs/operators';\n\ntype Highlighter = HighlighterGeneric<BundledLanguage, BundledTheme>;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HighlightService {\n private readonly _browser = inject(BrowserService);\n private readonly _highlighter$: Observable<Highlighter> = defer(() =>\n from(createHighlighter({ themes: [UNIVERSAL_THEME], langs: LANGUAGES })),\n ).pipe(\n shareReplay(1),\n );\n\n public highlight(\n element: HTMLElement, lang: string, content: string,\n ): Observable<HTMLElement> {\n if (!this._browser.isBrowser()) {\n console.warn('[HighlightService] Skipping highlight on server.');\n return of(element);\n }\n return this._highlightCodeBlock(element, lang, content).pipe(\n switchMap((x) => this._postProcess(x)),\n catchError((err) => {\n console.error('[HighlightService] Failed to highlight:', err);\n return of(element);\n }),\n );\n }\n\n private _highlightCodeBlock(\n element: HTMLElement, lang: string, content: string,\n ): Observable<HTMLElement> {\n return this._highlighter$.pipe(\n switchMap((highlighter) => this._renderCode(element, highlighter, lang, content)),\n );\n }\n\n private _renderCode(\n element: HTMLElement, highlighter: Highlighter, lang: string, content: string,\n ): Observable<HTMLElement> {\n return new Observable<HTMLElement>((observer) => {\n const processedContent = this._preprocessFocus(content);\n element.innerHTML = highlighter.codeToHtml(processedContent, { lang, theme: 'universal', defaultColor: false });\n requestAnimationFrame(() => {\n observer.next(element);\n observer.complete();\n });\n });\n }\n\n private _preprocessFocus(code: string): string {\n return code.replace(/\\|\\:\\|([\\s\\S]*?)\\|\\:\\|/g, (_, p1) => `ƒƒƒ${p1}¢¢¢`);\n }\n\n private _postProcess(element: HTMLElement): Observable<HTMLElement> {\n return of(element).pipe(\n switchMap((x) => new MarkCodeFocusedBlocksPostProcessor(this._browser).handle(x)),\n );\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 | undefined {\n if (value === undefined) {\n return undefined;\n }\n value = Number(value);\n if (value) {\n return value + 'px';\n }\n return undefined;\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 { 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 { IMarkdownItToken } from './domain';\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\nexport function encodeDataAttr(data: unknown): string {\n return JSON.stringify(data).replace(/\"/g, '&quot;');\n}\n\nexport function isOpeningToken(token: IMarkdownItToken): boolean {\n return token.nesting === 1;\n}\n\nexport function isClosingToken(token: IMarkdownItToken): boolean {\n return token.nesting === -1;\n}\n\nexport function parseFileLinkLine(line: string): { fileName: string, url: string } | null {\n const match = line.match(/\\[(.+?)\\] <<< (.+)/);\n return match ? { fileName: match[1], url: match[2] } : null;\n}\n\nexport function parseSingleBracketText(line: string): string | null {\n const match = line.match(/\\[(.+?)\\]/);\n return match ? match[1] : null;\n}\n","import MarkdownIt from 'markdown-it';\nimport container from 'markdown-it-container';\nimport { IMarkdownItToken } from './domain';\nimport { isOpeningToken } from './utils';\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 (isOpeningToken(token)) {\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\";\nimport { encodeDataAttr, isClosingToken, isOpeningToken } from './utils';\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 (isOpeningToken(tokens[index])) {\n return this._openingExampleGroupHTML(this._generateData(tokens, index));\n }\n return '</f-code-group>';\n },\n }];\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 isClosingToken(token[index]) && 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 return `<f-code-group data-data=\"${encodeDataAttr(data)}\">`;\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';\nimport { encodeDataAttr } from './utils';\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=\"${encodeDataAttr([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 _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';\n\nimport container from 'markdown-it-container';\nimport { EParsedContainerType, IMarkdownContainerData, IParsedContainerData } from './domain';\nimport { encodeDataAttr, getContent, isOpeningToken, parseFileLinkLine } from './utils';\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 return isOpeningToken(tokens[index]) ? this._opening(tokens, index) : '</f-code-group>';\n },\n }];\n }\n\n private _opening(tokens: IMarkdownItToken[], index: number): string {\n const data = this._collectData(tokens, index);\n return `<f-code-group data-data=\"${encodeDataAttr(data)}\">`;\n }\n\n private _collectData(tokens: IMarkdownItToken[], index: number): IParsedContainerData[] {\n const result: IParsedContainerData[] = [];\n\n const component = this._parseNgComponent(tokens[index]);\n const height = component?.height || 'auto';\n if (component) {\n result.push({\n tab: 'Example',\n value: component.tag,\n type: EParsedContainerType.EXAMPLE,\n height: component.height || 'auto',\n });\n }\n const content = getContent(tokens, index, EMarkdownContainerType.EXAMPLE_GROUP);\n const items = (content || '').split('\\n').map(parseFileLinkLine).filter(Boolean) as {\n fileName: string,\n url: string\n }[];\n items.forEach(({ fileName, url }) => result.push({\n tab: fileName,\n value: url,\n isLink: true,\n type: EParsedContainerType.CODE,\n height,\n }));\n\n return result;\n }\n\n private _parseNgComponent(token: IMarkdownItToken): IMarkdownContainerData | null {\n const cleanedInput = token.info.replace(/ng-component\\s*/, '');\n const tagMatch = cleanedInput.match(/<([a-zA-Z0-9-]+)>.*<\\/\\1>/);\n const heightMatch = cleanedInput.match(/\\[height\\]=\"(\\d+)\"/);\n\n if (!tagMatch) return null;\n\n return {\n tag: tagMatch[0],\n height: heightMatch?.[1],\n };\n }\n}\n","import { EMarkdownContainerType } from './domain';\nimport { IMarkdownItToken } from './domain';\n\nimport container from 'markdown-it-container';\nimport { IPreviewNavigationGroup } from './domain';\nimport { getContent, isOpeningToken, parseSingleBracketText } from './utils';\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 (isOpeningToken(tokens[index])) {\n return this._getGroupsHTML(this._generateData(tokens, index));\n }\n return '';\n },\n } ];\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(parseSingleBracketText).filter(Boolean) as string[];\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 { HandleNavigationLinksHandler, HandleNavigationLinksRequest } from '../../../../../domain';\nimport { BrowserService } from '@foblex/platform';\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 _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 private readonly _browser = inject(BrowserService);\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 new HandleNavigationLinksHandler().handle(\n new HandleNavigationLinksRequest(event, this._browser, this._router),\n );\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, of, 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 { HandleNavigationLinksHandler, 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) => {\n console.error('[MarkdownRenderer] parse error:', e);\n return of(data);\n }),\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 raf(() => { // Wait for HTML to be rendered before initializing dynamic components and TOC\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 new HandleNavigationLinksHandler().handle(\n new HandleNavigationLinksRequest(event, this._browser, this._router),\n );\n }\n\n public ngOnDestroy(): void {\n this._provider.disposeDComponents();\n }\n}\n\nconst raf = typeof requestAnimationFrame === 'function'\n ? requestAnimationFrame\n : (fn: FrameRequestCallback) => setTimeout(fn);\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 }}\" target=\"_blank\" rel=\"noopener noreferrer\">\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"],"mappings":"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"}