@foblex/m-render 4.0.0 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/styles/_badge.scss +27 -14
- package/assets/styles/_code-group.scss +0 -1
- package/assets/styles/_code-highlight.scss +15 -16
- package/assets/styles/_code-view.scss +182 -24
- package/assets/styles/_doc-text.scss +94 -73
- package/assets/styles/_icons.scss +1 -0
- package/assets/styles/_link.scss +49 -0
- package/assets/styles/_preview-group.scss +2 -2
- package/assets/styles/_table.scss +39 -48
- package/assets/styles/_variables.scss +106 -37
- package/assets/styles/styles.scss +3 -4
- package/fesm2022/foblex-m-render.mjs +162 -62
- package/fesm2022/foblex-m-render.mjs.map +1 -1
- package/package.json +1 -1
- package/types/foblex-m-render.d.ts +44 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foblex-m-render.mjs","sources":["../../../../libs/m-render/src/lib/analytics/g-tag.service.ts","../../../../libs/m-render/src/lib/analytics/provide-g-tag.ts","../../../../libs/m-render/src/lib/common/domain/configuration-providers/provide-header.ts","../../../../libs/m-render/src/lib/common/domain/configuration-providers/provide-header-search.ts","../../../../libs/m-render/src/lib/common/domain/configuration-providers/provide-header-search-algolia.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/services/popover.service.ts","../../../../libs/m-render/src/lib/theme/theme.service.ts","../../../../libs/m-render/src/lib/common/utils/copy-to-clipboard.ts","../../../../libs/m-render/src/lib/common/utils/document-element.ts","../../../../libs/m-render/src/lib/common/utils/window.ts","../../../../libs/m-render/src/lib/common/utils/local-storage.ts","../../../../libs/m-render/src/lib/common/utils/location.ts","../../../../libs/m-render/src/lib/common/utils/platform.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-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-table-of-content.ts","../../../../libs/m-render/src/lib/documentation-page/analytics/common-services/f-meta.service.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/hamburger-button/domain/i-toggle-navigation-component.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/hamburger-button/hamburger-button.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/hamburger-button/hamburger-button.html","../../../../libs/m-render/src/lib/documentation-page/components/header/models/header-menu-base.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/inline-menu/inline-menu.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/inline-menu/inline-menu.html","../../../../libs/m-render/src/lib/theme/theme-button/theme-button.component.ts","../../../../libs/m-render/src/lib/theme/theme-button/theme-button.component.html","../../../../libs/m-render/src/lib/theme/provide-theme.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/media-links/domain/i-media-links-provider.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/media-links/media-links.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/media-links/media-links.html","../../../../libs/m-render/src/lib/documentation-page/components/header/components/dropdown-menu/dropdown-menu.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/dropdown-menu/dropdown-menu.html","../../../../libs/m-render/src/lib/documentation-page/utils/calculate-markdown-url.ts","../../../../libs/m-render/src/lib/documentation-page/services/documentation.store.ts","../../../../libs/m-render/src/lib/dynamic-components/dynamic-components.store.ts","../../../../libs/m-render/src/lib/shared/components/f-brand-link/f-brand-link.component.ts","../../../../libs/m-render/src/lib/shared/components/f-brand-link/f-brand-link.component.html","../../../../libs/m-render/src/lib/shared/components/f-search-button/f-search-button.component.ts","../../../../libs/m-render/src/lib/shared/components/f-search-button/f-search-button.component.html","../../../../libs/m-render/src/lib/shared/components/f-checkbox/f-checkbox.component.ts","../../../../libs/m-render/src/lib/shared/components/f-checkbox/f-checkbox.component.html","../../../../libs/m-render/src/lib/shared/components/f-radio-button/f-radio-button.component.ts","../../../../libs/m-render/src/lib/shared/components/f-radio-button/f-radio-button.component.html","../../../../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-renderer/markdown-footer/domain/get-previous-next-page-navigation/get-previous-next-page-navigation.response.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-footer/domain/get-previous-next-page-navigation/get-previous-next-page-navigation.handler.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-footer/domain/get-previous-next-page-navigation/get-previous-next-page-navigation.request.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-footer/footer-navigation-button/footer-navigation-button.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-footer/footer-navigation-button/footer-navigation-button.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-footer/markdown-footer.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-footer/markdown-footer.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/domain/e-markdown-container-type.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/domain/e-parsed-container-type.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/domain/i-preview-navigation-service.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/domain/i-markdown-frontmatter.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/markdown.service.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/utils.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/parse-alerts.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/parse-grouped-code-items.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/parse-single-code-item.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/parse-angular-example-with-code-links.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/parse-preview-group.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/parse-showcase.ts","../../../../libs/m-render/src/lib/mediatr/mediatr.ts","../../../../libs/m-render/src/lib/mediatr/m-execution.ts","../../../../libs/m-render/src/lib/dynamic-components/components/external-component/utils/coerce-component-height.ts","../../../../libs/m-render/src/lib/dynamic-components/components/external-component/utils/parse-iframe-url.ts","../../../../libs/m-render/src/lib/dynamic-components/components/external-component/utils/parse-component-tag.ts","../../../../libs/m-render/src/lib/dynamic-components/features/render-dynamic-component/render-dynamic-component-request.ts","../../../../libs/m-render/src/lib/dynamic-components/features/render-dynamic-component/render-dynamic-component.ts","../../../../libs/m-render/src/lib/dynamic-components/features/render-external-component/render-external-component-request.ts","../../../../libs/m-render/src/lib/dynamic-components/providers/external-component.provider.ts","../../../../libs/m-render/src/lib/dynamic-components/features/render-external-component/render-external-component.ts","../../../../libs/m-render/src/lib/dynamic-components/features/render-internal-components/render-internal-components-request.ts","../../../../libs/m-render/src/lib/dynamic-components/features/render-internal-components/render-internal-components.ts","../../../../libs/m-render/src/lib/dynamic-components/components/external-component/external-component.ts","../../../../libs/m-render/src/lib/dynamic-components/components/external-component/external-component.html","../../../../libs/m-render/src/lib/highlight/code-view/highlight.ts","../../../../libs/m-render/src/lib/highlight/code-view/code-view.ts","../../../../libs/m-render/src/lib/highlight/code-view/code-view.html","../../../../libs/m-render/src/lib/highlight/mark-code-focused-blocks.post-processor.ts","../../../../libs/m-render/src/lib/highlight/theme.ts","../../../../libs/m-render/src/lib/highlight/languages.ts","../../../../libs/m-render/src/lib/highlight/highlight.service.ts","../../../../libs/m-render/src/lib/dynamic-components/components/code-group/code-group.ts","../../../../libs/m-render/src/lib/dynamic-components/components/code-group/code-group.html","../../../../libs/m-render/src/lib/dynamic-components/components/preview-group/components/preview-card/preview-card-base.ts","../../../../libs/m-render/src/lib/dynamic-components/components/preview-group/preview-group.service.ts","../../../../libs/m-render/src/lib/dynamic-components/components/preview-group/components/preview-card/preview-card.ts","../../../../libs/m-render/src/lib/dynamic-components/components/preview-group/components/preview-card/preview-card.html","../../../../libs/m-render/src/lib/dynamic-components/components/preview-group/components/preview-action-bar/preview-action-bar.ts","../../../../libs/m-render/src/lib/dynamic-components/components/preview-group/components/preview-action-bar/preview-action-bar.html","../../../../libs/m-render/src/lib/dynamic-components/components/showcase/components/showcase-item/showcase-item.ts","../../../../libs/m-render/src/lib/dynamic-components/components/showcase/components/showcase-item/showcase-item.html","../../../../libs/m-render/src/lib/dynamic-components/components/showcase/showcase-token.ts","../../../../libs/m-render/src/lib/dynamic-components/components/showcase/showcase.ts","../../../../libs/m-render/src/lib/dynamic-components/components/showcase/showcase.html","../../../../libs/m-render/src/lib/dynamic-components/components/showcase/provide-showcase.ts","../../../../libs/m-render/src/lib/dynamic-components/module-providers.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/activate-toc-by-hash/activate-toc-by-hash-request.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/activate-toc-by-hash/activate-toc-by-hash.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/calculate-table-of-content/calculate-table-of-content-request.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/models/table-of-content-data.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/calculate-absolute-top-to-container/calculate-absolute-top-to-container-request.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/calculate-absolute-top-to-container/calculate-absolute-top-to-container.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/calculate-table-of-content/calculate-table-of-content.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/scroll-to-element-in-container/scroll-to-element-in-container-request.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/scroll-to-element-in-container/scroll-to-element-in-container.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/table-of-content-items/table-of-content-items.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/table-of-content-items/table-of-content-items.component.html","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/module-providers.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/table-of-content.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/table-of-content.html","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/models/i-scrollable-container.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/scrollable-container.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/scrollable-container.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-renderer.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-renderer.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-router/markdown-router.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-router/markdown-router.html","../../../../libs/m-render/src/lib/documentation-page/documentation.ts","../../../../libs/m-render/src/lib/documentation-page/documentation.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 { inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ConsentState, GTAG_CONFIG, GTagConfig } from './provide-g-tag';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\n@Injectable()\nexport class GTagService {\n private readonly _config = inject<GTagConfig>(GTAG_CONFIG);\n private readonly _document = inject(DOCUMENT);\n private readonly _router = inject(Router, { optional: true });\n private _initialized = false;\n private _configuredIds = new Set<string>();\n\n public initialize(): void {\n if (this._initialized) return;\n\n const win = this._document.defaultView as (Window & {\n dataLayer?: unknown[];\n gtag?: (...args: unknown[]) => void;\n __gtagLoaded__?: boolean;\n }) | null;\n\n if (!win) {\n return;\n }\n\n win.dataLayer = win.dataLayer || [];\n win.gtag = win.gtag || ((...args: unknown[]) => win.dataLayer!.push(args));\n\n const initialConsent: ConsentState = this._config.initialConsent ?? 'denied';\n this._setConsent(initialConsent);\n\n if (!win.__gtagLoaded__) {\n this._appendScript(this._config.id);\n win.__gtagLoaded__ = true;\n }\n\n win.gtag('js', new Date());\n\n this._configAll([this._config.id, ...(this._config.extraIds ?? [])]);\n\n if (this._config.autoPageview && this._router) {\n this._router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe(() => {\n this.pageview();\n });\n }\n\n this._initialized = true;\n }\n\n public updateConsent(granted: boolean): void {\n this._setConsent(granted ? 'granted' : 'denied');\n }\n\n public event(action: string, params?: Record<string, unknown>): void {\n const win = this._document.defaultView as any;\n win?.gtag?.('event', action, params || {});\n }\n\n public pageview(path?: string): void {\n const win = this._document.defaultView as any;\n const p = path ?? this._document.location?.pathname ?? '/';\n for (const id of this._getConfiguredIds()) {\n win?.gtag?.('config', id, { page_path: p });\n }\n }\n\n public adsConversion(sendTo: string, params?: Record<string, unknown>): void {\n this.event('conversion', { send_to: sendTo, ...params });\n }\n\n private _setConsent(state: ConsentState): void {\n const win = this._document.defaultView as any;\n const base = {\n ad_user_data: state,\n ad_personalization: state,\n ad_storage: state,\n analytics_storage: state,\n };\n if (state === 'denied') {\n win?.gtag?.('consent', 'default', { ...base, wait_for_update: 500 });\n } else {\n win?.gtag?.('consent', 'update', base);\n }\n }\n\n private _appendScript(id: string): void {\n if (this._document.querySelector('#gtag-script')) return;\n const s = this._document.createElement('script');\n s.id = 'gtag-script';\n s.async = true;\n s.src = `https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(id)}`;\n this._document.head.appendChild(s);\n }\n\n private _configAll(ids: string[]): void {\n const win = this._document.defaultView as any;\n ids.filter(Boolean).forEach(id => {\n if (this._configuredIds.has(id)) return;\n win?.gtag?.('config', id);\n this._configuredIds.add(id);\n });\n }\n\n private _getConfiguredIds(): string[] {\n return Array.from(this._configuredIds.values());\n }\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { GTagService } from './g-tag.service';\n\nexport function provideGTag(config: GTagConfig): Provider[] {\n return [\n {\n provide: GTAG_CONFIG,\n useValue: config,\n },\n {\n provide: GTagService,\n useClass: GTagService,\n },\n ];\n}\n\nexport interface GTagConfig {\n id: string;\n extraIds?: string[];\n autoPageview?: boolean;\n initialConsent?: ConsentState;\n}\n\nexport const GTAG_CONFIG = new InjectionToken<GTagConfig>('GTAG_CONFIG');\n\nexport type ConsentState = 'granted' | 'denied';\n","import { IHeaderMenuLink, IMediaLink } from '../../../documentation-page';\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 search?: boolean;\n searchConfiguration?: IHeaderSearchConfiguration;\n\n navigation?: IHeaderMenuLink[];\n\n mediaLinks?: IMediaLink[];\n}\n\nexport interface IHasHeaderConfiguration {\n\n header?: IHeaderConfiguration;\n}\n\nexport interface IHeaderSearchConfiguration {\n appId: string;\n apiKey: string;\n indexName: string;\n placeholder?: string;\n insights?: boolean;\n searchParameters?: Record<string, unknown>;\n}\n","import { IHeaderConfiguration } from './provide-header';\n\nexport function provideHeaderSearch(search?: boolean): Partial<IHeaderConfiguration> {\n return {\n search,\n };\n}\n","import { IHeaderConfiguration, IHeaderSearchConfiguration } from './provide-header';\n\nexport function provideHeaderSearchAlgolia(configuration: IHeaderSearchConfiguration): Partial<IHeaderConfiguration> {\n return {\n search: true,\n searchConfiguration: configuration,\n };\n}\n","import { IHeaderConfiguration } from './provide-header';\nimport { IMediaLink } from '../../../documentation-page';\n\nexport function provideHeaderMediaLinks(mediaLinks: IMediaLink[]): Partial<IHeaderConfiguration> {\n return {\n mediaLinks,\n };\n}\n\n","import { IHeaderConfiguration } from './provide-header';\nimport { IHeaderMenuLink } from '../../../documentation-page';\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_PROVIDER = new InjectionToken<IHeaderConfiguration>('HEADER_CONFIGURATION_PROVIDER');\n\nexport interface IHeaderConfigurationStore {\n getHeader(): IHeaderConfiguration | undefined;\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 { DOCUMENT_ELEMENT, LOCAL_STORAGE, WINDOW } from '../common';\n\n@Injectable()\nexport class ThemeService {\n private readonly _localStorage = inject(LOCAL_STORAGE, { optional: true });\n private readonly _window = inject(WINDOW, { optional: true });\n private readonly _theme = new Subject<void>();\n private readonly _docElement = inject(DOCUMENT_ELEMENT);\n\n public get theme$(): Observable<void> {\n return this._theme.asObservable();\n }\n\n public initialize(): void {\n if (this.getPreferredTheme() === 'dark' && !this._isDocumentContainsDarkTheme()) {\n this._docElement.classList.add('dark');\n this._localStorage?.setItem('preferred-theme', 'dark');\n }\n }\n\n public updateTheme(): void {\n this._theme.next();\n }\n\n public getPreferredTheme(): string {\n return this._getItem('preferred-theme')\n || (this._matchMedia('(prefers-color-scheme: dark)')?.matches ? 'dark' : 'light');\n }\n\n private _getItem(key: string): string | null {\n return this._localStorage?.getItem?.(key) || null;\n }\n\n private _matchMedia(query: string): MediaQueryList {\n return this._window?.matchMedia?.(query) || { matches: false } as MediaQueryList;\n }\n\n private _isDocumentContainsDarkTheme(): boolean {\n return this._docElement.classList.contains('dark');\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","import { inject, InjectionToken } from '@angular/core';\n\nimport { DOCUMENT } from '@angular/common';\n\nexport const DOCUMENT_ELEMENT = new InjectionToken<HTMLElement>('DOCUMENT_ELEMENT', {\n factory: () => inject(DOCUMENT).documentElement,\n});\n","import { DOCUMENT } from '@angular/common';\nimport { inject, InjectionToken } from '@angular/core';\n\nexport const WINDOW = new InjectionToken<Window>('F_WINDOW', {\n factory: () => {\n const { defaultView } = inject(DOCUMENT);\n\n if (!defaultView) {\n throw new Error('Window is not available');\n }\n\n return defaultView;\n },\n});\n","import { inject, InjectionToken } from '@angular/core';\n\nimport { WINDOW } from './window';\n\nexport const LOCAL_STORAGE = new InjectionToken<Storage>('F_LOCAL_STORAGE', {\n factory: () => inject(WINDOW).localStorage,\n});\n","import { inject, InjectionToken } from '@angular/core';\n\nimport { WINDOW } from './window';\n\nexport const LOCATION = new InjectionToken<Location>('F_LOCATION', {\n factory: () => inject(WINDOW).location,\n});\n","import { inject, InjectionToken, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport const IS_BROWSER_PLATFORM = new InjectionToken<boolean>('IS_BROWSER_PLATFORM', {\n factory() {\n return isPlatformBrowser(inject(PLATFORM_ID));\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 readonly _document = inject(DOCUMENT);\n\n public setTitle(title: string): void {\n this._document.title = title || '';\n }\n\n public setDescription(description?: string | null): void {\n this.updateNameTag({ name: 'description', content: description || '' });\n }\n\n public setCanonical(url?: string | null): void {\n const normalizedUrl = (url || '').trim();\n const link = this._getCanonical();\n if (!normalizedUrl) {\n if (link) {\n link.remove();\n }\n return;\n }\n\n const canonicalLink: HTMLLinkElement = link || this._createElement<HTMLLinkElement>('link');\n canonicalLink.setAttribute('rel', 'canonical');\n canonicalLink.setAttribute('href', normalizedUrl);\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 this.updatePropertyTag(tag);\n }\n\n public updatePropertyTag(tag: IMetaTag): void {\n const normalizedContent = tag.content?.trim() || '';\n const meta = this._getPropertyTag(tag.property);\n if (!normalizedContent) {\n if (meta) {\n meta.remove();\n }\n return;\n }\n\n const targetMeta = meta || this._createElement<HTMLMetaElement>('meta');\n targetMeta.setAttribute('property', tag.property);\n targetMeta.setAttribute('content', normalizedContent);\n }\n\n public updateNameTag(tag: INameMetaTag): void {\n const normalizedContent = tag.content?.trim() || '';\n const meta = this._getNameTag(tag.name);\n if (!normalizedContent) {\n if (meta) {\n meta.remove();\n }\n return;\n }\n\n const targetMeta = meta || this._createElement<HTMLMetaElement>('meta');\n targetMeta.setAttribute('name', tag.name);\n targetMeta.setAttribute('content', normalizedContent);\n }\n\n private _getPropertyTag(property: string): HTMLMetaElement | null {\n return this._document.querySelector(`meta[property=\"${ property }\"]`) || null;\n }\n\n private _getNameTag(name: string): HTMLMetaElement | null {\n return this._document.querySelector(`meta[name=\"${ name }\"]`) || 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\nexport interface INameMetaTag {\n name: string;\n content: string;\n}\n","import { HandleNavigationLinksRequest } from './handle-navigation-links.request';\nimport { Router } from '@angular/router';\n\nexport class HandleNavigationLinksHandler {\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 window.open(href, '_blank')\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","import { Router } from '@angular/router';\n\nexport class HandleNavigationLinksRequest {\n constructor(\n public event: MouseEvent,\n public window: Window,\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 { IDynamicComponentItem } from '../../../dynamic-components';\n\nexport function defineLazyComponent(\n selector: string,\n loader: () => Promise<Record<string, unknown>>,\n): IDynamicComponentItem {\n return {\n selector,\n component: extractComponent(loader),\n };\n}\n\nexport function provideComponents(components: IDynamicComponentItem[]): 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 provideMeta(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 provideTableOfContent(tableOfContent: ITableOfContent | null = {\n title: 'In this article',\n range: { start: 2, end: 6 },\n}): Partial<IDocumentationConfiguration> {\n return {\n tableOfContent,\n };\n}\n","import { inject, Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter, map, Observable, startWith } from 'rxjs';\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';\nimport { LOCATION } from '../../../common';\nimport { ISeoOverrides } from './i-seo-overrides';\n\n@Injectable()\nexport class FMetaService {\n private readonly _location = inject(LOCATION);\n private readonly _router = inject(Router);\n private readonly _headTag = inject(FHeadTagService);\n private readonly _configuration = inject(DOCUMENTATION_CONFIGURATION);\n private _seoOverrides: ISeoOverrides | null = null;\n private _lastPath = '';\n\n public changes(): Observable<string> {\n return this._router.events.pipe(\n startWith(null),\n filter((e): e is NavigationEnd | null => e === null || e instanceof NavigationEnd),\n map(() => this._normalizeCurrentPath(this._router.url)),\n tap((currentUrl) => {\n if (this._lastPath !== currentUrl) {\n this._seoOverrides = null;\n this._lastPath = currentUrl;\n }\n this._updateMetaByUrl(currentUrl);\n }),\n );\n }\n\n public applyMarkdownSeo(overrides: ISeoOverrides | null | undefined): void {\n this._seoOverrides = overrides ? { ...overrides } : null;\n this._updateMetaByUrl(this._normalizeCurrentPath(this._router.url));\n }\n\n public dispose(): void {\n this._seoOverrides = null;\n this._lastPath = '';\n\n if (!this._configuration.meta) {\n return;\n }\n this._updateMetaTags(this._configuration.meta);\n }\n\n private _updateMetaByUrl(currentUrl: string): void {\n const defaultData = this._configuration.meta;\n if (!defaultData) {\n return;\n }\n\n const data = { ...defaultData };\n const item = this._findDocItemByUrl(this._findDocGroupByUrl(currentUrl), currentUrl);\n\n if (item) {\n data.title = `${item.pageTitle || item.text} | ${defaultData.app_name}`;\n data.url = this._buildAbsoluteUrl(currentUrl);\n data.canonical = item.canonical;\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\n if (!data.url) {\n data.url = this._buildAbsoluteUrl(currentUrl);\n }\n\n data.url = this._toAbsoluteUrl(data.url);\n if (data.image) {\n data.image = this._toAbsoluteUrl(data.image);\n }\n\n this._updateMetaTags(data);\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 _buildAbsoluteUrl(url: string): string {\n try {\n return new URL(url, this._location.origin).toString();\n } catch {\n return this._location.origin + url;\n }\n }\n\n private _toAbsoluteUrl(maybeRelative: string): string {\n try {\n return new URL(maybeRelative, this._location.origin).toString();\n } catch {\n return maybeRelative;\n }\n }\n\n private _updateMetaTags(item: IMetaData): void {\n const seo = this._seoOverrides || null;\n const title = seo?.title || item.title;\n const description = seo?.description || item.description;\n const url = this._toAbsoluteUrl(seo?.url || item.url);\n const canonical = this._toAbsoluteUrl(seo?.canonical || item.canonical || url);\n const type = seo?.og_type || seo?.type || item.type;\n const siteName = seo?.app_name || item.app_name;\n const locale = seo?.locale || item.locale;\n const image = this._toAbsoluteUrl(seo?.og_image || seo?.image || item.image);\n const imageType = seo?.image_type || item.image_type;\n const imageWidth = seo?.image_width || item.image_width;\n const imageHeight = seo?.image_height || item.image_height;\n const keywords = seo?.keywords || item.keywords || '';\n const robots = this._resolveRobots(item.robots, seo);\n\n const twitterCard = seo?.twitter_card || item.twitter_card || 'summary_large_image';\n const twitterSite = item.twitter_site || '';\n const twitterCreator = item.twitter_creator || '';\n const twitterTitle = seo?.twitter_title || seo?.og_title || title;\n const twitterDescription = seo?.twitter_description || seo?.og_description || description;\n const twitterImage = this._toAbsoluteUrl(seo?.twitter_image || image);\n\n this._headTag.setTitle(title);\n this._headTag.setDescription(description);\n this._headTag.setCanonical(canonical);\n\n this._headTag.updateTag({ property: 'og:url', content: url });\n this._headTag.updateTag({ property: 'og:type', content: type });\n this._headTag.updateTag({ property: 'og:title', content: seo?.og_title || title });\n this._headTag.updateTag({ property: 'og:site_name', content: siteName });\n this._headTag.updateTag({ property: 'og:locale', content: locale });\n this._headTag.updateTag({ property: 'og:description', content: seo?.og_description || description });\n this._headTag.updateTag({ property: 'og:image', content: image });\n this._headTag.updateTag({ property: 'og:image:secure_url', content: image });\n this._headTag.updateTag({ property: 'og:image:type', content: imageType });\n this._headTag.updateTag({ property: 'og:image:width', content: imageWidth ? imageWidth.toString() : '' });\n this._headTag.updateTag({ property: 'og:image:height', content: imageHeight ? imageHeight.toString() : '' });\n\n this._headTag.updateNameTag({ name: 'keywords', content: keywords });\n this._headTag.updateNameTag({ name: 'robots', content: robots });\n this._headTag.updateNameTag({ name: 'twitter:card', content: twitterCard });\n this._headTag.updateNameTag({ name: 'twitter:site', content: twitterSite });\n this._headTag.updateNameTag({ name: 'twitter:creator', content: twitterCreator });\n this._headTag.updateNameTag({ name: 'twitter:title', content: twitterTitle });\n this._headTag.updateNameTag({ name: 'twitter:description', content: twitterDescription });\n this._headTag.updateNameTag({ name: 'twitter:image', content: twitterImage });\n }\n\n private _resolveRobots(defaultRobots: string | undefined, seo: ISeoOverrides | null): string {\n if (seo?.robots) {\n return seo.robots;\n }\n\n const hasDirectiveOverride = typeof seo?.noindex === 'boolean' || typeof seo?.nofollow === 'boolean';\n if (!hasDirectiveOverride) {\n return defaultRobots || '';\n }\n\n const indexValue = seo?.noindex ? 'noindex' : 'index';\n const followValue = seo?.nofollow ? 'nofollow' : 'follow';\n const defaultTokens = (defaultRobots || '')\n .split(',')\n .map((x) => x.trim())\n .filter((x) => x && ![ 'index', 'noindex', 'follow', 'nofollow' ].includes(x.toLowerCase()));\n\n return [ indexValue, followValue, ...defaultTokens ].join(', ');\n }\n\n private _normalizeCurrentPath(url: string): string {\n return (url || '').split('#')[0].split('?')[0];\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.html',\n styleUrls: [ './hamburger-button.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(click)': '_onShowNavigation()',\n },\n})\nexport class HamburgerButton {\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 { computed, inject } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { HEADER_CONFIGURATION_PROVIDER } from '../../../../common';\n\nexport class HeaderMenuBase {\n private readonly _router = inject(Router);\n private readonly _baseNav = inject(HEADER_CONFIGURATION_PROVIDER)?.navigation ?? [];\n\n private readonly _url = toSignal(\n this._router.events.pipe(\n startWith(null),\n filter((e): e is NavigationEnd | null => e === null || e instanceof NavigationEnd),\n map(() => this._router.url),\n distinctUntilChanged(),\n ),\n { initialValue: this._router.url },\n );\n\n public readonly navigation = computed(() => {\n const url = this._cleanPath(this._url());\n return this._baseNav.map(item => ({\n ...item,\n isActive: this._isActive(url, this._cleanPath(item.active ?? '')),\n }));\n });\n\n private _cleanPath(url: string): string {\n return url.split('#')[0].split('?')[0].replace(/\\/{2,}/g, '/').replace(/\\/$/, '');\n }\n\n private _isActive(currentPath: string, itemLink: string): boolean {\n if (!itemLink) return false;\n return currentPath === itemLink || currentPath.startsWith(itemLink + '/');\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { HeaderMenuBase } from '../../models';\n\n@Component({\n selector: 'inline-menu',\n templateUrl: './inline-menu.html',\n styleUrls: [ './inline-menu.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RouterLink,\n ],\n})\nexport class InlineMenu extends HeaderMenuBase {\n}\n\n","@for (item of navigation(); track item.link) {\n <a [routerLink]=\"item.link\" [class.active]=\"item.isActive\">\n <span>{{ item.text }}</span>\n </a>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostListener, inject, OnInit,\n Renderer2,\n} from '@angular/core';\nimport { ThemeService } from '../theme.service';\nimport { DOCUMENT_ELEMENT, IS_BROWSER_PLATFORM, LOCAL_STORAGE } from '../../common';\n\n@Component({\n selector: 'button[theme-button]',\n templateUrl: './theme-button.component.html',\n styleUrls: [ './theme-button.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ThemeButtonComponent implements OnInit {\n private readonly _renderer = inject(Renderer2);\n private readonly _themeService = inject(ThemeService, { optional: true });\n private readonly _localStorage = inject(LOCAL_STORAGE);\n private readonly _documentElement = inject(DOCUMENT_ELEMENT);\n private readonly _isBrowser = inject(IS_BROWSER_PLATFORM);\n\n public ngOnInit(): void {\n if(!this._themeService && this._isBrowser) {\n throw new Error('Theme is not provided. Please provide it using provideTheme() provider in your application config.');\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._themeService?.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._themeService?.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 { Provider } from '@angular/core';\nimport { ThemeService } from './theme.service';\n\nexport function provideTheme(): Provider[] {\n return [\n {\n provide: ThemeService,\n useClass: ThemeService,\n },\n ];\n}\n","import { InjectionToken } from '@angular/core';\nimport { IMediaLink } from './i-media-link';\n\nexport interface IMediaLinksProvider {\n\n getMediaLinks(): IMediaLink[];\n}\n\nexport const MEDIA_LINKS_PROVIDER = new InjectionToken<IMediaLink[]>('MEDIA_LINKS_PROVIDER');\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MEDIA_LINKS_PROVIDER } from './domain';\n\n@Component({\n selector: 'media-links',\n templateUrl: './media-links.html',\n styleUrls: [ './media-links.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MediaLinks {\n\n protected links = inject(MEDIA_LINKS_PROVIDER, { optional: true });\n}\n","@for (link of links; track link.link) {\n <a href=\"{{ link.link }}\" class=\"header-link\">\n <div class=\"f-icon {{ link.icon }}\"></div>\n </a>\n}\n","import { ChangeDetectionStrategy, Component, inject, OnDestroy, signal } from '@angular/core';\nimport { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedPosition, Overlay } from '@angular/cdk/overlay';\nimport { ThemeButtonComponent } from '../../../../../theme';\nimport { HeaderMenuBase } from '../../models';\nimport { RouterLink } from '@angular/router';\nimport { MediaLinks } from '../media-links';\n\n@Component({\n selector: 'dropdown-menu',\n templateUrl: './dropdown-menu.html',\n styleUrls: ['./dropdown-menu.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CdkConnectedOverlay,\n CdkOverlayOrigin,\n ThemeButtonComponent,\n RouterLink,\n MediaLinks,\n ],\n})\nexport class DropdownMenu extends HeaderMenuBase implements OnDestroy {\n protected readonly isOpen = signal(false);\n protected readonly scrollStrategy = inject(Overlay).scrollStrategies.block();\n protected readonly positions: 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\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=\"f-icon more-horizontal\"></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 @if (navigation().length) {\n <div class=\"navigation-wrapper\">\n @for (item of navigation(); track item.link) {\n <a [routerLink]=\"item.link\" [class.active]=\"item.isActive\"><span>{{ item.text }}</span></a>\n }\n </div>\n }\n <div class=\"appearance\">\n <span>Appearance</span>\n <button theme-button></button>\n </div>\n <div class=\"social-links\">\n <media-links/>\n </div>\n\n </div>\n</ng-template>\n\n","import { INavigationGroup } from '../components';\n\nexport function calculateMarkdownUrl(markdown: string, navigation: INavigationGroup[], docsDir: string, notFoundMd = ''): string {\n if (!markdown || !_isMarkdownExist(markdown, navigation) && navigation.length) {\n return notFoundMd;\n }\n let url = 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\nfunction _isMarkdownExist(id: string, navigation: INavigationGroup[]): boolean {\n return !!navigation.find((x) =>\n x.items.some((i: { link: string; }) => i.link === id),\n );\n}\n","import { inject, Injectable, signal } from '@angular/core';\nimport {\n IHeaderMenuLink,\n IMarkdownFooterNavigation,\n IMediaLink,\n IMediaLinksProvider,\n INavigationGroup,\n ITableOfContent,\n TableOfContentData,\n} from '../components';\nimport { IHeaderConfiguration, IHeaderConfigurationStore } from '../../common';\nimport { DOCUMENTATION_CONFIGURATION } from '../domain';\nimport { IDynamicComponentItem, IShowcaseItem } from '../../dynamic-components';\nimport { calculateMarkdownUrl } from '../utils';\n\n@Injectable()\nexport class DocumentationStore\n implements IMediaLinksProvider, IHeaderConfigurationStore {\n private readonly _configuration = inject(DOCUMENTATION_CONFIGURATION);\n\n public readonly tocData = signal<TableOfContentData>(new TableOfContentData([], []));\n\n public getMarkdownUrl(markdown: string): string {\n return calculateMarkdownUrl(\n markdown,\n (this._configuration.navigation || []),\n this._configuration.docsDir,\n this._configuration.notFoundMarkdown,\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 getComponents(): IDynamicComponentItem[] {\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 getMediaLinks(): IMediaLink[] {\n return this._configuration.header?.mediaLinks || [];\n }\n\n public getTableOfContent(): ITableOfContent | null {\n return this._configuration.tableOfContent;\n }\n\n public getHeader(): IHeaderConfiguration | undefined {\n return this._configuration.header;\n }\n\n public getShowcaseItems(): IShowcaseItem[] {\n return this._configuration.showcaseItems || [];\n }\n}\n","import { ComponentRef, Injectable } from '@angular/core';\nimport { IDynamicComponentInstance } from './models';\n\n@Injectable()\nexport class DynamicComponentsStore {\n private _components: ComponentRef<IDynamicComponentInstance>[] = [];\n\n public dispose(): void {\n this._components.forEach((ref) => ref.destroy());\n this._components = [];\n }\n\n public addComponent(reference: ComponentRef<IDynamicComponentInstance>, element?: HTMLElement): void {\n this._components.push(reference);\n\n this._assignInputs(reference, element);\n reference.instance?.initialize?.();\n }\n\n private _assignInputs(componentRef: ComponentRef<IDynamicComponentInstance>, element?: HTMLElement): void {\n const dataset = element?.dataset;\n if (!dataset) return;\n\n Object.entries(dataset).forEach(([key, rawValue]) => {\n const value = this._parseDatasetValue(rawValue);\n const member = componentRef.instance[key];\n\n if (member && typeof (member as any).set === 'function') {\n (member as { set(v: unknown): void }).set(value);\n } else {\n (componentRef.instance as any)[key] = value;\n }\n });\n }\n\n private _parseDatasetValue(rawValue?: string): string | undefined {\n let result: string | undefined = rawValue;\n if (result?.startsWith?.('{') || result?.startsWith?.('[')) {\n try {\n result = JSON.parse(result);\n // eslint-disable-next-line no-unused-vars,@typescript-eslint/no-unused-vars\n } catch (e) { /* empty */\n }\n }\n return result;\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n selector: 'f-brand-link',\n templateUrl: './f-brand-link.component.html',\n styleUrls: [ './f-brand-link.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ RouterLink ],\n})\nexport class FBrandLinkComponent {\n public readonly title = input.required<string>();\n public readonly logo = input.required<string>();\n public readonly ariaLabel = input<string>('Home');\n public readonly logoAlt = input<string>('logo');\n public readonly href = input<string>('');\n public readonly routerLink = input<string | readonly unknown[] | null>(null);\n}\n","@if (routerLink() !== null) {\n <a [routerLink]=\"routerLink()!\" class=\"brand-link\" [attr.aria-label]=\"ariaLabel()\">\n <img [src]=\"logo()\" class=\"logo\" [alt]=\"logoAlt()\" width=\"24\" height=\"24\"/>\n <span class=\"title\">{{ title() }}</span>\n </a>\n} @else {\n <a [href]=\"href()\" class=\"brand-link\" [attr.aria-label]=\"ariaLabel()\">\n <img [src]=\"logo()\" class=\"logo\" [alt]=\"logoAlt()\" width=\"24\" height=\"24\"/>\n <span class=\"title\">{{ title() }}</span>\n </a>\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n OnDestroy,\n viewChild,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { IHeaderSearchConfiguration, IS_BROWSER_PLATFORM } from '../../../common';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n selector: 'f-search-button',\n templateUrl: './f-search-button.component.html',\n styleUrls: ['./f-search-button.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RouterLink,\n ],\n})\nexport class FSearchButtonComponent implements AfterViewInit, OnDestroy {\n public readonly configuration = input<IHeaderSearchConfiguration | undefined>(undefined);\n\n private readonly _isBrowser = inject(IS_BROWSER_PLATFORM);\n private readonly _document = inject(DOCUMENT);\n private readonly _containerRef = viewChild<ElementRef<HTMLElement>>('searchContainer');\n\n private _instance: IDocSearchInstance | null = null;\n\n public async ngAfterViewInit(): Promise<void> {\n if (!this._isBrowser) return;\n\n const docsearch = await loadDocSearch(this._document);\n if (!docsearch) return;\n\n const config = this.configuration();\n if (!config) return;\n\n const container = this._containerRef()?.nativeElement;\n if (!container) return;\n\n this._instance = docsearch({\n container,\n appId: config.appId,\n apiKey: config.apiKey,\n indexName: config.indexName,\n placeholder: config.placeholder || 'Search docs',\n insights: config.insights ?? true,\n searchParameters: config.searchParameters,\n });\n }\n\n public ngOnDestroy(): void {\n this._instance?.destroy?.();\n this._instance = null;\n }\n}\n\ninterface IDocSearchInstance {\n destroy?: () => void;\n}\n\ninterface IDocSearchOptions {\n container: HTMLElement;\n appId: string;\n apiKey: string;\n indexName: string;\n placeholder?: string;\n insights?: boolean;\n searchParameters?: Record<string, unknown>;\n}\n\ntype DocSearchFactory = (options: IDocSearchOptions) => IDocSearchInstance;\n\nlet cachedDocSearchFactory: Promise<DocSearchFactory | null> | null = null;\n\nasync function loadDocSearch(documentRef: Document): Promise<DocSearchFactory | null> {\n if (cachedDocSearchFactory) {\n return cachedDocSearchFactory;\n }\n\n cachedDocSearchFactory = (async () => {\n await Promise.all([\n appendStyle(documentRef),\n appendScript(documentRef),\n ]);\n\n const docsearch = (documentRef.defaultView as Window & {\n docsearch?: DocSearchFactory;\n } | null)?.docsearch;\n\n return typeof docsearch === 'function' ? docsearch : null;\n })();\n\n return cachedDocSearchFactory;\n}\n\nfunction appendScript(documentRef: Document): Promise<void> {\n const existing = documentRef.getElementById(DOCSEARCH_SCRIPT_ID);\n if (existing) {\n return Promise.resolve();\n }\n\n return new Promise<void>((resolve, reject) => {\n const script = documentRef.createElement('script');\n script.id = DOCSEARCH_SCRIPT_ID;\n script.src = DOCSEARCH_SCRIPT_URL;\n script.async = true;\n script.onload = () => resolve();\n script.onerror = () => reject(new Error('Failed to load Algolia DocSearch script.'));\n documentRef.head.appendChild(script);\n });\n}\n\nfunction appendStyle(documentRef: Document): Promise<void> {\n const existing = documentRef.getElementById(DOCSEARCH_STYLE_ID);\n if (existing) {\n return Promise.resolve();\n }\n\n const link = documentRef.createElement('link');\n link.id = DOCSEARCH_STYLE_ID;\n link.rel = 'stylesheet';\n link.href = DOCSEARCH_STYLE_URL;\n documentRef.head.appendChild(link);\n return Promise.resolve();\n}\n\nconst DOCSEARCH_SCRIPT_ID = 'f-docsearch-script';\nconst DOCSEARCH_STYLE_ID = 'f-docsearch-style';\nconst DOCSEARCH_SCRIPT_URL = 'https://cdn.jsdelivr.net/npm/@docsearch/js@3/dist/umd/index.js';\nconst DOCSEARCH_STYLE_URL = 'https://cdn.jsdelivr.net/npm/@docsearch/css@3/dist/style.css';\n","@if (configuration()) {\n <div #searchContainer class=\"search-container\"></div>\n} @else {\n <a class=\"f-icon search fallback-search\" [routerLink]=\"[]\" fragment=\"search\" aria-label=\"Search\"></a>\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild,\n} from '@angular/core';\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'f-checkbox',\n templateUrl: './f-checkbox.component.html',\n styleUrls: [ './f-checkbox.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.f-checkbox-checked]': 'checked',\n },\n})\nexport class FCheckboxComponent {\n\n @Input()\n public id = `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 {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n NgZone,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\nimport { HamburgerButton } from './components/hamburger-button';\nimport { DocumentationStore } from '../../services';\nimport { ThemeButtonComponent } from '../../../theme';\nimport { InlineMenu } from './components/inline-menu';\nimport { MediaLinks } from './components/media-links';\nimport { DropdownMenu } from './components/dropdown-menu';\nimport { HEADER_CONFIGURATION_PROVIDER } from '../../../common';\nimport { FBrandLinkComponent, FSearchButtonComponent } from '../../../shared';\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 HamburgerButton,\n FBrandLinkComponent,\n FSearchButtonComponent,\n ThemeButtonComponent,\n InlineMenu,\n DropdownMenu,\n MediaLinks,\n ],\n})\nexport class HeaderComponent implements AfterViewInit, OnDestroy {\n protected title = inject(DocumentationStore).getTitle();\n protected image = inject(DocumentationStore).getLogo();\n protected config = inject(HEADER_CONFIGURATION_PROVIDER);\n\n protected readonly emptyNavigation = !inject(DocumentationStore).getNavigation().length;\n\n private readonly _zone = inject(NgZone);\n\n private readonly _containerRef = viewChild.required<ElementRef<HTMLElement>>('container');\n private readonly _targetRef = viewChild.required<ElementRef<HTMLElement>>('target');\n\n protected readonly overflowed = signal(false);\n protected readonly initialized = signal(false);\n\n private _rafId: number | null = null;\n private _roContainer?: ResizeObserver;\n private _roTarget?: ResizeObserver;\n\n public ngAfterViewInit(): void {\n if (typeof ResizeObserver === 'undefined') {\n this._checkOverflow(true);\n return;\n }\n this._initObservers();\n this._checkOverflow(true); // первый замер синхронно\n }\n\n private _initObservers(): void {\n const container = this._containerRef().nativeElement;\n const target = this._targetRef().nativeElement;\n\n this._zone.runOutsideAngular(() => {\n const cb = () => this._scheduleCheck();\n this._roContainer = new ResizeObserver(cb);\n this._roTarget = new ResizeObserver(cb);\n\n this._roContainer.observe(container);\n this._roTarget.observe(target);\n });\n }\n\n private _scheduleCheck(): void {\n if (this._rafId != null) return;\n this._rafId = requestAnimationFrame(() => {\n this._rafId = null;\n this._checkOverflow(false);\n });\n }\n\n private _checkOverflow(isFirst: boolean): void {\n const container = this._containerRef().nativeElement;\n const target = this._targetRef().nativeElement;\n if (!container || !target) return;\n\n const next = target.scrollWidth >= container.clientWidth;\n\n if (next !== this.overflowed() || !this.initialized()) {\n this._zone.run(() => {\n this.overflowed.set(next);\n if (isFirst) this.initialized.set(true);\n });\n }\n }\n\n public ngOnDestroy(): void {\n this._roContainer?.disconnect();\n this._roTarget?.disconnect();\n if (this._rafId != null) cancelAnimationFrame(this._rafId);\n }\n}\n","@if (emptyNavigation) {\n <f-brand-link class=\"empty-navigation-title\"\n [routerLink]=\"''\"\n [title]=\"title\"\n [logo]=\"image\" />\n} @else {\n <div class=\"portal-title\">\n <button hamburger-button></button>\n <div class=\"title text-ellipsis\">{{ title }}</div>\n </div>\n}\n\n@if (config.search) {\n <f-search-button [configuration]=\"config.searchConfiguration\"></f-search-button>\n <div class=\"divider search-divider\"></div>\n}\n\n<div class=\"collapsable-row\" #container>\n <div #target class=\"target\" [class.hidden]=\"initialized() && overflowed()\">\n @if (config.navigation) {\n <inline-menu />\n <div class=\"divider\"></div>\n }\n\n <button theme-button></button>\n <div class=\"divider\"></div>\n <media-links />\n </div>\n\n <div class=\"fallback\" [class.hidden]=\"!initialized() || !overflowed()\">\n <dropdown-menu />\n </div>\n</div>\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 { INavigationItem } from './domain';\nimport { TOGGLE_NAVIGATION_COMPONENT } from '../header';\nimport { DocumentationStore } from '../../services';\nimport { HandleNavigationLinksHandler, HandleNavigationLinksRequest } from '../../domain';\nimport { WINDOW } from '../../../common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 _window = inject(WINDOW);\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 = this._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 _deepClone<T>(value: T): T {\n return JSON.parse(JSON.stringify(value));\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._window, 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\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 { 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\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, Input,\n} from '@angular/core';\nimport { IMarkdownFooterLink } from '../domain';\n\n@Component({\n selector: 'a[footer-navigation-button]',\n templateUrl: './footer-navigation-button.html',\n styleUrls: [ './footer-navigation-button.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class FooterNavigationButton {\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, computed,\n HostListener,\n inject,\n} from '@angular/core';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport {\n GetPreviousNextPageNavigationHandler,\n GetPreviousNextPageNavigationRequest,\n IMarkdownFooterLink,\n} from './domain';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { DocumentationStore } from '../../../services';\nimport { HandleNavigationLinksHandler, HandleNavigationLinksRequest } from '../../../domain';\nimport { WINDOW } from '../../../../common';\nimport { FooterNavigationButton } from './footer-navigation-button';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'markdown-footer',\n templateUrl: './markdown-footer.html',\n styleUrls: ['./markdown-footer.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FooterNavigationButton,\n ],\n standalone: true,\n})\nexport class MarkdownFooter {\n\n private readonly _provider = inject(DocumentationStore);\n private readonly _router = inject(Router);\n private readonly _activatedRoute = inject(ActivatedRoute);\n private readonly _window = inject(WINDOW);\n\n protected readonly navigation = this._provider.getFooterNavigation();\n\n private readonly _url = toSignal(this._router.events.pipe(\n startWith(null),\n filter((e): e is NavigationEnd | null => e === null || e instanceof NavigationEnd),\n map(() => this._router.url),\n distinctUntilChanged(),\n ), { initialValue: this._router.url });\n\n private readonly _currentLink = computed(() => {\n this._url();\n return this._activatedRoute.snapshot.url.map(s => s.path).join('/');\n });\n\n private readonly _prefix = computed(() => {\n const url = this._url();\n const idx = url.lastIndexOf('/');\n return idx > 0 ? url.substring(0, idx) : '';\n });\n\n protected readonly editLink = computed<string | undefined>(() => {\n const nav = this.navigation;\n if (!nav.editLink?.pattern) return undefined;\n return nav.editLink.pattern + this._currentLink() + '.md';\n });\n\n protected readonly previousLink = computed<IMarkdownFooterLink | undefined>(() => {\n const prevNext = new GetPreviousNextPageNavigationHandler(this._provider)\n .handle(new GetPreviousNextPageNavigationRequest(this._currentLink()));\n return this._normalizeLink(prevNext.previousLink);\n });\n\n protected readonly nextLink = computed<IMarkdownFooterLink | undefined>(() => {\n const prevNext = new GetPreviousNextPageNavigationHandler(this._provider)\n .handle(new GetPreviousNextPageNavigationRequest(this._currentLink()));\n return this._normalizeLink(prevNext.nextLink);\n });\n\n private _normalizeLink(item?: IMarkdownFooterLink): IMarkdownFooterLink | undefined {\n if (!item?.link) return item;\n if (this._isExternal(item.link)) return item;\n\n const prefix = this._prefix();\n const joined = (prefix ? `${prefix}/${item.link}` : item.link)\n .replace(/\\/{2,}/g, '/');\n\n return { ...item, link: joined.startsWith('/') ? joined : `/${joined}` };\n }\n\n private _isExternal(href: string): boolean {\n return /^(?:[a-z]+:)?\\/\\//i.test(href) || href.startsWith('www.');\n }\n\n @HostListener('click', ['$event'])\n protected _click(event: MouseEvent): void {\n new HandleNavigationLinksHandler().handle(\n new HandleNavigationLinksRequest(event, this._window, this._router),\n );\n }\n}\n","@let eLink = editLink();\n@let pLink = previousLink();\n@let nLink = nextLink();\n\n@if (eLink) {\n <a class=\"footer-edit-link\" [href]=\"eLink\">\n <span class=\"edit-link-icon f-icon edit\"></span>\n {{ navigation.editLink?.text || 'Edit this page on GitHub' }}\n </a>\n}\n\n@if (pLink || nLink) {\n <nav class=\"footer-navigation\">\n @if (pLink) {\n <a footer-navigation-button\n [href]=\"pLink.link\"\n [description]=\"navigation.previous\"\n [link]=\"pLink\">\n </a>\n }\n @if (nLink) {\n <a footer-navigation-button class=\"next\"\n [href]=\"nLink.link\"\n [description]=\"navigation.next\"\n [link]=\"nLink\">\n </a>\n }\n </nav>\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 SHOWCASE = 'showcase',\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 { ISeoOverrides } from '../../../../analytics';\n\nexport interface IMarkdownPageLayoutOptions {\n hideTableOfContent: boolean;\n expandContentWithoutTableOfContent: boolean;\n}\n\nexport interface IMarkdownOriginData {\n url: string;\n label: string;\n}\n\nexport interface IMarkdownFrontMatterData {\n layout: IMarkdownPageLayoutOptions;\n seo: ISeoOverrides | null;\n origin: IMarkdownOriginData | null;\n}\n\nexport interface IMarkdownFrontMatterParseResult {\n markdown: string;\n data: IMarkdownFrontMatterData;\n}\n\nexport const DEFAULT_MARKDOWN_PAGE_LAYOUT_OPTIONS: IMarkdownPageLayoutOptions = {\n hideTableOfContent: false,\n expandContentWithoutTableOfContent: false,\n};\n","import { inject, Injectable, signal } from '@angular/core';\nimport { Observable, of, switchMap } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport MarkdownIt from 'markdown-it';\n\nimport {\n DEFAULT_MARKDOWN_PAGE_LAYOUT_OPTIONS,\n EMarkdownContainerType,\n IMarkdownFrontMatterData,\n IMarkdownFrontMatterParseResult,\n IMarkdownOriginData,\n IMarkdownPageLayoutOptions,\n ParseAlerts,\n ParseAngularExampleWithCodeLinks,\n ParseGroupedCodeItems,\n ParsePreviewGroup, ParseShowcase,\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';\nimport { ISeoOverrides } from '../../../analytics';\n\ninterface IMarkdownOriginDraft {\n url: string | null;\n label: string | null;\n}\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, { optional: true });\n private readonly _pageLayout = signal<IMarkdownPageLayoutOptions>({ ...DEFAULT_MARKDOWN_PAGE_LAYOUT_OPTIONS });\n private readonly _pageSeo = signal<ISeoOverrides | null>(null);\n private readonly _pageOrigin = signal<IMarkdownOriginData | null>(null);\n\n public readonly pageLayout = this._pageLayout.asReadonly();\n public readonly pageSeo = this._pageSeo.asReadonly();\n public readonly pageOrigin = this._pageOrigin.asReadonly();\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_SUCCESS, this._markdown))\n .use(...new ParseGroupedCodeItems().render())\n .use(...new ParsePreviewGroup(this._provider?.getNavigation() || []).render())\n .use(...new ParseShowcase().render())\n .use(...new ParseAngularExampleWithCodeLinks().render());\n }\n\n public parseUrl(src: string): Observable<SafeHtml> {\n this._resetPageContext();\n\n return this._httpClient.get(src, { responseType: 'text' }).pipe(take(1), catchError(() => of(''))).pipe(\n switchMap((text) => of(this._renderMarkdownWithPageContext(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 public parseText(value: string): Observable<SafeHtml> {\n this._resetPageContext();\n\n return of(this._renderMarkdownWithPageContext(value)).pipe(\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 private _renderMarkdownWithPageContext(markdown: string): string {\n const result = this._parseFrontMatter(markdown);\n this._applyPageContext(result.data);\n\n return this._markdown.render(result.markdown);\n }\n\n private _parseFrontMatter(markdown: string): IMarkdownFrontMatterParseResult {\n const source = (markdown || '').replace(/^\\uFEFF/, '');\n const match = source.match(/^---\\r?\\n([\\s\\S]*?)\\r?\\n---(?:\\r?\\n|$)/);\n\n const defaults = this._getDefaultFrontMatterData();\n if (!match || !match[1].includes(':')) {\n return {\n markdown: source,\n data: defaults,\n };\n }\n\n const rawFrontMatter = match[1];\n const parsedData = this._parseFrontMatterData(rawFrontMatter);\n\n return {\n markdown: source.slice(match[0].length),\n data: parsedData,\n };\n }\n\n private _parseFrontMatterData(rawFrontMatter: string): IMarkdownFrontMatterData {\n const layout: IMarkdownPageLayoutOptions = { ...DEFAULT_MARKDOWN_PAGE_LAYOUT_OPTIONS };\n const seo: ISeoOverrides = {};\n const origin: IMarkdownOriginDraft = { url: null, label: null };\n\n rawFrontMatter\n .split(/\\r?\\n/)\n .forEach((line) => this._parseFrontMatterLine(line, layout, seo, origin));\n\n return {\n layout,\n seo: Object.keys(seo).length ? seo : null,\n origin: this._resolveOrigin(origin),\n };\n }\n\n private _parseFrontMatterLine(\n line: string,\n layout: IMarkdownPageLayoutOptions,\n seo: ISeoOverrides,\n origin: IMarkdownOriginDraft,\n ): void {\n const normalizedLine = line.trim();\n if (!normalizedLine || normalizedLine.startsWith('#')) {\n return;\n }\n\n const separatorIndex = normalizedLine.indexOf(':');\n if (separatorIndex < 0) {\n return;\n }\n\n const key = normalizedLine.slice(0, separatorIndex).trim().toLowerCase();\n const value = this._normalizeFrontMatterValue(normalizedLine.slice(separatorIndex + 1));\n if (!key || !value) {\n return;\n }\n\n const boolValue = this._parseBoolean(value);\n this._applyLayoutKey(key, boolValue, layout);\n this._applySeoKey(key, value, boolValue, seo);\n this._applyOriginKey(key, value, origin);\n }\n\n private _normalizeFrontMatterValue(value: string): string {\n const trimmed = value.trim();\n if ((trimmed.startsWith('\"') && trimmed.endsWith('\"')) || (trimmed.startsWith('\\'') && trimmed.endsWith('\\''))) {\n return trimmed.slice(1, -1).trim();\n }\n return trimmed;\n }\n\n private _parseBoolean(value: string): boolean | null {\n const normalized = value.toLowerCase();\n if ([ 'true', '1', 'yes', 'on' ].includes(normalized)) {\n return true;\n }\n\n if ([ 'false', '0', 'no', 'off' ].includes(normalized)) {\n return false;\n }\n\n return null;\n }\n\n private _applyLayoutKey(key: string, boolValue: boolean | null, layout: IMarkdownPageLayoutOptions): void {\n if (boolValue === null) {\n return;\n }\n\n switch (key) {\n case 'toc':\n case 'showtoc':\n case 'tableofcontent':\n case 'table_of_content':\n layout.hideTableOfContent = !boolValue;\n return;\n case 'hidetoc':\n case 'hide_toc':\n layout.hideTableOfContent = boolValue;\n return;\n case 'widecontent':\n case 'expandcontent':\n case 'expandwithouttoc':\n case 'expand_no_toc':\n case 'widetableofcontentgap':\n layout.expandContentWithoutTableOfContent = boolValue;\n return;\n }\n }\n\n private _applySeoKey(key: string, value: string, boolValue: boolean | null, seo: ISeoOverrides): void {\n switch (key) {\n case 'title':\n case 'seotitle':\n seo.title = value;\n return;\n case 'description':\n case 'seodescription':\n seo.description = value;\n return;\n case 'canonical':\n case 'seocanonical':\n seo.canonical = value;\n return;\n case 'keywords':\n case 'seokeywords':\n seo.keywords = value;\n return;\n case 'robots':\n case 'seorobots':\n seo.robots = value;\n return;\n case 'image':\n case 'seoimage':\n seo.image = value;\n return;\n case 'imagetype':\n case 'image_type':\n seo.image_type = value;\n return;\n case 'imagewidth':\n case 'image_width':\n seo.image_width = this._parseNumberOrDefault(value, seo.image_width);\n return;\n case 'imageheight':\n case 'image_height':\n seo.image_height = this._parseNumberOrDefault(value, seo.image_height);\n return;\n case 'ogtype':\n case 'og_type':\n seo.og_type = value;\n return;\n case 'ogtitle':\n case 'og_title':\n seo.og_title = value;\n return;\n case 'ogdescription':\n case 'og_description':\n seo.og_description = value;\n return;\n case 'ogimage':\n case 'og_image':\n seo.og_image = value;\n return;\n case 'twittercard':\n case 'twitter_card':\n seo.twitter_card = value;\n return;\n case 'twittertitle':\n case 'twitter_title':\n seo.twitter_title = value;\n return;\n case 'twitterdescription':\n case 'twitter_description':\n seo.twitter_description = value;\n return;\n case 'twitterimage':\n case 'twitter_image':\n seo.twitter_image = value;\n return;\n case 'noindex':\n if (boolValue !== null) {\n seo.noindex = boolValue;\n }\n return;\n case 'nofollow':\n if (boolValue !== null) {\n seo.nofollow = boolValue;\n }\n return;\n }\n }\n\n private _applyOriginKey(key: string, value: string, origin: IMarkdownOriginDraft): void {\n switch (key) {\n case 'origin':\n case 'originurl':\n case 'origin_url':\n case 'original':\n case 'originalurl':\n case 'original_url':\n case 'source':\n case 'sourceurl':\n case 'source_url': {\n const normalizedUrl = this._normalizeOriginUrl(value);\n if (normalizedUrl) {\n origin.url = normalizedUrl;\n }\n return;\n }\n case 'originlabel':\n case 'origin_label':\n case 'origintext':\n case 'origin_text':\n case 'sourcelabel':\n case 'source_label':\n origin.label = value;\n return;\n }\n }\n\n private _normalizeOriginUrl(value: string): string | null {\n const trimmed = value.trim();\n if (!trimmed) {\n return null;\n }\n\n const candidate = /^https?:\\/\\//i.test(trimmed) ? trimmed : `https://${ trimmed }`;\n\n try {\n const url = new URL(candidate);\n if (![ 'http:', 'https:' ].includes(url.protocol)) {\n return null;\n }\n return url.toString();\n } catch {\n return null;\n }\n }\n\n private _resolveOrigin(origin: IMarkdownOriginDraft): IMarkdownOriginData | null {\n if (!origin.url) {\n return null;\n }\n\n return {\n url: origin.url,\n label: origin.label || this._getOriginLabel(origin.url),\n };\n }\n\n private _getOriginLabel(originUrl: string): string {\n try {\n const hostname = new URL(originUrl).hostname.toLowerCase().replace(/^www\\./, '');\n if (hostname === 'medium.com' || hostname.endsWith('.medium.com')) {\n return 'Originally published on Medium';\n }\n\n return `Originally published on ${ hostname }`;\n } catch {\n return 'Originally published externally';\n }\n }\n\n private _parseNumberOrDefault(value: string, fallback: number | undefined): number | undefined {\n const numericValue = Number(value);\n if (!Number.isFinite(numericValue) || numericValue <= 0) {\n return fallback;\n }\n return numericValue;\n }\n\n private _applyPageContext(data: IMarkdownFrontMatterData): void {\n this._pageLayout.set({ ...data.layout });\n this._pageSeo.set(data.seo ? { ...data.seo } : null);\n this._pageOrigin.set(data.origin ? { ...data.origin } : null);\n }\n\n private _resetPageContext(): void {\n this._applyPageContext(this._getDefaultFrontMatterData());\n }\n\n private _getDefaultFrontMatterData(): IMarkdownFrontMatterData {\n return {\n layout: { ...DEFAULT_MARKDOWN_PAGE_LAYOUT_OPTIONS },\n seo: null,\n origin: null,\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, '"');\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(/\\[(.+?)\\]\\s*<<<\\s*(.+)/);\n if (!match) return null;\n\n const fileName = match[1].trim();\n let url = match[2].trim();\n\n const markdownLink = url.match(/^\\[[^\\]]+]\\((.+)\\)$/);\n if (markdownLink) {\n url = markdownLink[1].trim();\n }\n\n const angleWrapped = url.match(/^<(.+)>$/);\n if (angleWrapped) {\n url = angleWrapped[1].trim();\n }\n\n return url ? { fileName, url } : 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_-]+)/);\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 source = this._parseNgComponent(tokens[index]);\n const height = source?.height || 'auto';\n if (source) {\n result.push({\n tab: 'Example',\n value: source.value,\n type: EParsedContainerType.EXAMPLE,\n height,\n });\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*/, '').trim();\n const height = this._parseHeight(cleanedInput);\n\n const componentTag = cleanedInput.match(/<([a-zA-Z][a-zA-Z0-9-]*)(\\s[^>]*)?>\\s*<\\/\\1>/s)?.[0]?.trim();\n if (componentTag) {\n return {\n value: componentTag,\n height,\n };\n }\n\n const explicitUrl = cleanedInput.match(/\\[url\\]=[\"']([^\"']+)[\"']/)?.[1]?.trim();\n if (explicitUrl) {\n return {\n value: explicitUrl,\n height,\n };\n }\n\n const implicitUrl = cleanedInput\n .replace(/\\[height\\]=[\"'][^\"']*[\"']/g, '')\n .trim()\n .replace(/^[\"']|[\"']$/g, '');\n\n if (!implicitUrl || implicitUrl.includes('<')) return null;\n\n return {\n value: implicitUrl,\n height,\n };\n }\n\n private _parseHeight(input: string): string | number | undefined {\n const rawHeight = input.match(/\\[height\\]=[\"']([^\"']+)[\"']/)?.[1]?.trim();\n if (!rawHeight) return undefined;\n\n const numericHeight = Number(rawHeight);\n return Number.isFinite(numericHeight) ? numericHeight : rawHeight;\n }\n}\n","import { EMarkdownContainerType, IMarkdownItToken, IPreviewNavigationGroup } from './domain';\n\nimport container from 'markdown-it-container';\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 || g.id === 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 { EMarkdownContainerType, IMarkdownItToken } from './domain';\n\nimport container from 'markdown-it-container';\nimport { isOpeningToken } from './utils';\n\ntype ContainerArgs = [ typeof container, string, { render: any } ]\n\nexport class ParseShowcase {\n\n public render(): ContainerArgs {\n return [ container, EMarkdownContainerType.SHOWCASE, {\n render: (tokens: IMarkdownItToken[], index: number) => {\n if (isOpeningToken(tokens[index])) {\n return `<showcase></showcase>`;\n }\n return '';\n },\n } ];\n }\n}\n","import { inject, Injectable, Injector, Type } from '@angular/core';\nimport { IExecution } from './i-execution';\n\n@Injectable()\nexport class Mediatr {\n private readonly _injector = inject(Injector);\n\n private static _executions = new Map<symbol, Type<IExecution<any, any>>>();\n\n public static register<TRequest, TResponse>(\n type: any, handler: Type<IExecution<TRequest, TResponse>>,\n ): void {\n if (!type || !type.requestToken) {\n throw new Error('Type must have a requestToken static property');\n }\n Mediatr._executions.set(type.requestToken, handler);\n }\n\n public execute<TResponse>(request: any): TResponse {\n const token = request.constructor.requestToken;\n\n const handlerType = Mediatr._executions.get(token);\n if (!handlerType) {\n throw new Error(`No handler registered for token`, token);\n }\n\n const handler = this._injector.get(handlerType);\n return handler.handle(request);\n }\n}\n","import { IExecution } from './i-execution';\nimport { Mediatr } from './mediatr';\nimport { Type } from '@angular/core';\n\ntype Constructor<T = any> = new (...args: any[]) => T;\n\nexport function MExecution<TRequest, TResponse>(requestType: Type<TRequest>) {\n return function (constructor: Constructor<IExecution<TRequest, TResponse>>) {\n Mediatr.register(requestType, constructor);\n };\n}\n","export function coerceComponentHeight(value: string | number | undefined): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n if (typeof value === 'number') {\n return Number.isFinite(value) && value > 0 ? `${ value }px` : undefined;\n }\n\n const normalizedValue = value.trim();\n if (!normalizedValue) return undefined;\n\n if (normalizedValue === 'auto') return 'auto';\n\n const numericValue = Number(normalizedValue);\n if (Number.isFinite(numericValue) && numericValue > 0) {\n return `${ numericValue }px`;\n }\n\n if (/^-?\\d+(\\.\\d+)?(px|%|vh|vw|vmin|vmax|rem|em|ch|ex|cm|mm|in|pt|pc)$/i.test(normalizedValue)) {\n return normalizedValue;\n }\n\n if (/^calc\\(.+\\)$/i.test(normalizedValue)) {\n return normalizedValue;\n }\n\n return undefined;\n}\n","const URL_PROTOCOL_REGEX = /^(https?:\\/\\/|\\/\\/|\\/(?!\\/)|\\.\\.?\\/)/i;\nconst BARE_DOMAIN_REGEX = /^(localhost(?::\\d+)?|([a-z0-9-]+\\.)+[a-z]{2,})(\\/.*)?$/i;\nconst UNSAFE_PROTOCOL_REGEX = /^(javascript|data|vbscript):/i;\n\nexport function parseIframeUrl(value: string): string | null {\n if (!value) return null;\n\n const normalizedValue = value.trim();\n const urlFromAttr = normalizedValue.match(/\\[url\\]=[\"']([^\"']+)[\"']/)?.[1]?.trim();\n const candidate = (urlFromAttr || normalizedValue).replace(/^[\"']|[\"']$/g, '').trim();\n\n if (!candidate || candidate.includes('<') || UNSAFE_PROTOCOL_REGEX.test(candidate)) {\n return null;\n }\n\n if (URL_PROTOCOL_REGEX.test(candidate)) {\n return candidate;\n }\n\n if (BARE_DOMAIN_REGEX.test(candidate)) {\n return `https://${ candidate }`;\n }\n\n return null;\n}\n","export function parseComponentTag(html: string): string | null {\n const regex = /^<([a-zA-Z][a-zA-Z0-9-]*)(\\s+[^>]+)?>\\s*<\\/\\1>$/s;\n const match = regex.exec(html.trim());\n return match ? match[1] : null;\n}\n","import { ViewContainerRef } from '@angular/core';\nimport { IDynamicComponentItem } from '../../models';\n\nexport class RenderDynamicComponentRequest {\n static readonly requestToken = Symbol('RenderDynamicComponentRequest');\n\n constructor(\n public readonly item: IDynamicComponentItem,\n public readonly viewContainerRef: ViewContainerRef,\n public readonly element?: HTMLElement,\n ) {\n }\n}\n","import { RenderDynamicComponentRequest } from './render-dynamic-component-request';\nimport { ComponentRef, inject, Injectable, ViewContainerRef } from '@angular/core';\nimport { DynamicComponentsStore } from '../../dynamic-components.store';\nimport { IExecution, MExecution } from '../../../mediatr';\nimport { IDynamicComponentItem } from '../../models';\n\n@Injectable()\n@MExecution(RenderDynamicComponentRequest)\nexport class RenderDynamicComponent implements IExecution<RenderDynamicComponentRequest, void>{\n\n private readonly _dynamicStore = inject(DynamicComponentsStore);\n\n public handle({ item, viewContainerRef, element }: RenderDynamicComponentRequest): void {\n try {\n this._renderComponent(item, viewContainerRef, element);\n } catch (error) {\n this._logError(item.selector, error);\n }\n }\n\n private _renderComponent({ selector, component }: IDynamicComponentItem, viewContainerRef: ViewContainerRef, element?: HTMLElement): void {\n component.then(extracted => {\n if (!extracted) {\n this._logComponentResolutionError(selector);\n return;\n }\n\n const componentRef = viewContainerRef.createComponent(extracted);\n this._dynamicStore.addComponent(componentRef, element);\n\n element?.replaceWith(this._extractComponentRoot(componentRef));\n }).catch(error => this._logComponentLoadingError(selector, error));\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 _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 _logError(tag: string, error: any): void {\n console.error(`Error inserting component for <${tag}>:`, error);\n }\n}\n","import { ViewContainerRef } from '@angular/core';\n\nexport class RenderExternalComponentRequest {\n public static readonly requestToken = Symbol('RenderExternalComponentRequest');\n\n constructor(\n public readonly selector: string,\n public readonly viewContainerRef: ViewContainerRef,\n ) {\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { IDynamicComponentItem } from '../models';\n\nexport const EXTERNAL_COMPONENT_PROVIDER = new InjectionToken<IDynamicComponentItem[]>('EXTERNAL_COMPONENT_PROVIDER');\n","import { RenderExternalComponentRequest } from './render-external-component-request';\nimport { inject, Injectable } from '@angular/core';\nimport { IExecution, Mediatr, MExecution } from '../../../mediatr';\nimport { RenderDynamicComponentRequest } from '../render-dynamic-component';\nimport { EXTERNAL_COMPONENT_PROVIDER } from '../../providers';\n\n@Injectable()\n@MExecution(RenderExternalComponentRequest)\nexport class RenderExternalComponent implements IExecution<RenderExternalComponentRequest, void> {\n\n private readonly _mediatr = inject(Mediatr);\n private readonly _componentsMap = inject(EXTERNAL_COMPONENT_PROVIDER, { optional: true }) ?? [];\n\n public handle({ selector, viewContainerRef }: RenderExternalComponentRequest): void {\n if (!selector) {\n console.warn('Empty selector passed to RenderExternalComponentRequest.');\n return;\n }\n\n const item = this._componentsMap.find((x) => {\n return x.selector === selector;\n });\n\n if (!item) {\n console.error(`Component for tag \"${selector}\" could not be found in external components map.`);\n return;\n }\n\n this._mediatr.execute(\n new RenderDynamicComponentRequest(item, viewContainerRef),\n );\n }\n}\n","import { ViewContainerRef } from '@angular/core';\n\nexport class RenderInternalComponentsRequest {\n public static readonly requestToken = Symbol('RenderInternalComponentsRequest');\n\n constructor(\n public readonly hostElement: HTMLElement,\n public readonly viewContainerRef: ViewContainerRef,\n ) {\n }\n}\n","import { RenderInternalComponentsRequest } from './render-internal-components-request';\nimport { inject, Injectable } from '@angular/core';\nimport { IExecution, Mediatr, MExecution } from '../../../mediatr';\nimport { IDynamicComponentItem } from '../../models';\nimport { DynamicComponentsStore, extractComponent } from '../../../documentation-page';\nimport { RenderDynamicComponentRequest } from '../render-dynamic-component';\n\n@Injectable()\n@MExecution(RenderInternalComponentsRequest)\nexport class RenderInternalComponents implements IExecution<RenderInternalComponentsRequest, void> {\n private readonly _dynamicStore = inject(DynamicComponentsStore);\n private readonly _mediatr = inject(Mediatr);\n\n private readonly _componentsMap: IDynamicComponentItem[] = [\n {\n selector: 'f-code-group',\n component: extractComponent(() => import('../../components/code-group/code-group')),\n },\n {\n selector: 'f-preview',\n component: extractComponent(() => import('../../components/preview-group/components/preview-card/preview-card')),\n },\n {\n selector: 'f-preview-group-filters',\n component: extractComponent(() => import('../../components/preview-group/components/preview-action-bar/preview-action-bar')),\n },\n {\n selector: 'showcase',\n component: extractComponent(() => import('../../components/showcase/showcase')),\n },\n ];\n\n public handle({ hostElement, viewContainerRef }: RenderInternalComponentsRequest): void {\n this._dynamicStore.dispose();\n\n this._componentsMap.forEach(({ selector, component }) => {\n this._queryElements(hostElement, selector).forEach((x) => {\n this._mediatr.execute(\n new RenderDynamicComponentRequest({ selector, component }, viewContainerRef, x),\n );\n });\n });\n }\n\n private _queryElements(hostElement: HTMLElement, selector: string): HTMLElement[] {\n return Array.from(hostElement.querySelectorAll(selector));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n input,\n OnInit,\n signal,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { coerceComponentHeight } from './utils/coerce-component-height';\nimport { parseComponentTag } from './utils/parse-component-tag';\nimport { IExampleViewData } from './domain/i-example-view-data';\nimport { IParsedContainerData } from '../../../documentation-page';\nimport { Mediatr } from '../../../mediatr';\nimport { RenderExternalComponentRequest } from '../../features';\nimport { parseIframeUrl } from './utils/parse-iframe-url';\nimport { DOCUMENT } from '@angular/common';\nimport { IS_BROWSER_PLATFORM } from '../../../common';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\n@Component({\n selector: 'external-component',\n templateUrl: './external-component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'f-example-view',\n '[style.height]': 'data().height',\n '[class.f-example-view-fullscreen]': 'isFullscreen()',\n },\n})\nexport class ExternalComponent implements OnInit {\n public readonly data = input.required<IExampleViewData, IParsedContainerData>({\n transform: (x) => {\n const value = x.value?.trim() || '';\n\n return {\n height: coerceComponentHeight(x.height),\n selector: parseComponentTag(value) || undefined,\n iframeUrl: parseIframeUrl(value) || undefined,\n };\n },\n });\n\n protected readonly iframeUrl = computed(() => this.data().iframeUrl);\n protected readonly iframeResourceUrl = computed<SafeResourceUrl | undefined>(() => {\n const url = this.iframeUrl();\n if (!url) {\n return undefined;\n }\n return this._sanitizer.bypassSecurityTrustResourceUrl(url);\n });\n protected readonly hasContent = computed(() => !!this.data().selector || !!this.data().iframeUrl);\n protected readonly canToggleFullscreen = computed(() => {\n return this._isBrowser\n && this.hasContent()\n && typeof this._hostElement.nativeElement.requestFullscreen === 'function'\n && typeof this._document.exitFullscreen === 'function';\n });\n protected readonly fullscreenLabel = computed(() => this.isFullscreen() ? 'Exit full screen' : 'Full screen');\n protected readonly isFullscreen = signal(false);\n\n private readonly _document = inject(DOCUMENT);\n private readonly _hostElement = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _isBrowser = inject(IS_BROWSER_PLATFORM);\n private readonly _mediatr = inject(Mediatr);\n private readonly _viewContainerRef = viewChild.required('container', { read: ViewContainerRef });\n private readonly _sanitizer = inject(DomSanitizer);\n\n public ngOnInit(): void {\n const selector = this.data().selector;\n if (selector) {\n this._mediatr.execute(new RenderExternalComponentRequest(selector, this._viewContainerRef()));\n return;\n }\n\n if (!this.data().iframeUrl) {\n console.error('Unsupported example source. Provide either component tag or [url].');\n }\n }\n\n protected async toggleFullscreen(): Promise<void> {\n if (!this.canToggleFullscreen()) return;\n\n try {\n if (this._isCurrentElementInFullscreen()) {\n await this._document.exitFullscreen?.();\n } else {\n await this._hostElement.nativeElement.requestFullscreen?.();\n }\n } catch (error) {\n console.error('Unable to toggle full-screen mode for example preview:', error);\n }\n }\n\n @HostListener('document:fullscreenchange')\n protected onFullscreenChange(): void {\n this.isFullscreen.set(this._isCurrentElementInFullscreen());\n }\n\n private _isCurrentElementInFullscreen(): boolean {\n return this._document.fullscreenElement === this._hostElement.nativeElement;\n }\n}\n","@if (canToggleFullscreen()) {\n <button class=\"f-fullscreen-button\"\n type=\"button\"\n [class.exit]=\"isFullscreen()\"\n [attr.aria-label]=\"fullscreenLabel()\"\n [attr.title]=\"fullscreenLabel()\"\n (click)=\"toggleFullscreen()\"></button>\n}\n\n@if (iframeResourceUrl()) {\n <iframe class=\"f-example-iframe\"\n [src]=\"iframeResourceUrl()\"\n loading=\"lazy\"\n referrerpolicy=\"no-referrer\"\n allow=\"fullscreen\"\n allowfullscreen></iframe>\n}\n\n<ng-container #container />\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 '../index';\n\n@Component({\n selector: 'highlight',\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Highlight 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","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 { Highlight, resolveHighlightLanguage } from '../index';\nimport { copyToClipboard } from '../../common';\n\ninterface ContainerData {\n height?: string | number;\n value: string;\n isLink?: boolean;\n language?: string;\n}\n\n@Component({\n selector: 'code-view',\n templateUrl: './code-view.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'f-code-view',\n '[style.height]': 'height()',\n },\n imports: [\n Highlight,\n ],\n})\nexport class CodeView implements OnInit {\n private readonly _httpClient = inject(HttpClient);\n private readonly _destroyRef = inject(DestroyRef);\n private _copyFeedbackTimeout: ReturnType<typeof setTimeout> | null = null;\n\n public readonly data = input<ContainerData>();\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 protected readonly copyButtonLabel = signal('Copy');\n\n public constructor() {\n this._destroyRef.onDestroy(() => {\n if (this._copyFeedbackTimeout) {\n clearTimeout(this._copyFeedbackTimeout);\n }\n });\n }\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?: ContainerData): void {\n if (data?.isLink) {\n this._loadCodeByLink(data.value);\n }\n }\n\n private _updateExistingData(data?: ContainerData): 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._setCopiedFeedback());\n }\n\n private _setCopiedFeedback(): void {\n this.copyButtonLabel.set('Copied');\n\n if (this._copyFeedbackTimeout) {\n clearTimeout(this._copyFeedbackTimeout);\n }\n\n this._copyFeedbackTimeout = setTimeout(() => {\n this.copyButtonLabel.set('Copy');\n this._copyFeedbackTimeout = null;\n }, 1500);\n }\n}\n\nfunction coerceComponentHeight(value: string | number | undefined): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n if (typeof value === 'number') {\n return Number.isFinite(value) && value > 0 ? `${ value }px` : undefined;\n }\n\n const normalizedValue = value.trim();\n if (!normalizedValue) return undefined;\n\n if (normalizedValue === 'auto') return 'auto';\n\n const numericValue = Number(normalizedValue);\n if (Number.isFinite(numericValue) && numericValue > 0) {\n return `${ numericValue }px`;\n }\n\n if (/^-?\\d+(\\.\\d+)?(px|%|vh|vw|vmin|vmax|rem|em|ch|ex|cm|mm|in|pt|pc)$/i.test(normalizedValue)) {\n return normalizedValue;\n }\n\n if (/^calc\\(.+\\)$/i.test(normalizedValue)) {\n return normalizedValue;\n }\n\n return undefined;\n}\n\n\nfunction 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\nfunction 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 return resolveHighlightLanguage(result);\n}\n\nfunction extractLanguage(language: string): string {\n const match = language.match(/^([^\\s[]+)/);\n return match ? match[1].toLowerCase() : language;\n}\n","<span class=\"f-code-language\">{{ visibleLanguage() }}</span>\n<button class=\"f-copy-button\" type=\"button\" (click)=\"onCopyClick()\">{{ copyButtonLabel() }}</button>\n@if (content()) {\n <highlight [content]=\"content()\" [language]=\"syntaxLanguage()\"/>\n}\n","import { Observable, of } from 'rxjs';\n\nexport class MarkCodeFocusedBlocksPostProcessor {\n\n constructor(\n private _window: Window,\n ) {\n }\n\n public handle(element: HTMLElement): Observable<HTMLElement> {\n const html = element.innerHTML;\n if (!FOCUS_TEST_REGEX.test(html)) {\n return of(element);\n }\n\n element.innerHTML = html.replace(FOCUS_REPLACE_REGEX, (_match, content) => {\n return `<focus class=\"focused\"><div class=\"inline-focus\">${content}</div></focus>`;\n });\n\n const focused = element.querySelector('.focused');\n const hostElement = element.parentElement;\n if (focused && hostElement) {\n this._applyOpacity(hostElement);\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._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): [string, string, string, string] {\n const matches = color.match(/-?\\d*\\.?\\d+/g) || [];\n const [r = '0', g = '0', b = '0', a = '1'] = matches;\n return [r, g, b, a];\n }\n}\n\nconst FOCUS_TEST_REGEX = /ƒƒƒ([\\s\\S]*?)¢¢¢/;\nconst FOCUS_REPLACE_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 type { LanguageInput, PlainTextLanguage } from '@shikijs/types';\n\ntype ShikiLanguage =\n | 'javascript'\n | 'typescript'\n | 'angular-html'\n | 'angular-ts'\n | 'shell'\n | 'html'\n | 'bash'\n | 'css'\n | 'scss'\n | 'markdown';\n\nexport type HighlightLanguage = ShikiLanguage | PlainTextLanguage;\n\nconst LANGUAGE_ALIASES: Record<string, HighlightLanguage> = {\n js: 'javascript',\n javascript: 'javascript',\n ts: 'typescript',\n typescript: 'typescript',\n md: 'markdown',\n sh: 'shell',\n zsh: 'shell',\n shell: 'shell',\n shellscript: 'shell',\n txt: 'text',\n plain: 'text',\n plaintext: 'text',\n};\n\nconst LANGUAGE_LOADERS = new Map<ShikiLanguage, LanguageInput>([\n [ 'javascript', () => import('@shikijs/langs/javascript') ],\n [ 'typescript', () => import('@shikijs/langs/typescript') ],\n [ 'angular-html', () => import('@shikijs/langs/angular-html') ],\n [ 'angular-ts', () => import('@shikijs/langs/angular-ts') ],\n [ 'shell', () => import('@shikijs/langs/shell') ],\n [ 'html', () => import('@shikijs/langs/html') ],\n [ 'bash', () => import('@shikijs/langs/bash') ],\n [ 'css', () => import('@shikijs/langs/css') ],\n [ 'scss', () => import('@shikijs/langs/scss') ],\n [ 'markdown', () => import('@shikijs/langs/markdown') ],\n]);\n\nexport const AVAILABLE_LANGUAGES: readonly HighlightLanguage[] = [\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 resolveHighlightLanguage(lang?: string): HighlightLanguage {\n const normalized = (lang || '').trim().toLowerCase();\n if (!normalized) {\n return 'text';\n }\n\n const alias = LANGUAGE_ALIASES[normalized];\n if (alias) {\n return alias;\n }\n\n if (isAvailableLanguage(normalized)) {\n return normalized;\n }\n\n return 'text';\n}\n\nexport function getLanguageLoader(lang: HighlightLanguage): LanguageInput | null {\n if (isPlainTextLanguage(lang)) {\n return null;\n }\n return LANGUAGE_LOADERS.get(lang) || null;\n}\n\nfunction isAvailableLanguage(lang: string): lang is HighlightLanguage {\n return AVAILABLE_LANGUAGES.includes(lang as HighlightLanguage);\n}\n\nfunction isPlainTextLanguage(lang: HighlightLanguage): lang is PlainTextLanguage {\n return lang === 'text' || lang === 'txt' || lang === 'plain' || lang === 'plaintext';\n}\n","import { inject, Injectable } from '@angular/core';\nimport { defer, from, map, Observable, of, switchMap } from 'rxjs';\nimport { MarkCodeFocusedBlocksPostProcessor } from './mark-code-focused-blocks.post-processor';\nimport { UNIVERSAL_THEME } from './theme';\nimport { catchError, finalize, shareReplay } from 'rxjs/operators';\nimport { getLanguageLoader, HighlightLanguage, resolveHighlightLanguage } from './languages';\nimport { IS_BROWSER_PLATFORM, WINDOW } from '../common';\nimport { createHighlighterCore, HighlighterCore, isSpecialLang } from '@shikijs/core';\nimport { createOnigurumaEngine } from '@shikijs/engine-oniguruma';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HighlightService {\n /**\n * Service for highlighting code blocks using Shiki.\n * It supports syntax highlighting and post-processing for focused blocks.\n */\n private readonly _isBrowser = inject(IS_BROWSER_PLATFORM);\n private readonly _window = inject(WINDOW, { optional: true });\n private readonly _languageLoadingTasks = new Map<HighlightLanguage, Observable<void>>();\n private readonly _highlighter$: Observable<HighlighterCore> = defer(() =>\n from(this._createHighlighter()),\n ).pipe(\n shareReplay(1),\n );\n\n public highlight(\n element: HTMLElement, lang: string, content: string,\n ): Observable<HTMLElement> {\n if (!this._isBrowser) {\n console.warn('[HighlightService] Skipping highlight on server.');\n return of(element);\n }\n\n const resolvedLanguage = resolveHighlightLanguage(lang);\n\n return this._ensureLanguageLoaded(resolvedLanguage).pipe(\n switchMap(() => this._highlightCodeBlock(element, resolvedLanguage, content)),\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: HighlighterCore, 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 this._scheduleRender(() => {\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 _createHighlighter(): Promise<HighlighterCore> {\n return createHighlighterCore({\n engine: createOnigurumaEngine(() => import('shiki/wasm').then((x) => x.default)),\n themes: [ UNIVERSAL_THEME ],\n langs: [],\n });\n }\n\n private _ensureLanguageLoaded(lang: HighlightLanguage): Observable<void> {\n if (isSpecialLang(lang)) {\n return of(void 0);\n }\n\n return this._highlighter$.pipe(\n switchMap((highlighter) => {\n if (highlighter.getLoadedLanguages().includes(lang)) {\n return of(void 0);\n }\n\n const cachedTask = this._languageLoadingTasks.get(lang);\n if (cachedTask) {\n return cachedTask;\n }\n\n const loader = getLanguageLoader(lang);\n if (!loader) {\n return of(void 0);\n }\n\n const loadingTask = from(highlighter.loadLanguage(loader)).pipe(\n map(() => void 0),\n catchError((error) => {\n console.error(`[HighlightService] Failed to load language \"${lang}\"`, error);\n return of(void 0);\n }),\n finalize(() => {\n this._languageLoadingTasks.delete(lang);\n }),\n shareReplay(1),\n );\n\n this._languageLoadingTasks.set(lang, loadingTask);\n return loadingTask;\n }),\n );\n }\n\n private _scheduleRender(callback: () => void): void {\n const raf = this._window?.requestAnimationFrame?.bind(this._window);\n if (raf) {\n raf(callback);\n return;\n }\n queueMicrotask(callback);\n }\n\n private _postProcess(element: HTMLElement): Observable<HTMLElement> {\n const windowRef = this._window;\n if (!windowRef) {\n return of(element);\n }\n\n return of(element).pipe(\n switchMap((x) => new MarkCodeFocusedBlocksPostProcessor(windowRef).handle(x)),\n );\n }\n}\n","import { ChangeDetectionStrategy, Component, signal } from '@angular/core';\nimport { EParsedContainerType, IParsedContainerData } from '../../../documentation-page';\nimport { ExternalComponent } from '../external-component';\nimport { CodeView } from '../../../highlight';\n\n@Component({\n selector: 'code-group',\n templateUrl: './code-group.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'f-code-group',\n },\n imports: [\n ExternalComponent,\n CodeView,\n ],\n})\nexport class CodeGroup {\n public readonly data = signal<IParsedContainerData[]>([]);\n\n protected readonly index = signal<number>(0);\n protected readonly containerType = EParsedContainerType;\n\n protected tabClick(index: number): void {\n this.index.set(index);\n }\n}\n","@let views = data();\n\n@if (views.length > 1) {\n <div class=\"f-code-group-tabs\">\n @for (data of views; track data) {\n <button class=\"f-tab-button\" [class.active]=\"$index === index()\" (click)=\"tabClick($index)\">\n {{ data.tab }}\n </button>\n }\n </div>\n}\n\n<div class=\"f-code-group-body\">\n @for (data of views; track data) {\n\n @let isExampleView = data.type === containerType.EXAMPLE;\n @let display = $index === index() ? 'block' : 'none';\n\n @if (isExampleView) {\n <external-component [style.display]=\"display\" [data]=\"data\" />\n } @else {\n <code-view [style.display]=\"display\" [data]=\"data\" />\n }\n }\n</div>\n","export abstract class PreviewCardBase {\n\n public abstract date?: Date;\n\n public abstract filterKey?: string;\n\n public abstract hostElement: HTMLElement;\n}\n","import { Injectable } from '@angular/core';\nimport { PreviewCardBase } from './components/preview-card';\n\n@Injectable()\nexport class PreviewGroupService {\n\n private _cards: PreviewCardBase[] = [];\n private _originalOrder: Map<HTMLElement, Node[]> | null = null;\n\n public add(card: PreviewCardBase): void {\n this._cards.push(card);\n }\n\n public remove(card: PreviewCardBase): void {\n this._cards = this._cards.filter(preview => preview !== card);\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._cards.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(): PreviewCardBase[] {\n return this._cards\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._cards.forEach((x) => {\n if (x.filterKey !== filterKey) {\n x.hostElement.style.display = 'none';\n }\n });\n }\n\n private _resetLastActiveFilter(): void {\n this._cards.forEach((x) => {\n x.hostElement.style.display = 'block';\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport { startWith } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { PreviewCardBase } from './preview-card-base';\nimport { ThemeService } from '../../../../../theme';\nimport { DocumentationStore, INavigationGroup, INavigationItem } from '../../../../../documentation-page';\nimport { PreviewGroupService } from '../../preview-group.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'a[preview-card]',\n templateUrl: './preview-card.html',\n styleUrls: [ './preview-card.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.href]': 'url',\n '[attr.title]': 'viewModel?.text',\n },\n})\nexport class PreviewCard extends PreviewCardBase implements OnInit, OnDestroy {\n private readonly _elementReference = inject(ElementRef);\n private readonly _fEnvironment = inject(DocumentationStore);\n private readonly _fPreviewGroupService = inject(PreviewGroupService);\n private readonly _themeService = inject(ThemeService, { optional: true });\n private readonly _router = inject(Router);\n private readonly _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._themeService?.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._themeService?.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 '../../../../../documentation-page';\nimport { TitleCasePipe } from '@angular/common';\nimport { FCheckboxComponent, FRadioButtonComponent } from '../../../../../shared';\nimport { PreviewGroupService } from '../../preview-group.service';\n\n@Component({\n selector: 'div[preview-action-bar]',\n templateUrl: './preview-action-bar.html',\n styleUrls: [ './preview-action-bar.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FCheckboxComponent,\n FRadioButtonComponent,\n TitleCasePipe,\n ],\n})\nexport class PreviewActionBar implements AfterViewInit {\n\n private readonly _allKey = 'all';\n\n private _fEnvironment = inject(DocumentationStore);\n private _fPreviewGroupService = inject(PreviewGroupService);\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 {\n ChangeDetectionStrategy,\n Component, computed,\n inject, input,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, startWith } from 'rxjs';\nimport { IShowcaseItem } from '../../models';\nimport { ThemeService } from '../../../../../theme';\n\n@Component({\n selector: 'showcase-item',\n templateUrl: './showcase-item.html',\n styleUrls: [ './showcase-item.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ShowcaseItem {\n private readonly _themeService = inject(ThemeService);\n\n private readonly _themeChanges = toSignal(this._themeService.theme$.pipe(startWith(null), map(() => this._themeService.getPreferredTheme())));\n public readonly model = input.required<IShowcaseItem>();\n\n protected readonly src = computed(() => {\n const theme = this._themeChanges();\n const model = this.model();\n return theme === 'dark' ? (model.imageUrlDark || model.imageUrl) : model.imageUrl;\n });\n}\n","@let data = model();\n\n@if (data) {\n <img [src]=\"src()\" [alt]=\"data.description\" [title]=\"data.name\">\n <div class=\"title\">{{ data.name }}</div>\n <div class=\"description\">{{ data.description }}</div>\n <div class=\"links\">\n @for (link of (data.links || []); track link.text) {\n <a href=\"{{ link.url }}\" target=\"_blank\" rel=\"noopener\">{{ link.text }}</a>\n }\n </div>\n <div class=\"tags\">\n @for (tag of (data.tags || []); track tag) {\n <span class=\"f-badge tip\">{{ tag }}</span>\n }\n </div>\n}\n\n\n\n","import { IShowcaseItem } from './models';\nimport { InjectionToken } from '@angular/core';\n\nexport const SHOWCASE_DATA = new InjectionToken<IShowcaseItem[]>('SHOWCASE_DATA');\n\n","import { ChangeDetectionStrategy, Component, computed, inject, signal, } from '@angular/core';\nimport { ShowcaseItem } from './components';\nimport { SHOWCASE_DATA } from './showcase-token';\nimport { IShowcaseItem } from './models';\n\n@Component({\n selector: 'showcase',\n templateUrl: './showcase.html',\n styleUrls: [ './showcase.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ShowcaseItem,\n ],\n})\nexport class Showcase{\n private readonly _data = signal<IShowcaseItem[]>(inject(SHOWCASE_DATA));\n\n protected readonly items = computed(() => {\n const items = this._data();\n const activeTag = this.activeTag();\n return activeTag ? items.filter(item => item.tags?.includes(activeTag)) : items;\n });\n\n protected readonly tags = computed(() => {\n return this._data().reduce((result, item) => {\n item.tags?.forEach(tag => result.add(tag));\n return result;\n }, new Set<string>());\n });\n\n protected readonly activeTag = signal<string | null>(null);\n\n protected tagClick(tag: string | null): void {\n this.activeTag.update((x) => x === tag ? null : tag);\n }\n}\n","<div class=\"filters-panel\">\n @for (tag of tags(); track tag) {\n <span class=\"f-badge tip\" (click)=\"tagClick(tag)\" [class.info]=\"activeTag() === tag\">{{ tag }}</span>\n }\n</div>\n<div class=\"showcase-list\">\n @for (item of items(); track item.imageUrl) {\n <showcase-item [model]=\"item\"/>\n }\n</div>\n\n","import { IDocumentationConfiguration } from '../../../documentation-page';\nimport { IShowcaseItem } from './models';\n\nexport function provideShowcase(showcaseItems: IShowcaseItem[]): Partial<IDocumentationConfiguration> {\n return {\n showcaseItems,\n };\n}\n\n","import { DynamicComponentsStore } from './dynamic-components.store';\nimport { PreviewGroupService } from './components';\nimport { RenderDynamicComponent, RenderExternalComponent, RenderInternalComponents } from './features';\n\nexport const DYNAMIC_COMPONENTS_MODULE_PROVIDERS = [\n DynamicComponentsStore,\n\n PreviewGroupService,\n\n RenderDynamicComponent,\n\n RenderExternalComponent,\n\n RenderInternalComponents,\n];\n","export class ActivateTocByHashRequest {\n public static readonly requestToken = Symbol('ActivateTocByHashRequest');\n\n constructor(\n public hash: string | undefined,\n ) {\n }\n}\n","import { ActivateTocByHashRequest } from './activate-toc-by-hash-request';\nimport { inject, Injectable } from '@angular/core';\nimport { IExecution, MExecution } from '../../../../../mediatr';\nimport { DocumentationStore } from '../../../../services';\n\n@Injectable()\n@MExecution(ActivateTocByHashRequest)\nexport class ActivateTocByHash implements IExecution<ActivateTocByHashRequest, void>{\n\n private readonly _dataProvider = inject(DocumentationStore);\n\n public handle(payload: ActivateTocByHashRequest): void {\n this._dataProvider.tocData.update((data) => ({\n ...data,\n flat: data.flat.map((x) => ({\n ...x,\n isActive: x.hash === payload.hash,\n })),\n }));\n }\n}\n","export class CalculateTableOfContentRequest {\n public static readonly requestToken = Symbol('CalculateTableOfContentRequest');\n\n constructor(\n public readonly hostElement: 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","export class CalculateAbsoluteTopToContainerRequest {\n public static readonly requestToken = Symbol('CalculateAbsoluteTopToContainerRequest');\n\n constructor(\n public element: HTMLElement,\n ) {\n }\n}\n","import { CalculateAbsoluteTopToContainerRequest } from './calculate-absolute-top-to-container-request';\nimport { inject, Injectable } from '@angular/core';\nimport { SCROLLABLE_CONTAINER } from '../../../index';\nimport { IExecution, MExecution } from '../../../../../mediatr';\n\n@Injectable()\n@MExecution(CalculateAbsoluteTopToContainerRequest)\nexport class CalculateAbsoluteTopToContainer\n implements IExecution<CalculateAbsoluteTopToContainerRequest, number> {\n\n private readonly _scrollableContainer = inject(SCROLLABLE_CONTAINER);\n\n public handle(request: CalculateAbsoluteTopToContainerRequest): 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 { CalculateAbsoluteTopToContainerRequest } from '../calculate-absolute-top-to-container';\nimport { inject, Injectable } from '@angular/core';\nimport {\n ActivateTocByHashRequest,\n SCROLLABLE_CONTAINER,\n} from '../../../index';\nimport { DocumentationStore } from '../../../../services';\nimport { DOCUMENT_ELEMENT, WINDOW } from '../../../../../common';\nimport { IExecution, Mediatr } from '../../../../../mediatr';\n\n@Injectable()\nexport class CalculateHashFromScrollPosition\n implements IExecution<void, void> {\n\n private readonly _docElement = inject(DOCUMENT_ELEMENT);\n private readonly _window = inject(WINDOW);\n private readonly _provider = inject(DocumentationStore);\n private readonly _scrollableContainer = inject(SCROLLABLE_CONTAINER);\n private readonly _mediatr = inject(Mediatr);\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._mediatr.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._window\n .getComputedStyle(this._docElement)\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._calculateAbsoluteTopToContainer(x.element),\n };\n }).filter((x) => !Number.isNaN(x.top));\n }\n\n private _calculateAbsoluteTopToContainer(element: HTMLElement): number {\n return this._mediatr.execute(new CalculateAbsoluteTopToContainerRequest(element));\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\ninterface IHasTopItem {\n hash: string;\n top: number;\n}\n","import { CalculateTableOfContentRequest } from './calculate-table-of-content-request';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { DocumentationStore } from '../../../../services';\nimport { ITableOfContentItem, TableOfContentData } from '../../models';\nimport { IExecution, MExecution } from '../../../../../mediatr';\nimport {\n CalculateHashFromScrollPosition,\n} from '../calculate-hash-from-scroll-position';\n\n@Injectable()\n@MExecution(CalculateTableOfContentRequest)\nexport class CalculateTableOfContent implements IExecution<CalculateTableOfContentRequest, void>{\n\n private readonly _dataProvider = inject(DocumentationStore);\n private readonly _injector = inject(Injector);\n\n public handle(request: CalculateTableOfContentRequest): void {\n const flat: ITableOfContentItem[] = [];\n const tree: ITableOfContentItem[] = [];\n const stack: ITableOfContentItem[] = [];\n\n this._getNavigationSelectors(request.hostElement, this._dataProvider.getTableOfContent()?.range).forEach((element) => {\n const tocItem = this._createItem(element);\n this._insertItemIntoTree(tocItem, tree, stack);\n flat.push(tocItem);\n });\n\n this._dataProvider.tocData.set(new TableOfContentData(flat, tree));\n this._injector.get(CalculateHashFromScrollPosition).handle();\n }\n\n private _getNavigationSelectors(fMarkdownPage: HTMLElement, tocRange?: {\n start: number,\n end: number\n }): HTMLElement[] {\n if (!tocRange || tocRange.start < 1 || tocRange.end > 6) {\n tocRange = { start: 2, 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: `#${CSS.escape(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 ScrollToElementInContainerRequest {\n public static readonly requestToken = Symbol('ScrollToElementInContainerRequest');\n\n constructor(public hash: string) {\n }\n}\n","import { ScrollToElementInContainerRequest } from './scroll-to-element-in-container-request';\nimport { inject, Injectable } from '@angular/core';\nimport { SCROLLABLE_CONTAINER } from '../../../index';\nimport { IExecution, MExecution } from '../../../../../mediatr';\nimport { DOCUMENT_ELEMENT, WINDOW } from '../../../../../common';\n\n@Injectable()\n@MExecution(ScrollToElementInContainerRequest)\nexport class ScrollToElementInContainer implements IExecution<ScrollToElementInContainerRequest, void> {\n\n private readonly _scrollableContainer = inject(SCROLLABLE_CONTAINER);\n private readonly _window = inject(WINDOW);\n private readonly _docElement = inject(DOCUMENT_ELEMENT);\n\n public handle(payload: ScrollToElementInContainerRequest): void {\n const container = this._scrollableContainer.htmlElement;\n container._ignoreProgrammatic = true;\n\n this._scrollableContainer.htmlElement.scrollTo({\n top: this._getScrollTo(this._getScrollToElement(payload.hash)) - this._getHeaderHeight(),\n behavior: 'smooth',\n });\n }\n\n private _getHeaderHeight(): number {\n return parseInt(this._window\n .getComputedStyle(this._docElement)\n .getPropertyValue('--header-height'), 10,\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 {\n ChangeDetectionStrategy,\n Component, input,\n} from '@angular/core';\nimport { ITableOfContentItem } from '../models';\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","import {\n ActivateTocByHash,\n CalculateAbsoluteTopToContainer,\n CalculateHashFromScrollPosition,\n CalculateTableOfContent,\n ScrollToElementInContainer,\n} from './features';\n\nexport const TABLE_OF_CONTENT_MODULE_PROVIDERS = [\n ActivateTocByHash,\n CalculateTableOfContent,\n ScrollToElementInContainer,\n CalculateAbsoluteTopToContainer,\n CalculateHashFromScrollPosition,\n];\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n untracked,\n} from '@angular/core';\nimport { TableOfContentItemsComponent } from './table-of-content-items';\nimport { DocumentationStore } from '../../services';\nimport { WINDOW } from '../../../common';\nimport { Mediatr } from '../../../mediatr';\nimport { ActivateTocByHashRequest, ScrollToElementInContainerRequest } from './features';\n\n@Component({\n selector: 'table-of-content',\n styleUrls: ['./table-of-content.scss'],\n templateUrl: './table-of-content.html',\n standalone: true,\n imports: [TableOfContentItemsComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableOfContent {\n\n private readonly _hostElement = inject(ElementRef<HTMLElement>).nativeElement;\n private readonly _dataProvider = inject(DocumentationStore);\n private readonly _window = inject(WINDOW);\n private readonly _mediatr = inject(Mediatr);\n\n protected readonly tocData = computed(() => this._dataProvider.tocData());\n\n protected readonly activeMarkerPosition = computed(() => {\n const index = this.tocData()?.flat.findIndex((x) => x.isActive) || 0;\n return untracked(() => this._getActiveMarkerPosition(index));\n });\n protected readonly title = inject(DocumentationStore).getTableOfContent()!.title;\n\n private _getActiveMarkerPosition(activeIndex: number): number {\n const itemHeight = this._getToCItemHeight(this._hostElement);\n return (activeIndex + 1) * itemHeight + itemHeight / 4;\n }\n\n private _getToCItemHeight(element: HTMLElement): number {\n return parseInt(this._window.getComputedStyle(element).getPropertyValue('--on-page-navigation-item-height'));\n }\n\n @HostListener('click', ['$event'])\n protected _click(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._mediatr.execute(new ActivateTocByHashRequest(hash));\n this._mediatr.execute(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","import { InjectionToken } from '@angular/core';\n\nexport const SCROLLABLE_CONTAINER = new InjectionToken<IScrollableContainer>('SCROLLABLE_CONTAINER');\n\nexport interface IScrollableContainer {\n\n htmlElement: HTMLElement & { _ignoreProgrammatic?: boolean };\n}\n\n\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n forwardRef,\n inject,\n Injector,\n OnInit,\n} from '@angular/core';\nimport { IScrollableContainer, SCROLLABLE_CONTAINER } from './models';\nimport { debounceTime, fromEvent, startWith } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n CalculateHashFromScrollPosition,\n TABLE_OF_CONTENT_MODULE_PROVIDERS,\n TableOfContent,\n} from '../table-of-content';\nimport { Mediatr } from '../../../mediatr';\nimport { DYNAMIC_COMPONENTS_MODULE_PROVIDERS } from '../../../dynamic-components';\nimport { MarkdownService } from '../markdown-renderer';\nimport { filter } from 'rxjs/operators';\nimport { DOCUMENTATION_CONFIGURATION } from '../../domain';\n\n@Component({\n selector: 'scrollable-container',\n templateUrl: './scrollable-container.html',\n styleUrls: ['./scrollable-container.scss'],\n standalone: true,\n providers: [\n {\n provide: SCROLLABLE_CONTAINER,\n useExisting: forwardRef(() => ScrollableContainer),\n },\n Mediatr,\n ...DYNAMIC_COMPONENTS_MODULE_PROVIDERS,\n ...TABLE_OF_CONTENT_MODULE_PROVIDERS,\n MarkdownService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TableOfContent,\n ],\n})\nexport class ScrollableContainer implements OnInit, IScrollableContainer {\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _injector = inject(Injector);\n private readonly _markdown = inject(MarkdownService);\n protected readonly tableOfContent = inject(DOCUMENTATION_CONFIGURATION).tableOfContent;\n protected readonly canShowTableOfContent = computed(() => {\n return !!this.tableOfContent && !this._markdown.pageLayout().hideTableOfContent;\n });\n\n public readonly htmlElement = inject(ElementRef<HTMLElement>).nativeElement;\n\n public ngOnInit(): void {\n fromEvent<Event>(this.htmlElement, 'scroll', { passive: true })\n .pipe(\n debounceTime(100),\n startWith<Event | null>(null),\n filter((event: Event | null) => {\n const target = event?.target as IScrollableTarget | null;\n const ignoreProgrammatic = target?._ignoreProgrammatic ?? false;\n (this.htmlElement as IScrollableTarget)._ignoreProgrammatic = false;\n return !ignoreProgrammatic;\n }),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => this._calculateHashAndActivate());\n }\n\n private _calculateHashAndActivate(): void {\n this._injector.get(CalculateHashFromScrollPosition).handle();\n }\n}\n\ninterface IScrollableTarget extends EventTarget {\n _ignoreProgrammatic?: boolean;\n}\n","<ng-content></ng-content>\n@if (canShowTableOfContent()) {\n <table-of-content />\n}\n\n\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n HostListener,\n inject,\n Injector,\n input,\n OnDestroy,\n OnInit,\n untracked,\n ViewContainerRef,\n} from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\nimport { DynamicComponentsStore } from '../../services';\nimport { HandleNavigationLinksHandler, HandleNavigationLinksRequest } from '../../domain';\nimport { IS_BROWSER_PLATFORM, WINDOW } from '../../../common';\nimport { MarkdownFooter } from './markdown-footer';\nimport { Mediatr } from '../../../mediatr';\nimport { RenderInternalComponentsRequest } from '../../../dynamic-components';\nimport { CalculateTableOfContentRequest } from '../table-of-content';\nimport { SCROLLABLE_CONTAINER } from '../scrollable-container';\nimport type { IMarkdownOriginData } from './utils';\n\n@Component({\n selector: 'markdown-renderer',\n templateUrl: './markdown-renderer.html',\n styleUrls: ['./markdown-renderer.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MarkdownFooter],\n host: {\n class: 'm-render',\n },\n})\nexport class MarkdownRenderer implements OnInit, OnDestroy {\n public readonly value = input.required<SafeHtml | undefined>();\n public readonly origin = input<IMarkdownOriginData | null>(null);\n\n private readonly _hostElement = inject(ElementRef).nativeElement;\n private readonly _router = inject(Router);\n private readonly _injector = inject(Injector);\n private readonly _isBrowser = inject(IS_BROWSER_PLATFORM);\n private readonly _window = inject(WINDOW)\n private readonly _dynamicComponents = inject(DynamicComponentsStore);\n private readonly _mediatr = inject(Mediatr);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _scrollableContainer = inject(SCROLLABLE_CONTAINER, { optional: true });\n\n public ngOnInit(): void {\n this._setupValueEffect();\n }\n\n private _setupValueEffect(): void {\n effect(\n onCleanup => {\n const html = this.value();\n if (!this._isBrowser || html == null) return;\n\n this._resetScroll();\n\n const ref = this._schedulePostRenderWork();\n onCleanup(() => ref.destroy());\n },\n { injector: this._injector },\n );\n }\n\n private _resetScroll(): void {\n this._scrollableContainer?.htmlElement?.scrollTo({ top: 0, left: 0 });\n }\n\n private _schedulePostRenderWork() {\n return afterNextRender(() => {\n return untracked(() => {\n this._renderDynamicComponents();\n this._recalculateToc();\n });\n }, { injector: this._injector });\n }\n\n private _renderDynamicComponents(): void {\n this._mediatr.execute(\n new RenderInternalComponentsRequest(this._hostElement, this._viewContainerRef),\n );\n }\n\n private _recalculateToc(): void {\n this._mediatr.execute(\n new CalculateTableOfContentRequest(this._hostElement),\n );\n }\n\n @HostListener('click', ['$event'])\n protected _onDocumentClick(event: MouseEvent): void {\n new HandleNavigationLinksHandler().handle(\n new HandleNavigationLinksRequest(event, this._window, this._router),\n );\n }\n\n public ngOnDestroy(): void {\n this._dynamicComponents.dispose();\n }\n}\n","<div [innerHTML]=\"value()\"></div>\n@if (origin(); as pageOrigin) {\n <aside class=\"origin-link\" role=\"note\">\n <span class=\"origin-link-icon\" aria-hidden=\"true\"></span>\n <div class=\"origin-link-content\">\n <span class=\"origin-link-label\">{{ pageOrigin.label }}</span>\n <a class=\"origin-link-url\"\n [href]=\"pageOrigin.url\"\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\">{{ pageOrigin.url }}</a>\n </div>\n </aside>\n}\n@if (value()) {\n <markdown-footer />\n}\n","import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { distinctUntilChanged, map, of, startWith, switchMap } from 'rxjs';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { catchError, filter, tap } from 'rxjs/operators';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { DocumentationStore } from '../../services';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MarkdownRenderer, MarkdownService } from '../markdown-renderer';\nimport { FMetaService } from '../../analytics';\n\n@Component({\n selector: 'markdown-router',\n templateUrl: './markdown-router.html',\n styleUrls: ['./markdown-router.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'ngSkipHydration': '',\n '[class.empty-navigation]': 'emptyNavigation',\n },\n imports: [\n MarkdownRenderer,\n ],\n})\nexport class MarkdownRouter {\n private readonly _router = inject(Router);\n private readonly _activatedRoute = inject(ActivatedRoute);\n private readonly _markdown = inject(MarkdownService);\n private readonly _dataProvider = inject(DocumentationStore);\n private readonly _metaService = inject(FMetaService, { optional: true });\n\n protected readonly emptyNavigation = !this._dataProvider.getNavigation().length;\n protected readonly pageOrigin = this._markdown.pageOrigin;\n protected readonly shouldExpandContent = computed(() => {\n const layout = this._markdown.pageLayout();\n return layout.hideTableOfContent && layout.expandContentWithoutTableOfContent;\n });\n\n private readonly _path$ = this._router.events.pipe(\n startWith(null),\n filter((e): e is NavigationEnd | null => e === null || e instanceof NavigationEnd),\n map(() => this._activatedRoute.snapshot.url.map(u => u.path).join('/')),\n distinctUntilChanged(),\n );\n\n protected readonly html = toSignal<SafeHtml | undefined>(\n this._path$.pipe(\n switchMap(path => {\n const url = this._dataProvider.getMarkdownUrl(path);\n return this._markdown.parseUrl(url).pipe(\n catchError(err => {\n console.error('[MarkdownRouter] parse error:', err, { path, url });\n return of<SafeHtml | undefined>(undefined); // или return EMPTY;\n }),\n tap(() => this._metaService?.applyMarkdownSeo(this._markdown.pageSeo())),\n );\n }),\n ),\n { initialValue: undefined },\n );\n}\n","<markdown-renderer [value]=\"html()\"\n [origin]=\"pageOrigin()\"\n [class.empty-navigation]=\"emptyNavigation\"\n [class.expand-no-toc]=\"shouldExpandContent()\"/>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport {\n F_PREVIEW_NAVIGATION_PROVIDER,\n HeaderComponent,\n IToggleNavigationComponent, MEDIA_LINKS_PROVIDER,\n NavigationPanelComponent,\n ScrollableContainer,\n TOGGLE_NAVIGATION_COMPONENT,\n} from './components';\nimport { DocumentationStore } from './services';\nimport {\n HEADER_CONFIGURATION_PROVIDER, IS_BROWSER_PLATFORM,\n PopoverService,\n ThemeService,\n} from '../common';\nimport { FMetaService } from './analytics';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { CookiePopup } from '../analytics/cookie-popup/cookie-popup';\nimport { GTagService } from '../analytics';\nimport { EXTERNAL_COMPONENT_PROVIDER, SHOWCASE_DATA } from '../dynamic-components';\n\n@Component({\n selector: 'documentation',\n templateUrl: './documentation.html',\n styleUrls: ['./documentation.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: MEDIA_LINKS_PROVIDER,\n deps: [DocumentationStore],\n useFactory: (store: DocumentationStore) => store.getMediaLinks(),\n },\n {\n provide: HEADER_CONFIGURATION_PROVIDER,\n deps: [DocumentationStore],\n useFactory: (store: DocumentationStore) => store.getHeader(),\n },\n {\n provide: TOGGLE_NAVIGATION_COMPONENT,\n useExisting: Documentation,\n },\n {\n provide: EXTERNAL_COMPONENT_PROVIDER,\n deps: [DocumentationStore],\n useFactory: (store: DocumentationStore) => store.getComponents(),\n },\n {\n provide: SHOWCASE_DATA,\n deps: [DocumentationStore],\n useFactory: (store: DocumentationStore) => store.getShowcaseItems(),\n },\n ],\n imports: [\n NavigationPanelComponent,\n ScrollableContainer,\n RouterOutlet,\n HeaderComponent,\n CookiePopup,\n ],\n})\nexport class Documentation 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 private readonly _gTagService = inject(GTagService, { optional: true });\n private readonly _themeService = inject(ThemeService, { optional: true });\n\n protected readonly emptyNavigation = !inject(DocumentationStore).getNavigation().length;\n\n protected readonly isBrowser = inject(IS_BROWSER_PLATFORM);\n\n public ngOnInit() {\n if (!this.isBrowser) {\n return;\n }\n this._themeService?.initialize();\n this._gTagService?.initialize();\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","@if (!emptyNavigation) {\n <f-navigation-panel [class.visible]=\"isNavigationVisible()\"/>\n <div class=\"f-backdrop\" [class.visible]=\"isNavigationVisible()\" (click)=\"onToggleNavigation(false)\"></div>\n}\n\n<scrollable-container>\n <f-header [class.empty-navigation]=\"emptyNavigation\"/>\n <router-outlet/>\n</scrollable-container>\n\n@if (popover()) {\n <div class=\"popover\">{{ popover() }}</div>\n}\n@defer (when isBrowser) {\n <cookie-popup/>\n}\n","import { Routes } from '@angular/router';\n\nexport const DOCUMENTATION_ROUTES: Routes = [\n {\n path: '',\n loadComponent: () => import('./index').then(m => m.Documentation),\n children: [\n {\n path: '**',\n loadComponent: () => import('./components/markdown-router').then(m => m.MarkdownRouter),\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';\n\n@Injectable()\nexport class HomeStore {\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","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 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://m-render.foblex.com/\" 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 { ThemeButtonComponent } from '../../../theme';\nimport { FBrandLinkComponent } from '../../../shared';\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 FBrandLinkComponent,\n ThemeButtonComponent,\n ],\n})\nexport class FHomePageHeaderComponent {\n protected logo = inject(HomeStore).getLogo();\n protected title = inject(HomeStore).getTitle();\n}\n","<div class=\"content\">\n <f-brand-link class=\"logo-link\" [title]=\"title\" [logo]=\"logo\" [logoAlt]=\"title + ' Logo'\" />\n\n <div class=\"flex-space\"></div>\n <button theme-button aria-label=\"Change theme\"></button>\n</div>\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,\n Component,\n ComponentRef,\n inject,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { HomeStore } from './services';\nimport {\n FHomePageFeaturesComponent,\n FHomePageFooterComponent,\n FHomePageHeaderComponent,\n FHomePageHeroComponent,\n FHomePageMembershipsComponent,\n} from './components';\nimport { IS_BROWSER_PLATFORM, ThemeService } from '../common';\nimport { CookiePopup } from '../analytics/cookie-popup/cookie-popup';\nimport { GTagService } from '../analytics';\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 imports: [\n FHomePageFooterComponent,\n FHomePageHeaderComponent,\n FHomePageFeaturesComponent,\n FHomePageHeroComponent,\n FHomePageMembershipsComponent,\n CookiePopup,\n ],\n})\nexport class HomeRootComponent implements AfterViewInit, OnInit {\n private readonly _environment = inject(HomeStore);\n private readonly _gTagService = inject(GTagService, { optional: true });\n private readonly _themeService = inject(ThemeService, { optional: true });\n\n protected readonly isBrowser = inject(IS_BROWSER_PLATFORM);\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 ngOnInit(): void {\n if (!this.isBrowser) {\n return;\n }\n this._themeService?.initialize();\n this._gTagService?.initialize();\n }\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<unknown>): 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\n@defer (when isBrowser) {\n <cookie-popup/>\n}\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":["filter","uniqueId","coerceComponentHeight"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"foblex-m-render.mjs","sources":["../../../../libs/m-render/src/lib/analytics/g-tag.service.ts","../../../../libs/m-render/src/lib/analytics/provide-g-tag.ts","../../../../libs/m-render/src/lib/common/domain/configuration-providers/provide-header.ts","../../../../libs/m-render/src/lib/common/domain/configuration-providers/provide-header-search.ts","../../../../libs/m-render/src/lib/common/domain/configuration-providers/provide-header-search-algolia.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/services/popover.service.ts","../../../../libs/m-render/src/lib/theme/theme.service.ts","../../../../libs/m-render/src/lib/common/utils/copy-to-clipboard.ts","../../../../libs/m-render/src/lib/common/utils/document-element.ts","../../../../libs/m-render/src/lib/common/utils/window.ts","../../../../libs/m-render/src/lib/common/utils/local-storage.ts","../../../../libs/m-render/src/lib/common/utils/location.ts","../../../../libs/m-render/src/lib/common/utils/platform.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-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-table-of-content.ts","../../../../libs/m-render/src/lib/documentation-page/analytics/common-services/f-meta.service.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/hamburger-button/domain/i-toggle-navigation-component.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/hamburger-button/hamburger-button.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/hamburger-button/hamburger-button.html","../../../../libs/m-render/src/lib/documentation-page/components/header/models/header-menu-base.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/inline-menu/inline-menu.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/inline-menu/inline-menu.html","../../../../libs/m-render/src/lib/theme/theme-button/theme-button.component.ts","../../../../libs/m-render/src/lib/theme/theme-button/theme-button.component.html","../../../../libs/m-render/src/lib/theme/provide-theme.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/media-links/domain/i-media-links-provider.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/media-links/media-links.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/media-links/media-links.html","../../../../libs/m-render/src/lib/documentation-page/components/header/components/dropdown-menu/dropdown-menu.ts","../../../../libs/m-render/src/lib/documentation-page/components/header/components/dropdown-menu/dropdown-menu.html","../../../../libs/m-render/src/lib/documentation-page/utils/calculate-markdown-url.ts","../../../../libs/m-render/src/lib/documentation-page/services/documentation.store.ts","../../../../libs/m-render/src/lib/dynamic-components/dynamic-components.store.ts","../../../../libs/m-render/src/lib/shared/components/f-brand-link/f-brand-link.component.ts","../../../../libs/m-render/src/lib/shared/components/f-brand-link/f-brand-link.component.html","../../../../libs/m-render/src/lib/shared/components/f-search-button/f-search-button.component.ts","../../../../libs/m-render/src/lib/shared/components/f-search-button/f-search-button.component.html","../../../../libs/m-render/src/lib/shared/components/f-checkbox/f-checkbox.component.ts","../../../../libs/m-render/src/lib/shared/components/f-checkbox/f-checkbox.component.html","../../../../libs/m-render/src/lib/shared/components/f-radio-button/f-radio-button.component.ts","../../../../libs/m-render/src/lib/shared/components/f-radio-button/f-radio-button.component.html","../../../../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-renderer/markdown-footer/domain/get-previous-next-page-navigation/get-previous-next-page-navigation.response.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-footer/domain/get-previous-next-page-navigation/get-previous-next-page-navigation.handler.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-footer/domain/get-previous-next-page-navigation/get-previous-next-page-navigation.request.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-footer/footer-navigation-button/footer-navigation-button.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-footer/footer-navigation-button/footer-navigation-button.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-footer/markdown-footer.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-footer/markdown-footer.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/domain/e-markdown-container-type.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/domain/e-parsed-container-type.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/domain/i-preview-navigation-service.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/domain/i-markdown-frontmatter.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/markdown.service.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/utils.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/parse-alerts.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/parse-grouped-code-items.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/parse-single-code-item.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/parse-angular-example-with-code-links.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/parse-preview-group.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/utils/parse-showcase.ts","../../../../libs/m-render/src/lib/mediatr/mediatr.ts","../../../../libs/m-render/src/lib/mediatr/m-execution.ts","../../../../libs/m-render/src/lib/dynamic-components/components/external-component/example-view.token.ts","../../../../libs/m-render/src/lib/dynamic-components/components/external-component/utils/coerce-component-height.ts","../../../../libs/m-render/src/lib/dynamic-components/components/external-component/utils/parse-iframe-url.ts","../../../../libs/m-render/src/lib/dynamic-components/components/external-component/utils/parse-component-tag.ts","../../../../libs/m-render/src/lib/dynamic-components/features/render-dynamic-component/render-dynamic-component-request.ts","../../../../libs/m-render/src/lib/dynamic-components/features/render-dynamic-component/render-dynamic-component.ts","../../../../libs/m-render/src/lib/dynamic-components/features/render-external-component/render-external-component-request.ts","../../../../libs/m-render/src/lib/dynamic-components/providers/external-component.provider.ts","../../../../libs/m-render/src/lib/dynamic-components/features/render-external-component/render-external-component.ts","../../../../libs/m-render/src/lib/dynamic-components/features/render-internal-components/render-internal-components-request.ts","../../../../libs/m-render/src/lib/dynamic-components/features/render-internal-components/render-internal-components.ts","../../../../libs/m-render/src/lib/dynamic-components/components/external-component/external-component.ts","../../../../libs/m-render/src/lib/dynamic-components/components/external-component/external-component.html","../../../../libs/m-render/src/lib/highlight/code-view/highlight.ts","../../../../libs/m-render/src/lib/highlight/code-view/code-view.ts","../../../../libs/m-render/src/lib/highlight/code-view/code-view.html","../../../../libs/m-render/src/lib/highlight/mark-code-focused-blocks.post-processor.ts","../../../../libs/m-render/src/lib/highlight/theme.ts","../../../../libs/m-render/src/lib/highlight/languages.ts","../../../../libs/m-render/src/lib/highlight/highlight.service.ts","../../../../libs/m-render/src/lib/dynamic-components/components/code-group/code-group.ts","../../../../libs/m-render/src/lib/dynamic-components/components/code-group/code-group.html","../../../../libs/m-render/src/lib/dynamic-components/components/preview-group/components/preview-card/preview-card-base.ts","../../../../libs/m-render/src/lib/dynamic-components/components/preview-group/preview-group.service.ts","../../../../libs/m-render/src/lib/dynamic-components/components/preview-group/components/preview-card/preview-card.ts","../../../../libs/m-render/src/lib/dynamic-components/components/preview-group/components/preview-card/preview-card.html","../../../../libs/m-render/src/lib/dynamic-components/components/preview-group/components/preview-action-bar/preview-action-bar.ts","../../../../libs/m-render/src/lib/dynamic-components/components/preview-group/components/preview-action-bar/preview-action-bar.html","../../../../libs/m-render/src/lib/dynamic-components/components/showcase/components/showcase-item/showcase-item.ts","../../../../libs/m-render/src/lib/dynamic-components/components/showcase/components/showcase-item/showcase-item.html","../../../../libs/m-render/src/lib/dynamic-components/components/showcase/showcase-token.ts","../../../../libs/m-render/src/lib/dynamic-components/components/showcase/showcase.ts","../../../../libs/m-render/src/lib/dynamic-components/components/showcase/showcase.html","../../../../libs/m-render/src/lib/dynamic-components/components/showcase/provide-showcase.ts","../../../../libs/m-render/src/lib/dynamic-components/module-providers.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/activate-toc-by-hash/activate-toc-by-hash-request.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/activate-toc-by-hash/activate-toc-by-hash.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/calculate-table-of-content/calculate-table-of-content-request.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/models/table-of-content-data.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/calculate-absolute-top-to-container/calculate-absolute-top-to-container-request.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/calculate-absolute-top-to-container/calculate-absolute-top-to-container.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/calculate-hash-from-scroll-position/calculate-hash-from-scroll-position.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/calculate-table-of-content/calculate-table-of-content.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/scroll-to-element-in-container/scroll-to-element-in-container-request.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/features/scroll-to-element-in-container/scroll-to-element-in-container.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/table-of-content-items/table-of-content-items.component.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/table-of-content-items/table-of-content-items.component.html","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/module-providers.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/table-of-content.ts","../../../../libs/m-render/src/lib/documentation-page/components/table-of-content/table-of-content.html","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/models/i-scrollable-container.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/scrollable-container.ts","../../../../libs/m-render/src/lib/documentation-page/components/scrollable-container/scrollable-container.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-renderer.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-renderer/markdown-renderer.html","../../../../libs/m-render/src/lib/documentation-page/components/markdown-router/markdown-router.ts","../../../../libs/m-render/src/lib/documentation-page/components/markdown-router/markdown-router.html","../../../../libs/m-render/src/lib/documentation-page/documentation.ts","../../../../libs/m-render/src/lib/documentation-page/documentation.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 { inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ConsentState, GTAG_CONFIG, GTagConfig } from './provide-g-tag';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\n@Injectable()\nexport class GTagService {\n private readonly _config = inject<GTagConfig>(GTAG_CONFIG);\n private readonly _document = inject(DOCUMENT);\n private readonly _router = inject(Router, { optional: true });\n private _initialized = false;\n private _configuredIds = new Set<string>();\n\n public initialize(): void {\n if (this._initialized) return;\n\n const win = this._document.defaultView as (Window & {\n dataLayer?: unknown[];\n gtag?: (...args: unknown[]) => void;\n __gtagLoaded__?: boolean;\n }) | null;\n\n if (!win) {\n return;\n }\n\n win.dataLayer = win.dataLayer || [];\n win.gtag = win.gtag || ((...args: unknown[]) => win.dataLayer!.push(args));\n\n const initialConsent: ConsentState = this._config.initialConsent ?? 'denied';\n this._setConsent(initialConsent);\n\n if (!win.__gtagLoaded__) {\n this._appendScript(this._config.id);\n win.__gtagLoaded__ = true;\n }\n\n win.gtag('js', new Date());\n\n this._configAll([this._config.id, ...(this._config.extraIds ?? [])]);\n\n if (this._config.autoPageview && this._router) {\n this._router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe(() => {\n this.pageview();\n });\n }\n\n this._initialized = true;\n }\n\n public updateConsent(granted: boolean): void {\n this._setConsent(granted ? 'granted' : 'denied');\n }\n\n public event(action: string, params?: Record<string, unknown>): void {\n const win = this._document.defaultView as any;\n win?.gtag?.('event', action, params || {});\n }\n\n public pageview(path?: string): void {\n const win = this._document.defaultView as any;\n const p = path ?? this._document.location?.pathname ?? '/';\n for (const id of this._getConfiguredIds()) {\n win?.gtag?.('config', id, { page_path: p });\n }\n }\n\n public adsConversion(sendTo: string, params?: Record<string, unknown>): void {\n this.event('conversion', { send_to: sendTo, ...params });\n }\n\n private _setConsent(state: ConsentState): void {\n const win = this._document.defaultView as any;\n const base = {\n ad_user_data: state,\n ad_personalization: state,\n ad_storage: state,\n analytics_storage: state,\n };\n if (state === 'denied') {\n win?.gtag?.('consent', 'default', { ...base, wait_for_update: 500 });\n } else {\n win?.gtag?.('consent', 'update', base);\n }\n }\n\n private _appendScript(id: string): void {\n if (this._document.querySelector('#gtag-script')) return;\n const s = this._document.createElement('script');\n s.id = 'gtag-script';\n s.async = true;\n s.src = `https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(id)}`;\n this._document.head.appendChild(s);\n }\n\n private _configAll(ids: string[]): void {\n const win = this._document.defaultView as any;\n ids.filter(Boolean).forEach(id => {\n if (this._configuredIds.has(id)) return;\n win?.gtag?.('config', id);\n this._configuredIds.add(id);\n });\n }\n\n private _getConfiguredIds(): string[] {\n return Array.from(this._configuredIds.values());\n }\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { GTagService } from './g-tag.service';\n\nexport function provideGTag(config: GTagConfig): Provider[] {\n return [\n {\n provide: GTAG_CONFIG,\n useValue: config,\n },\n {\n provide: GTagService,\n useClass: GTagService,\n },\n ];\n}\n\nexport interface GTagConfig {\n id: string;\n extraIds?: string[];\n autoPageview?: boolean;\n initialConsent?: ConsentState;\n}\n\nexport const GTAG_CONFIG = new InjectionToken<GTagConfig>('GTAG_CONFIG');\n\nexport type ConsentState = 'granted' | 'denied';\n","import { IHeaderMenuLink, IMediaLink } from '../../../documentation-page';\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 search?: boolean;\n searchConfiguration?: IHeaderSearchConfiguration;\n\n navigation?: IHeaderMenuLink[];\n\n mediaLinks?: IMediaLink[];\n}\n\nexport interface IHasHeaderConfiguration {\n\n header?: IHeaderConfiguration;\n}\n\nexport interface IHeaderSearchConfiguration {\n appId: string;\n apiKey: string;\n indexName: string;\n placeholder?: string;\n insights?: boolean;\n searchParameters?: Record<string, unknown>;\n}\n","import { IHeaderConfiguration } from './provide-header';\n\nexport function provideHeaderSearch(search?: boolean): Partial<IHeaderConfiguration> {\n return {\n search,\n };\n}\n","import { IHeaderConfiguration, IHeaderSearchConfiguration } from './provide-header';\n\nexport function provideHeaderSearchAlgolia(configuration: IHeaderSearchConfiguration): Partial<IHeaderConfiguration> {\n return {\n search: true,\n searchConfiguration: configuration,\n };\n}\n","import { IHeaderConfiguration } from './provide-header';\nimport { IMediaLink } from '../../../documentation-page';\n\nexport function provideHeaderMediaLinks(mediaLinks: IMediaLink[]): Partial<IHeaderConfiguration> {\n return {\n mediaLinks,\n };\n}\n\n","import { IHeaderConfiguration } from './provide-header';\nimport { IHeaderMenuLink } from '../../../documentation-page';\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_PROVIDER = new InjectionToken<IHeaderConfiguration>('HEADER_CONFIGURATION_PROVIDER');\n\nexport interface IHeaderConfigurationStore {\n getHeader(): IHeaderConfiguration | undefined;\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 { DOCUMENT_ELEMENT, LOCAL_STORAGE, WINDOW } from '../common';\n\n@Injectable()\nexport class ThemeService {\n private readonly _localStorage = inject(LOCAL_STORAGE, { optional: true });\n private readonly _window = inject(WINDOW, { optional: true });\n private readonly _theme = new Subject<void>();\n private readonly _docElement = inject(DOCUMENT_ELEMENT);\n\n public get theme$(): Observable<void> {\n return this._theme.asObservable();\n }\n\n public initialize(): void {\n if (this.getPreferredTheme() === 'dark' && !this._isDocumentContainsDarkTheme()) {\n this._docElement.classList.add('dark');\n this._localStorage?.setItem('preferred-theme', 'dark');\n }\n }\n\n public updateTheme(): void {\n this._theme.next();\n }\n\n public getPreferredTheme(): string {\n return this._getItem('preferred-theme')\n || (this._matchMedia('(prefers-color-scheme: dark)')?.matches ? 'dark' : 'light');\n }\n\n private _getItem(key: string): string | null {\n return this._localStorage?.getItem?.(key) || null;\n }\n\n private _matchMedia(query: string): MediaQueryList {\n return this._window?.matchMedia?.(query) || { matches: false } as MediaQueryList;\n }\n\n private _isDocumentContainsDarkTheme(): boolean {\n return this._docElement.classList.contains('dark');\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","import { inject, InjectionToken } from '@angular/core';\n\nimport { DOCUMENT } from '@angular/common';\n\nexport const DOCUMENT_ELEMENT = new InjectionToken<HTMLElement>('DOCUMENT_ELEMENT', {\n factory: () => inject(DOCUMENT).documentElement,\n});\n","import { DOCUMENT } from '@angular/common';\nimport { inject, InjectionToken } from '@angular/core';\n\nexport const WINDOW = new InjectionToken<Window>('F_WINDOW', {\n factory: () => {\n const { defaultView } = inject(DOCUMENT);\n\n if (!defaultView) {\n throw new Error('Window is not available');\n }\n\n return defaultView;\n },\n});\n","import { inject, InjectionToken } from '@angular/core';\n\nimport { WINDOW } from './window';\n\nexport const LOCAL_STORAGE = new InjectionToken<Storage>('F_LOCAL_STORAGE', {\n factory: () => inject(WINDOW).localStorage,\n});\n","import { inject, InjectionToken } from '@angular/core';\n\nimport { WINDOW } from './window';\n\nexport const LOCATION = new InjectionToken<Location>('F_LOCATION', {\n factory: () => inject(WINDOW).location,\n});\n","import { inject, InjectionToken, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport const IS_BROWSER_PLATFORM = new InjectionToken<boolean>('IS_BROWSER_PLATFORM', {\n factory() {\n return isPlatformBrowser(inject(PLATFORM_ID));\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 readonly _document = inject(DOCUMENT);\n\n public setTitle(title: string): void {\n this._document.title = title || '';\n }\n\n public setDescription(description?: string | null): void {\n this.updateNameTag({ name: 'description', content: description || '' });\n }\n\n public setCanonical(url?: string | null): void {\n const normalizedUrl = (url || '').trim();\n const link = this._getCanonical();\n if (!normalizedUrl) {\n if (link) {\n link.remove();\n }\n return;\n }\n\n const canonicalLink: HTMLLinkElement = link || this._createElement<HTMLLinkElement>('link');\n canonicalLink.setAttribute('rel', 'canonical');\n canonicalLink.setAttribute('href', normalizedUrl);\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 this.updatePropertyTag(tag);\n }\n\n public updatePropertyTag(tag: IMetaTag): void {\n const normalizedContent = tag.content?.trim() || '';\n const meta = this._getPropertyTag(tag.property);\n if (!normalizedContent) {\n if (meta) {\n meta.remove();\n }\n return;\n }\n\n const targetMeta = meta || this._createElement<HTMLMetaElement>('meta');\n targetMeta.setAttribute('property', tag.property);\n targetMeta.setAttribute('content', normalizedContent);\n }\n\n public updateNameTag(tag: INameMetaTag): void {\n const normalizedContent = tag.content?.trim() || '';\n const meta = this._getNameTag(tag.name);\n if (!normalizedContent) {\n if (meta) {\n meta.remove();\n }\n return;\n }\n\n const targetMeta = meta || this._createElement<HTMLMetaElement>('meta');\n targetMeta.setAttribute('name', tag.name);\n targetMeta.setAttribute('content', normalizedContent);\n }\n\n private _getPropertyTag(property: string): HTMLMetaElement | null {\n return this._document.querySelector(`meta[property=\"${ property }\"]`) || null;\n }\n\n private _getNameTag(name: string): HTMLMetaElement | null {\n return this._document.querySelector(`meta[name=\"${ name }\"]`) || 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\nexport interface INameMetaTag {\n name: string;\n content: string;\n}\n","import { HandleNavigationLinksRequest } from './handle-navigation-links.request';\nimport { Router } from '@angular/router';\n\nexport class HandleNavigationLinksHandler {\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 window.open(href, '_blank')\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","import { Router } from '@angular/router';\n\nexport class HandleNavigationLinksRequest {\n constructor(\n public event: MouseEvent,\n public window: Window,\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 { IDynamicComponentItem } from '../../../dynamic-components';\n\nexport function defineLazyComponent(\n selector: string,\n loader: () => Promise<Record<string, unknown>>,\n): IDynamicComponentItem {\n return {\n selector,\n component: extractComponent(loader),\n };\n}\n\nexport function provideComponents(components: IDynamicComponentItem[]): 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 provideMeta(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 provideTableOfContent(tableOfContent: ITableOfContent | null = {\n title: 'In this article',\n range: { start: 2, end: 6 },\n}): Partial<IDocumentationConfiguration> {\n return {\n tableOfContent,\n };\n}\n","import { inject, Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter, map, Observable, startWith } from 'rxjs';\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';\nimport { LOCATION } from '../../../common';\nimport { ISeoOverrides } from './i-seo-overrides';\n\n@Injectable()\nexport class FMetaService {\n private readonly _location = inject(LOCATION);\n private readonly _router = inject(Router);\n private readonly _headTag = inject(FHeadTagService);\n private readonly _configuration = inject(DOCUMENTATION_CONFIGURATION);\n private _seoOverrides: ISeoOverrides | null = null;\n private _lastPath = '';\n\n public changes(): Observable<string> {\n return this._router.events.pipe(\n startWith(null),\n filter((e): e is NavigationEnd | null => e === null || e instanceof NavigationEnd),\n map(() => this._normalizeCurrentPath(this._router.url)),\n tap((currentUrl) => {\n if (this._lastPath !== currentUrl) {\n this._seoOverrides = null;\n this._lastPath = currentUrl;\n }\n this._updateMetaByUrl(currentUrl);\n }),\n );\n }\n\n public applyMarkdownSeo(overrides: ISeoOverrides | null | undefined): void {\n this._seoOverrides = overrides ? { ...overrides } : null;\n this._updateMetaByUrl(this._normalizeCurrentPath(this._router.url));\n }\n\n public dispose(): void {\n this._seoOverrides = null;\n this._lastPath = '';\n\n if (!this._configuration.meta) {\n return;\n }\n this._updateMetaTags(this._configuration.meta);\n }\n\n private _updateMetaByUrl(currentUrl: string): void {\n const defaultData = this._configuration.meta;\n if (!defaultData) {\n return;\n }\n\n const data = { ...defaultData };\n const item = this._findDocItemByUrl(this._findDocGroupByUrl(currentUrl), currentUrl);\n\n if (item) {\n data.title = `${item.pageTitle || item.text} | ${defaultData.app_name}`;\n data.url = this._buildAbsoluteUrl(currentUrl);\n data.canonical = item.canonical;\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\n if (!data.url) {\n data.url = this._buildAbsoluteUrl(currentUrl);\n }\n\n data.url = this._toAbsoluteUrl(data.url);\n if (data.image) {\n data.image = this._toAbsoluteUrl(data.image);\n }\n\n this._updateMetaTags(data);\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 _buildAbsoluteUrl(url: string): string {\n try {\n return new URL(url, this._location.origin).toString();\n } catch {\n return this._location.origin + url;\n }\n }\n\n private _toAbsoluteUrl(maybeRelative: string): string {\n try {\n return new URL(maybeRelative, this._location.origin).toString();\n } catch {\n return maybeRelative;\n }\n }\n\n private _updateMetaTags(item: IMetaData): void {\n const seo = this._seoOverrides || null;\n const title = seo?.title || item.title;\n const description = seo?.description || item.description;\n const url = this._toAbsoluteUrl(seo?.url || item.url);\n const canonical = this._toAbsoluteUrl(seo?.canonical || item.canonical || url);\n const type = seo?.og_type || seo?.type || item.type;\n const siteName = seo?.app_name || item.app_name;\n const locale = seo?.locale || item.locale;\n const image = this._toAbsoluteUrl(seo?.og_image || seo?.image || item.image);\n const imageType = seo?.image_type || item.image_type;\n const imageWidth = seo?.image_width || item.image_width;\n const imageHeight = seo?.image_height || item.image_height;\n const keywords = seo?.keywords || item.keywords || '';\n const robots = this._resolveRobots(item.robots, seo);\n\n const twitterCard = seo?.twitter_card || item.twitter_card || 'summary_large_image';\n const twitterSite = item.twitter_site || '';\n const twitterCreator = item.twitter_creator || '';\n const twitterTitle = seo?.twitter_title || seo?.og_title || title;\n const twitterDescription = seo?.twitter_description || seo?.og_description || description;\n const twitterImage = this._toAbsoluteUrl(seo?.twitter_image || image);\n\n this._headTag.setTitle(title);\n this._headTag.setDescription(description);\n this._headTag.setCanonical(canonical);\n\n this._headTag.updateTag({ property: 'og:url', content: url });\n this._headTag.updateTag({ property: 'og:type', content: type });\n this._headTag.updateTag({ property: 'og:title', content: seo?.og_title || title });\n this._headTag.updateTag({ property: 'og:site_name', content: siteName });\n this._headTag.updateTag({ property: 'og:locale', content: locale });\n this._headTag.updateTag({ property: 'og:description', content: seo?.og_description || description });\n this._headTag.updateTag({ property: 'og:image', content: image });\n this._headTag.updateTag({ property: 'og:image:secure_url', content: image });\n this._headTag.updateTag({ property: 'og:image:type', content: imageType });\n this._headTag.updateTag({ property: 'og:image:width', content: imageWidth ? imageWidth.toString() : '' });\n this._headTag.updateTag({ property: 'og:image:height', content: imageHeight ? imageHeight.toString() : '' });\n\n this._headTag.updateNameTag({ name: 'keywords', content: keywords });\n this._headTag.updateNameTag({ name: 'robots', content: robots });\n this._headTag.updateNameTag({ name: 'twitter:card', content: twitterCard });\n this._headTag.updateNameTag({ name: 'twitter:site', content: twitterSite });\n this._headTag.updateNameTag({ name: 'twitter:creator', content: twitterCreator });\n this._headTag.updateNameTag({ name: 'twitter:title', content: twitterTitle });\n this._headTag.updateNameTag({ name: 'twitter:description', content: twitterDescription });\n this._headTag.updateNameTag({ name: 'twitter:image', content: twitterImage });\n }\n\n private _resolveRobots(defaultRobots: string | undefined, seo: ISeoOverrides | null): string {\n if (seo?.robots) {\n return seo.robots;\n }\n\n const hasDirectiveOverride = typeof seo?.noindex === 'boolean' || typeof seo?.nofollow === 'boolean';\n if (!hasDirectiveOverride) {\n return defaultRobots || '';\n }\n\n const indexValue = seo?.noindex ? 'noindex' : 'index';\n const followValue = seo?.nofollow ? 'nofollow' : 'follow';\n const defaultTokens = (defaultRobots || '')\n .split(',')\n .map((x) => x.trim())\n .filter((x) => x && ![ 'index', 'noindex', 'follow', 'nofollow' ].includes(x.toLowerCase()));\n\n return [ indexValue, followValue, ...defaultTokens ].join(', ');\n }\n\n private _normalizeCurrentPath(url: string): string {\n return (url || '').split('#')[0].split('?')[0];\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.html',\n styleUrls: [ './hamburger-button.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(click)': '_onShowNavigation()',\n },\n})\nexport class HamburgerButton {\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 { computed, inject } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { HEADER_CONFIGURATION_PROVIDER } from '../../../../common';\n\nexport class HeaderMenuBase {\n private readonly _router = inject(Router);\n private readonly _baseNav = inject(HEADER_CONFIGURATION_PROVIDER)?.navigation ?? [];\n\n private readonly _url = toSignal(\n this._router.events.pipe(\n startWith(null),\n filter((e): e is NavigationEnd | null => e === null || e instanceof NavigationEnd),\n map(() => this._router.url),\n distinctUntilChanged(),\n ),\n { initialValue: this._router.url },\n );\n\n public readonly navigation = computed(() => {\n const url = this._cleanPath(this._url());\n return this._baseNav.map(item => ({\n ...item,\n isActive: this._isActive(url, this._cleanPath(item.active ?? '')),\n }));\n });\n\n private _cleanPath(url: string): string {\n return url.split('#')[0].split('?')[0].replace(/\\/{2,}/g, '/').replace(/\\/$/, '');\n }\n\n private _isActive(currentPath: string, itemLink: string): boolean {\n if (!itemLink) return false;\n return currentPath === itemLink || currentPath.startsWith(itemLink + '/');\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { HeaderMenuBase } from '../../models';\n\n@Component({\n selector: 'inline-menu',\n templateUrl: './inline-menu.html',\n styleUrls: [ './inline-menu.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RouterLink,\n ],\n})\nexport class InlineMenu extends HeaderMenuBase {\n}\n\n","@for (item of navigation(); track item.link) {\n <a [routerLink]=\"item.link\" [class.active]=\"item.isActive\">\n <span>{{ item.text }}</span>\n </a>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostListener, inject, OnInit,\n Renderer2,\n} from '@angular/core';\nimport { ThemeService } from '../theme.service';\nimport { DOCUMENT_ELEMENT, IS_BROWSER_PLATFORM, LOCAL_STORAGE } from '../../common';\n\n@Component({\n selector: 'button[theme-button]',\n templateUrl: './theme-button.component.html',\n styleUrls: [ './theme-button.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ThemeButtonComponent implements OnInit {\n private readonly _renderer = inject(Renderer2);\n private readonly _themeService = inject(ThemeService, { optional: true });\n private readonly _localStorage = inject(LOCAL_STORAGE);\n private readonly _documentElement = inject(DOCUMENT_ELEMENT);\n private readonly _isBrowser = inject(IS_BROWSER_PLATFORM);\n\n public ngOnInit(): void {\n if(!this._themeService && this._isBrowser) {\n throw new Error('Theme is not provided. Please provide it using provideTheme() provider in your application config.');\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._themeService?.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._themeService?.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 { Provider } from '@angular/core';\nimport { ThemeService } from './theme.service';\n\nexport function provideTheme(): Provider[] {\n return [\n {\n provide: ThemeService,\n useClass: ThemeService,\n },\n ];\n}\n","import { InjectionToken } from '@angular/core';\nimport { IMediaLink } from './i-media-link';\n\nexport interface IMediaLinksProvider {\n\n getMediaLinks(): IMediaLink[];\n}\n\nexport const MEDIA_LINKS_PROVIDER = new InjectionToken<IMediaLink[]>('MEDIA_LINKS_PROVIDER');\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MEDIA_LINKS_PROVIDER } from './domain';\n\n@Component({\n selector: 'media-links',\n templateUrl: './media-links.html',\n styleUrls: [ './media-links.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MediaLinks {\n\n protected links = inject(MEDIA_LINKS_PROVIDER, { optional: true });\n}\n","@for (link of links; track link.link) {\n <a href=\"{{ link.link }}\" class=\"header-link\">\n <div class=\"f-icon {{ link.icon }}\"></div>\n </a>\n}\n","import { ChangeDetectionStrategy, Component, inject, OnDestroy, signal } from '@angular/core';\nimport { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedPosition, Overlay } from '@angular/cdk/overlay';\nimport { ThemeButtonComponent } from '../../../../../theme';\nimport { HeaderMenuBase } from '../../models';\nimport { RouterLink } from '@angular/router';\nimport { MediaLinks } from '../media-links';\n\n@Component({\n selector: 'dropdown-menu',\n templateUrl: './dropdown-menu.html',\n styleUrls: ['./dropdown-menu.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CdkConnectedOverlay,\n CdkOverlayOrigin,\n ThemeButtonComponent,\n RouterLink,\n MediaLinks,\n ],\n})\nexport class DropdownMenu extends HeaderMenuBase implements OnDestroy {\n protected readonly isOpen = signal(false);\n protected readonly scrollStrategy = inject(Overlay).scrollStrategies.block();\n protected readonly positions: 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\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=\"f-icon more-horizontal\"></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 @if (navigation().length) {\n <div class=\"navigation-wrapper\">\n @for (item of navigation(); track item.link) {\n <a [routerLink]=\"item.link\" [class.active]=\"item.isActive\"><span>{{ item.text }}</span></a>\n }\n </div>\n }\n <div class=\"appearance\">\n <span>Appearance</span>\n <button theme-button></button>\n </div>\n <div class=\"social-links\">\n <media-links/>\n </div>\n\n </div>\n</ng-template>\n\n","import { INavigationGroup } from '../components';\n\nexport function calculateMarkdownUrl(markdown: string, navigation: INavigationGroup[], docsDir: string, notFoundMd = ''): string {\n if (!markdown || !_isMarkdownExist(markdown, navigation) && navigation.length) {\n return notFoundMd;\n }\n let url = 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\nfunction _isMarkdownExist(id: string, navigation: INavigationGroup[]): boolean {\n return !!navigation.find((x) =>\n x.items.some((i: { link: string; }) => i.link === id),\n );\n}\n","import { inject, Injectable, signal } from '@angular/core';\nimport {\n IHeaderMenuLink,\n IMarkdownFooterNavigation,\n IMediaLink,\n IMediaLinksProvider,\n INavigationGroup,\n ITableOfContent,\n TableOfContentData,\n} from '../components';\nimport { IHeaderConfiguration, IHeaderConfigurationStore } from '../../common';\nimport { DOCUMENTATION_CONFIGURATION } from '../domain';\nimport { IDynamicComponentItem, IShowcaseItem } from '../../dynamic-components';\nimport { calculateMarkdownUrl } from '../utils';\n\n@Injectable()\nexport class DocumentationStore\n implements IMediaLinksProvider, IHeaderConfigurationStore {\n private readonly _configuration = inject(DOCUMENTATION_CONFIGURATION);\n\n public readonly tocData = signal<TableOfContentData>(new TableOfContentData([], []));\n\n public getMarkdownUrl(markdown: string): string {\n return calculateMarkdownUrl(\n markdown,\n (this._configuration.navigation || []),\n this._configuration.docsDir,\n this._configuration.notFoundMarkdown,\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 getComponents(): IDynamicComponentItem[] {\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 getMediaLinks(): IMediaLink[] {\n return this._configuration.header?.mediaLinks || [];\n }\n\n public getTableOfContent(): ITableOfContent | null {\n return this._configuration.tableOfContent;\n }\n\n public getHeader(): IHeaderConfiguration | undefined {\n return this._configuration.header;\n }\n\n public getShowcaseItems(): IShowcaseItem[] {\n return this._configuration.showcaseItems || [];\n }\n}\n","import { ComponentRef, Injectable } from '@angular/core';\nimport { IDynamicComponentInstance } from './models';\n\n@Injectable()\nexport class DynamicComponentsStore {\n private _components: ComponentRef<IDynamicComponentInstance>[] = [];\n\n public dispose(): void {\n this._components.forEach((ref) => ref.destroy());\n this._components = [];\n }\n\n public addComponent(reference: ComponentRef<IDynamicComponentInstance>, element?: HTMLElement): void {\n this._components.push(reference);\n\n this._assignInputs(reference, element);\n reference.instance?.initialize?.();\n }\n\n private _assignInputs(componentRef: ComponentRef<IDynamicComponentInstance>, element?: HTMLElement): void {\n const dataset = element?.dataset;\n if (!dataset) return;\n\n Object.entries(dataset).forEach(([key, rawValue]) => {\n const value = this._parseDatasetValue(rawValue);\n const member = componentRef.instance[key];\n\n if (member && typeof (member as any).set === 'function') {\n (member as { set(v: unknown): void }).set(value);\n } else {\n (componentRef.instance as any)[key] = value;\n }\n });\n }\n\n private _parseDatasetValue(rawValue?: string): string | undefined {\n let result: string | undefined = rawValue;\n if (result?.startsWith?.('{') || result?.startsWith?.('[')) {\n try {\n result = JSON.parse(result);\n // eslint-disable-next-line no-unused-vars,@typescript-eslint/no-unused-vars\n } catch (e) { /* empty */\n }\n }\n return result;\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n selector: 'f-brand-link',\n templateUrl: './f-brand-link.component.html',\n styleUrls: [ './f-brand-link.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ RouterLink ],\n})\nexport class FBrandLinkComponent {\n public readonly title = input.required<string>();\n public readonly logo = input.required<string>();\n public readonly ariaLabel = input<string>('Home');\n public readonly logoAlt = input<string>('logo');\n public readonly href = input<string>('');\n public readonly routerLink = input<string | readonly unknown[] | null>(null);\n}\n","@if (routerLink() !== null) {\n <a [routerLink]=\"routerLink()!\" class=\"brand-link\" [attr.aria-label]=\"ariaLabel()\">\n <img [src]=\"logo()\" class=\"logo\" [alt]=\"logoAlt()\" width=\"24\" height=\"24\"/>\n <span class=\"title\">{{ title() }}</span>\n </a>\n} @else {\n <a [href]=\"href()\" class=\"brand-link\" [attr.aria-label]=\"ariaLabel()\">\n <img [src]=\"logo()\" class=\"logo\" [alt]=\"logoAlt()\" width=\"24\" height=\"24\"/>\n <span class=\"title\">{{ title() }}</span>\n </a>\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n OnDestroy,\n viewChild,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { IHeaderSearchConfiguration, IS_BROWSER_PLATFORM } from '../../../common';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n selector: 'f-search-button',\n templateUrl: './f-search-button.component.html',\n styleUrls: ['./f-search-button.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RouterLink,\n ],\n})\nexport class FSearchButtonComponent implements AfterViewInit, OnDestroy {\n public readonly configuration = input<IHeaderSearchConfiguration | undefined>(undefined);\n\n private readonly _isBrowser = inject(IS_BROWSER_PLATFORM);\n private readonly _document = inject(DOCUMENT);\n private readonly _containerRef = viewChild<ElementRef<HTMLElement>>('searchContainer');\n\n private _instance: IDocSearchInstance | null = null;\n\n public async ngAfterViewInit(): Promise<void> {\n if (!this._isBrowser) return;\n\n const docsearch = await loadDocSearch(this._document);\n if (!docsearch) return;\n\n const config = this.configuration();\n if (!config) return;\n\n const container = this._containerRef()?.nativeElement;\n if (!container) return;\n\n this._instance = docsearch({\n container,\n appId: config.appId,\n apiKey: config.apiKey,\n indexName: config.indexName,\n placeholder: config.placeholder || 'Search docs',\n insights: config.insights ?? true,\n searchParameters: config.searchParameters,\n });\n }\n\n public ngOnDestroy(): void {\n this._instance?.destroy?.();\n this._instance = null;\n }\n}\n\ninterface IDocSearchInstance {\n destroy?: () => void;\n}\n\ninterface IDocSearchOptions {\n container: HTMLElement;\n appId: string;\n apiKey: string;\n indexName: string;\n placeholder?: string;\n insights?: boolean;\n searchParameters?: Record<string, unknown>;\n}\n\ntype DocSearchFactory = (options: IDocSearchOptions) => IDocSearchInstance;\n\nlet cachedDocSearchFactory: Promise<DocSearchFactory | null> | null = null;\n\nasync function loadDocSearch(documentRef: Document): Promise<DocSearchFactory | null> {\n if (cachedDocSearchFactory) {\n return cachedDocSearchFactory;\n }\n\n cachedDocSearchFactory = (async () => {\n await Promise.all([\n appendStyle(documentRef),\n appendScript(documentRef),\n ]);\n\n const docsearch = (documentRef.defaultView as Window & {\n docsearch?: DocSearchFactory;\n } | null)?.docsearch;\n\n return typeof docsearch === 'function' ? docsearch : null;\n })();\n\n return cachedDocSearchFactory;\n}\n\nfunction appendScript(documentRef: Document): Promise<void> {\n const existing = documentRef.getElementById(DOCSEARCH_SCRIPT_ID);\n if (existing) {\n return Promise.resolve();\n }\n\n return new Promise<void>((resolve, reject) => {\n const script = documentRef.createElement('script');\n script.id = DOCSEARCH_SCRIPT_ID;\n script.src = DOCSEARCH_SCRIPT_URL;\n script.async = true;\n script.onload = () => resolve();\n script.onerror = () => reject(new Error('Failed to load Algolia DocSearch script.'));\n documentRef.head.appendChild(script);\n });\n}\n\nfunction appendStyle(documentRef: Document): Promise<void> {\n const existing = documentRef.getElementById(DOCSEARCH_STYLE_ID);\n if (existing) {\n return Promise.resolve();\n }\n\n const link = documentRef.createElement('link');\n link.id = DOCSEARCH_STYLE_ID;\n link.rel = 'stylesheet';\n link.href = DOCSEARCH_STYLE_URL;\n documentRef.head.appendChild(link);\n return Promise.resolve();\n}\n\nconst DOCSEARCH_SCRIPT_ID = 'f-docsearch-script';\nconst DOCSEARCH_STYLE_ID = 'f-docsearch-style';\nconst DOCSEARCH_SCRIPT_URL = 'https://cdn.jsdelivr.net/npm/@docsearch/js@3/dist/umd/index.js';\nconst DOCSEARCH_STYLE_URL = 'https://cdn.jsdelivr.net/npm/@docsearch/css@3/dist/style.css';\n","@if (configuration()) {\n <div #searchContainer class=\"search-container\"></div>\n} @else {\n <a class=\"f-icon search fallback-search\" [routerLink]=\"[]\" fragment=\"search\" aria-label=\"Search\"></a>\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild,\n} from '@angular/core';\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'f-checkbox',\n templateUrl: './f-checkbox.component.html',\n styleUrls: [ './f-checkbox.component.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.f-checkbox-checked]': 'checked',\n },\n})\nexport class FCheckboxComponent {\n\n @Input()\n public id = `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 public name = input<string | null>(null);\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 [attr.name]=\"name()\"\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 {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n NgZone,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\nimport { HamburgerButton } from './components/hamburger-button';\nimport { DocumentationStore } from '../../services';\nimport { ThemeButtonComponent } from '../../../theme';\nimport { InlineMenu } from './components/inline-menu';\nimport { MediaLinks } from './components/media-links';\nimport { DropdownMenu } from './components/dropdown-menu';\nimport { HEADER_CONFIGURATION_PROVIDER } from '../../../common';\nimport { FBrandLinkComponent, FSearchButtonComponent } from '../../../shared';\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 HamburgerButton,\n FBrandLinkComponent,\n FSearchButtonComponent,\n ThemeButtonComponent,\n InlineMenu,\n DropdownMenu,\n MediaLinks,\n ],\n})\nexport class HeaderComponent implements AfterViewInit, OnDestroy {\n protected title = inject(DocumentationStore).getTitle();\n protected image = inject(DocumentationStore).getLogo();\n protected config = inject(HEADER_CONFIGURATION_PROVIDER);\n\n protected readonly emptyNavigation = !inject(DocumentationStore).getNavigation().length;\n\n private readonly _zone = inject(NgZone);\n\n private readonly _containerRef = viewChild.required<ElementRef<HTMLElement>>('container');\n private readonly _targetRef = viewChild.required<ElementRef<HTMLElement>>('target');\n\n protected readonly overflowed = signal(false);\n protected readonly initialized = signal(false);\n\n private _rafId: number | null = null;\n private _roContainer?: ResizeObserver;\n private _roTarget?: ResizeObserver;\n\n public ngAfterViewInit(): void {\n if (typeof ResizeObserver === 'undefined') {\n this._checkOverflow(true);\n return;\n }\n this._initObservers();\n this._checkOverflow(true); // первый замер синхронно\n }\n\n private _initObservers(): void {\n const container = this._containerRef().nativeElement;\n const target = this._targetRef().nativeElement;\n\n this._zone.runOutsideAngular(() => {\n const cb = () => this._scheduleCheck();\n this._roContainer = new ResizeObserver(cb);\n this._roTarget = new ResizeObserver(cb);\n\n this._roContainer.observe(container);\n this._roTarget.observe(target);\n });\n }\n\n private _scheduleCheck(): void {\n if (this._rafId != null) return;\n this._rafId = requestAnimationFrame(() => {\n this._rafId = null;\n this._checkOverflow(false);\n });\n }\n\n private _checkOverflow(isFirst: boolean): void {\n const container = this._containerRef().nativeElement;\n const target = this._targetRef().nativeElement;\n if (!container || !target) return;\n\n const next = target.scrollWidth >= container.clientWidth;\n\n if (next !== this.overflowed() || !this.initialized()) {\n this._zone.run(() => {\n this.overflowed.set(next);\n if (isFirst) this.initialized.set(true);\n });\n }\n }\n\n public ngOnDestroy(): void {\n this._roContainer?.disconnect();\n this._roTarget?.disconnect();\n if (this._rafId != null) cancelAnimationFrame(this._rafId);\n }\n}\n","@if (emptyNavigation) {\n <f-brand-link class=\"empty-navigation-title\"\n [routerLink]=\"''\"\n [title]=\"title\"\n [logo]=\"image\" />\n} @else {\n <div class=\"portal-title\">\n <button hamburger-button></button>\n <div class=\"title text-ellipsis\">{{ title }}</div>\n </div>\n}\n\n@if (config.search) {\n <f-search-button [configuration]=\"config.searchConfiguration\"></f-search-button>\n <div class=\"divider search-divider\"></div>\n}\n\n<div class=\"collapsable-row\" #container>\n <div #target class=\"target\" [class.hidden]=\"initialized() && overflowed()\">\n @if (config.navigation) {\n <inline-menu />\n <div class=\"divider\"></div>\n }\n\n <button theme-button></button>\n <div class=\"divider\"></div>\n <media-links />\n </div>\n\n <div class=\"fallback\" [class.hidden]=\"!initialized() || !overflowed()\">\n <dropdown-menu />\n </div>\n</div>\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 { INavigationItem } from './domain';\nimport { TOGGLE_NAVIGATION_COMPONENT } from '../header';\nimport { DocumentationStore } from '../../services';\nimport { HandleNavigationLinksHandler, HandleNavigationLinksRequest } from '../../domain';\nimport { WINDOW } from '../../../common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 _window = inject(WINDOW);\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 = this._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 _deepClone<T>(value: T): T {\n return JSON.parse(JSON.stringify(value));\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._window, 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\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 { 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\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, Input,\n} from '@angular/core';\nimport { IMarkdownFooterLink } from '../domain';\n\n@Component({\n selector: 'a[footer-navigation-button]',\n templateUrl: './footer-navigation-button.html',\n styleUrls: [ './footer-navigation-button.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class FooterNavigationButton {\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, computed,\n HostListener,\n inject,\n} from '@angular/core';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport {\n GetPreviousNextPageNavigationHandler,\n GetPreviousNextPageNavigationRequest,\n IMarkdownFooterLink,\n} from './domain';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { DocumentationStore } from '../../../services';\nimport { HandleNavigationLinksHandler, HandleNavigationLinksRequest } from '../../../domain';\nimport { WINDOW } from '../../../../common';\nimport { FooterNavigationButton } from './footer-navigation-button';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'markdown-footer',\n templateUrl: './markdown-footer.html',\n styleUrls: ['./markdown-footer.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FooterNavigationButton,\n ],\n standalone: true,\n})\nexport class MarkdownFooter {\n\n private readonly _provider = inject(DocumentationStore);\n private readonly _router = inject(Router);\n private readonly _activatedRoute = inject(ActivatedRoute);\n private readonly _window = inject(WINDOW);\n\n protected readonly navigation = this._provider.getFooterNavigation();\n\n private readonly _url = toSignal(this._router.events.pipe(\n startWith(null),\n filter((e): e is NavigationEnd | null => e === null || e instanceof NavigationEnd),\n map(() => this._router.url),\n distinctUntilChanged(),\n ), { initialValue: this._router.url });\n\n private readonly _currentLink = computed(() => {\n this._url();\n return this._activatedRoute.snapshot.url.map(s => s.path).join('/');\n });\n\n private readonly _prefix = computed(() => {\n const url = this._url();\n const idx = url.lastIndexOf('/');\n return idx > 0 ? url.substring(0, idx) : '';\n });\n\n protected readonly editLink = computed<string | undefined>(() => {\n const nav = this.navigation;\n if (!nav.editLink?.pattern) return undefined;\n return nav.editLink.pattern + this._currentLink() + '.md';\n });\n\n protected readonly previousLink = computed<IMarkdownFooterLink | undefined>(() => {\n const prevNext = new GetPreviousNextPageNavigationHandler(this._provider)\n .handle(new GetPreviousNextPageNavigationRequest(this._currentLink()));\n return this._normalizeLink(prevNext.previousLink);\n });\n\n protected readonly nextLink = computed<IMarkdownFooterLink | undefined>(() => {\n const prevNext = new GetPreviousNextPageNavigationHandler(this._provider)\n .handle(new GetPreviousNextPageNavigationRequest(this._currentLink()));\n return this._normalizeLink(prevNext.nextLink);\n });\n\n private _normalizeLink(item?: IMarkdownFooterLink): IMarkdownFooterLink | undefined {\n if (!item?.link) return item;\n if (this._isExternal(item.link)) return item;\n\n const prefix = this._prefix();\n const joined = (prefix ? `${prefix}/${item.link}` : item.link)\n .replace(/\\/{2,}/g, '/');\n\n return { ...item, link: joined.startsWith('/') ? joined : `/${joined}` };\n }\n\n private _isExternal(href: string): boolean {\n return /^(?:[a-z]+:)?\\/\\//i.test(href) || href.startsWith('www.');\n }\n\n @HostListener('click', ['$event'])\n protected _click(event: MouseEvent): void {\n new HandleNavigationLinksHandler().handle(\n new HandleNavigationLinksRequest(event, this._window, this._router),\n );\n }\n}\n","@let eLink = editLink();\n@let pLink = previousLink();\n@let nLink = nextLink();\n\n@if (eLink) {\n <a class=\"footer-edit-link f-text-link f-text-link-primary\" [href]=\"eLink\">\n <span class=\"edit-link-icon f-icon edit\"></span>\n {{ navigation.editLink?.text || 'Edit this page on GitHub' }}\n </a>\n}\n\n@if (pLink || nLink) {\n <nav class=\"footer-navigation\">\n @if (pLink) {\n <a footer-navigation-button\n [href]=\"pLink.link\"\n [description]=\"navigation.previous\"\n [link]=\"pLink\">\n </a>\n }\n @if (nLink) {\n <a footer-navigation-button class=\"next\"\n [href]=\"nLink.link\"\n [description]=\"navigation.next\"\n [link]=\"nLink\">\n </a>\n }\n </nav>\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 SHOWCASE = 'showcase',\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 { ISeoOverrides } from '../../../../analytics';\n\nexport interface IMarkdownPageLayoutOptions {\n hideTableOfContent: boolean;\n expandContentWithoutTableOfContent: boolean;\n}\n\nexport interface IMarkdownOriginData {\n url: string;\n label: string;\n}\n\nexport interface IMarkdownFrontMatterData {\n layout: IMarkdownPageLayoutOptions;\n seo: ISeoOverrides | null;\n origin: IMarkdownOriginData | null;\n}\n\nexport interface IMarkdownFrontMatterParseResult {\n markdown: string;\n data: IMarkdownFrontMatterData;\n}\n\nexport const DEFAULT_MARKDOWN_PAGE_LAYOUT_OPTIONS: IMarkdownPageLayoutOptions = {\n hideTableOfContent: false,\n expandContentWithoutTableOfContent: false,\n};\n","import { inject, Injectable, signal } from '@angular/core';\nimport { Observable, of, switchMap } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport MarkdownIt from 'markdown-it';\n\nimport {\n DEFAULT_MARKDOWN_PAGE_LAYOUT_OPTIONS,\n EMarkdownContainerType,\n IMarkdownFrontMatterData,\n IMarkdownFrontMatterParseResult,\n IMarkdownOriginData,\n IMarkdownPageLayoutOptions,\n ParseAlerts,\n ParseAngularExampleWithCodeLinks,\n ParseGroupedCodeItems,\n ParsePreviewGroup, ParseShowcase,\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';\nimport { ISeoOverrides } from '../../../analytics';\n\ninterface IMarkdownOriginDraft {\n url: string | null;\n label: string | null;\n}\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, { optional: true });\n private readonly _pageLayout = signal<IMarkdownPageLayoutOptions>({ ...DEFAULT_MARKDOWN_PAGE_LAYOUT_OPTIONS });\n private readonly _pageSeo = signal<ISeoOverrides | null>(null);\n private readonly _pageOrigin = signal<IMarkdownOriginData | null>(null);\n\n public readonly pageLayout = this._pageLayout.asReadonly();\n public readonly pageSeo = this._pageSeo.asReadonly();\n public readonly pageOrigin = this._pageOrigin.asReadonly();\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_SUCCESS, this._markdown))\n .use(...new ParseGroupedCodeItems().render())\n .use(...new ParsePreviewGroup(this._provider?.getNavigation() || []).render())\n .use(...new ParseShowcase().render())\n .use(...new ParseAngularExampleWithCodeLinks().render());\n }\n\n public parseUrl(src: string): Observable<SafeHtml> {\n this._resetPageContext();\n\n return this._httpClient.get(src, { responseType: 'text' }).pipe(take(1), catchError(() => of(''))).pipe(\n switchMap((text) => of(this._renderMarkdownWithPageContext(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 public parseText(value: string): Observable<SafeHtml> {\n this._resetPageContext();\n\n return of(this._renderMarkdownWithPageContext(value)).pipe(\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\\b[^>]*>/g, (tag) => {\n const tagWithClasses = this._appendLinkClasses(tag);\n const hrefMatch = tagWithClasses.match(/\\bhref=([\"'])([^\"']*)\\1/);\n if (!hrefMatch) {\n return tagWithClasses;\n }\n\n const href = hrefMatch[2];\n if (this._isExternalLink(href)) {\n return tagWithClasses;\n }\n\n let newHref = href.substring(0);\n if (!href.startsWith('./')) {\n newHref = href.startsWith('/') ? `${prefix}${href}` : `${prefix}/${href}`;\n }\n\n return tagWithClasses.replace(hrefMatch[0], `href=${hrefMatch[1]}${newHref}${hrefMatch[1]}`);\n });\n }\n\n private _appendLinkClasses(tag: string): string {\n const classes = [ 'f-text-link', 'f-text-link-primary' ];\n const classMatch = tag.match(/\\bclass=([\"'])([^\"']*)\\1/);\n\n if (!classMatch) {\n return tag.replace('<a', `<a class=\"${classes.join(' ')}\"`);\n }\n\n const existingClasses = classMatch[2].split(/\\s+/).filter(Boolean);\n const mergedClasses = [\n ...existingClasses,\n ...classes.filter((className) => !existingClasses.includes(className)),\n ];\n\n return tag.replace(classMatch[0], `class=${classMatch[1]}${mergedClasses.join(' ')}${classMatch[1]}`);\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 private _renderMarkdownWithPageContext(markdown: string): string {\n const result = this._parseFrontMatter(markdown);\n this._applyPageContext(result.data);\n\n return this._markdown.render(result.markdown);\n }\n\n private _parseFrontMatter(markdown: string): IMarkdownFrontMatterParseResult {\n const source = (markdown || '').replace(/^\\uFEFF/, '');\n const match = source.match(/^---\\r?\\n([\\s\\S]*?)\\r?\\n---(?:\\r?\\n|$)/);\n\n const defaults = this._getDefaultFrontMatterData();\n if (!match || !match[1].includes(':')) {\n return {\n markdown: source,\n data: defaults,\n };\n }\n\n const rawFrontMatter = match[1];\n const parsedData = this._parseFrontMatterData(rawFrontMatter);\n\n return {\n markdown: source.slice(match[0].length),\n data: parsedData,\n };\n }\n\n private _parseFrontMatterData(rawFrontMatter: string): IMarkdownFrontMatterData {\n const layout: IMarkdownPageLayoutOptions = { ...DEFAULT_MARKDOWN_PAGE_LAYOUT_OPTIONS };\n const seo: ISeoOverrides = {};\n const origin: IMarkdownOriginDraft = { url: null, label: null };\n\n rawFrontMatter\n .split(/\\r?\\n/)\n .forEach((line) => this._parseFrontMatterLine(line, layout, seo, origin));\n\n return {\n layout,\n seo: Object.keys(seo).length ? seo : null,\n origin: this._resolveOrigin(origin),\n };\n }\n\n private _parseFrontMatterLine(\n line: string,\n layout: IMarkdownPageLayoutOptions,\n seo: ISeoOverrides,\n origin: IMarkdownOriginDraft,\n ): void {\n const normalizedLine = line.trim();\n if (!normalizedLine || normalizedLine.startsWith('#')) {\n return;\n }\n\n const separatorIndex = normalizedLine.indexOf(':');\n if (separatorIndex < 0) {\n return;\n }\n\n const key = normalizedLine.slice(0, separatorIndex).trim().toLowerCase();\n const value = this._normalizeFrontMatterValue(normalizedLine.slice(separatorIndex + 1));\n if (!key || !value) {\n return;\n }\n\n const boolValue = this._parseBoolean(value);\n this._applyLayoutKey(key, boolValue, layout);\n this._applySeoKey(key, value, boolValue, seo);\n this._applyOriginKey(key, value, origin);\n }\n\n private _normalizeFrontMatterValue(value: string): string {\n const trimmed = value.trim();\n if ((trimmed.startsWith('\"') && trimmed.endsWith('\"')) || (trimmed.startsWith('\\'') && trimmed.endsWith('\\''))) {\n return trimmed.slice(1, -1).trim();\n }\n return trimmed;\n }\n\n private _parseBoolean(value: string): boolean | null {\n const normalized = value.toLowerCase();\n if ([ 'true', '1', 'yes', 'on' ].includes(normalized)) {\n return true;\n }\n\n if ([ 'false', '0', 'no', 'off' ].includes(normalized)) {\n return false;\n }\n\n return null;\n }\n\n private _applyLayoutKey(key: string, boolValue: boolean | null, layout: IMarkdownPageLayoutOptions): void {\n if (boolValue === null) {\n return;\n }\n\n switch (key) {\n case 'toc':\n case 'showtoc':\n case 'tableofcontent':\n case 'table_of_content':\n layout.hideTableOfContent = !boolValue;\n return;\n case 'hidetoc':\n case 'hide_toc':\n layout.hideTableOfContent = boolValue;\n return;\n case 'widecontent':\n case 'expandcontent':\n case 'expandwithouttoc':\n case 'expand_no_toc':\n case 'widetableofcontentgap':\n layout.expandContentWithoutTableOfContent = boolValue;\n return;\n }\n }\n\n private _applySeoKey(key: string, value: string, boolValue: boolean | null, seo: ISeoOverrides): void {\n switch (key) {\n case 'title':\n case 'seotitle':\n seo.title = value;\n return;\n case 'description':\n case 'seodescription':\n seo.description = value;\n return;\n case 'canonical':\n case 'seocanonical':\n seo.canonical = value;\n return;\n case 'keywords':\n case 'seokeywords':\n seo.keywords = value;\n return;\n case 'robots':\n case 'seorobots':\n seo.robots = value;\n return;\n case 'image':\n case 'seoimage':\n seo.image = value;\n return;\n case 'imagetype':\n case 'image_type':\n seo.image_type = value;\n return;\n case 'imagewidth':\n case 'image_width':\n seo.image_width = this._parseNumberOrDefault(value, seo.image_width);\n return;\n case 'imageheight':\n case 'image_height':\n seo.image_height = this._parseNumberOrDefault(value, seo.image_height);\n return;\n case 'ogtype':\n case 'og_type':\n seo.og_type = value;\n return;\n case 'ogtitle':\n case 'og_title':\n seo.og_title = value;\n return;\n case 'ogdescription':\n case 'og_description':\n seo.og_description = value;\n return;\n case 'ogimage':\n case 'og_image':\n seo.og_image = value;\n return;\n case 'twittercard':\n case 'twitter_card':\n seo.twitter_card = value;\n return;\n case 'twittertitle':\n case 'twitter_title':\n seo.twitter_title = value;\n return;\n case 'twitterdescription':\n case 'twitter_description':\n seo.twitter_description = value;\n return;\n case 'twitterimage':\n case 'twitter_image':\n seo.twitter_image = value;\n return;\n case 'noindex':\n if (boolValue !== null) {\n seo.noindex = boolValue;\n }\n return;\n case 'nofollow':\n if (boolValue !== null) {\n seo.nofollow = boolValue;\n }\n return;\n }\n }\n\n private _applyOriginKey(key: string, value: string, origin: IMarkdownOriginDraft): void {\n switch (key) {\n case 'origin':\n case 'originurl':\n case 'origin_url':\n case 'original':\n case 'originalurl':\n case 'original_url':\n case 'source':\n case 'sourceurl':\n case 'source_url': {\n const normalizedUrl = this._normalizeOriginUrl(value);\n if (normalizedUrl) {\n origin.url = normalizedUrl;\n }\n return;\n }\n case 'originlabel':\n case 'origin_label':\n case 'origintext':\n case 'origin_text':\n case 'sourcelabel':\n case 'source_label':\n origin.label = value;\n return;\n }\n }\n\n private _normalizeOriginUrl(value: string): string | null {\n const trimmed = value.trim();\n if (!trimmed) {\n return null;\n }\n\n const candidate = /^https?:\\/\\//i.test(trimmed) ? trimmed : `https://${ trimmed }`;\n\n try {\n const url = new URL(candidate);\n if (![ 'http:', 'https:' ].includes(url.protocol)) {\n return null;\n }\n return url.toString();\n } catch {\n return null;\n }\n }\n\n private _resolveOrigin(origin: IMarkdownOriginDraft): IMarkdownOriginData | null {\n if (!origin.url) {\n return null;\n }\n\n return {\n url: origin.url,\n label: origin.label || this._getOriginLabel(origin.url),\n };\n }\n\n private _getOriginLabel(originUrl: string): string {\n try {\n const hostname = new URL(originUrl).hostname.toLowerCase().replace(/^www\\./, '');\n if (hostname === 'medium.com' || hostname.endsWith('.medium.com')) {\n return 'Originally published on Medium';\n }\n\n return `Originally published on ${ hostname }`;\n } catch {\n return 'Originally published externally';\n }\n }\n\n private _parseNumberOrDefault(value: string, fallback: number | undefined): number | undefined {\n const numericValue = Number(value);\n if (!Number.isFinite(numericValue) || numericValue <= 0) {\n return fallback;\n }\n return numericValue;\n }\n\n private _applyPageContext(data: IMarkdownFrontMatterData): void {\n this._pageLayout.set({ ...data.layout });\n this._pageSeo.set(data.seo ? { ...data.seo } : null);\n this._pageOrigin.set(data.origin ? { ...data.origin } : null);\n }\n\n private _resetPageContext(): void {\n this._applyPageContext(this._getDefaultFrontMatterData());\n }\n\n private _getDefaultFrontMatterData(): IMarkdownFrontMatterData {\n return {\n layout: { ...DEFAULT_MARKDOWN_PAGE_LAYOUT_OPTIONS },\n seo: null,\n origin: null,\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, '"');\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(/\\[(.+?)\\]\\s*<<<\\s*(.+)/);\n if (!match) return null;\n\n const fileName = match[1].trim();\n let url = match[2].trim();\n\n const markdownLink = url.match(/^\\[[^\\]]+]\\((.+)\\)$/);\n if (markdownLink) {\n url = markdownLink[1].trim();\n }\n\n const angleWrapped = url.match(/^<(.+)>$/);\n if (angleWrapped) {\n url = angleWrapped[1].trim();\n }\n\n return url ? { fileName, url } : 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_-]+)/);\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 source = this._parseNgComponent(tokens[index]);\n const height = source?.height || 'auto';\n if (source) {\n result.push({\n tab: 'Example',\n value: source.value,\n type: EParsedContainerType.EXAMPLE,\n height,\n });\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*/, '').trim();\n const height = this._parseHeight(cleanedInput);\n\n const componentTag = cleanedInput.match(/<([a-zA-Z][a-zA-Z0-9-]*)(\\s[^>]*)?>\\s*<\\/\\1>/s)?.[0]?.trim();\n if (componentTag) {\n return {\n value: componentTag,\n height,\n };\n }\n\n const explicitUrl = cleanedInput.match(/\\[url\\]=[\"']([^\"']+)[\"']/)?.[1]?.trim();\n if (explicitUrl) {\n return {\n value: explicitUrl,\n height,\n };\n }\n\n const implicitUrl = cleanedInput\n .replace(/\\[height\\]=[\"'][^\"']*[\"']/g, '')\n .trim()\n .replace(/^[\"']|[\"']$/g, '');\n\n if (!implicitUrl || implicitUrl.includes('<')) return null;\n\n return {\n value: implicitUrl,\n height,\n };\n }\n\n private _parseHeight(input: string): string | number | undefined {\n const rawHeight = input.match(/\\[height\\]=[\"']([^\"']+)[\"']/)?.[1]?.trim();\n if (!rawHeight) return undefined;\n\n const numericHeight = Number(rawHeight);\n return Number.isFinite(numericHeight) ? numericHeight : rawHeight;\n }\n}\n","import { EMarkdownContainerType, IMarkdownItToken, IPreviewNavigationGroup } from './domain';\n\nimport container from 'markdown-it-container';\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 || g.id === 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 { EMarkdownContainerType, IMarkdownItToken } from './domain';\n\nimport container from 'markdown-it-container';\nimport { isOpeningToken } from './utils';\n\ntype ContainerArgs = [ typeof container, string, { render: any } ]\n\nexport class ParseShowcase {\n\n public render(): ContainerArgs {\n return [ container, EMarkdownContainerType.SHOWCASE, {\n render: (tokens: IMarkdownItToken[], index: number) => {\n if (isOpeningToken(tokens[index])) {\n return `<showcase></showcase>`;\n }\n return '';\n },\n } ];\n }\n}\n","import { inject, Injectable, Injector, Type } from '@angular/core';\nimport { IExecution } from './i-execution';\n\n@Injectable()\nexport class Mediatr {\n private readonly _injector = inject(Injector);\n\n private static _executions = new Map<symbol, Type<IExecution<any, any>>>();\n\n public static register<TRequest, TResponse>(\n type: any, handler: Type<IExecution<TRequest, TResponse>>,\n ): void {\n if (!type || !type.requestToken) {\n throw new Error('Type must have a requestToken static property');\n }\n Mediatr._executions.set(type.requestToken, handler);\n }\n\n public execute<TResponse>(request: any): TResponse {\n const token = request.constructor.requestToken;\n\n const handlerType = Mediatr._executions.get(token);\n if (!handlerType) {\n throw new Error(`No handler registered for token`, token);\n }\n\n const handler = this._injector.get(handlerType);\n return handler.handle(request);\n }\n}\n","import { IExecution } from './i-execution';\nimport { Mediatr } from './mediatr';\nimport { Type } from '@angular/core';\n\ntype Constructor<T = any> = new (...args: any[]) => T;\n\nexport function MExecution<TRequest, TResponse>(requestType: Type<TRequest>) {\n return function (constructor: Constructor<IExecution<TRequest, TResponse>>) {\n Mediatr.register(requestType, constructor);\n };\n}\n","import { computed, Injectable, InjectionToken, Signal, signal } from '@angular/core';\n\nexport interface IExampleView {\n readonly isFullscreen: Signal<boolean>;\n readonly isLoading: Signal<boolean>;\n\n showLoading(): void;\n hideLoading(): void;\n}\n\nexport const EXAMPLE_VIEW = new InjectionToken<IExampleView>('EXAMPLE_VIEW');\n\n@Injectable()\nexport class ExampleViewController implements IExampleView {\n private readonly _isFullscreen = signal(false);\n private readonly _loadingCount = signal(0);\n\n public readonly isFullscreen = this._isFullscreen.asReadonly();\n public readonly isLoading = computed(() => this._loadingCount() > 0);\n\n public showLoading(): void {\n this._loadingCount.update((value) => value + 1);\n }\n\n public hideLoading(): void {\n this._loadingCount.update((value) => Math.max(0, value - 1));\n }\n\n public setFullscreen(value: boolean): void {\n this._isFullscreen.set(value);\n }\n}\n","export function coerceComponentHeight(value: string | number | undefined): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n if (typeof value === 'number') {\n return Number.isFinite(value) && value > 0 ? `${ value }px` : undefined;\n }\n\n const normalizedValue = value.trim();\n if (!normalizedValue) return undefined;\n\n if (normalizedValue === 'auto') return 'auto';\n\n const numericValue = Number(normalizedValue);\n if (Number.isFinite(numericValue) && numericValue > 0) {\n return `${ numericValue }px`;\n }\n\n if (/^-?\\d+(\\.\\d+)?(px|%|vh|vw|vmin|vmax|rem|em|ch|ex|cm|mm|in|pt|pc)$/i.test(normalizedValue)) {\n return normalizedValue;\n }\n\n if (/^calc\\(.+\\)$/i.test(normalizedValue)) {\n return normalizedValue;\n }\n\n return undefined;\n}\n","const URL_PROTOCOL_REGEX = /^(https?:\\/\\/|\\/\\/|\\/(?!\\/)|\\.\\.?\\/)/i;\nconst BARE_DOMAIN_REGEX = /^(localhost(?::\\d+)?|([a-z0-9-]+\\.)+[a-z]{2,})(\\/.*)?$/i;\nconst UNSAFE_PROTOCOL_REGEX = /^(javascript|data|vbscript):/i;\n\nexport function parseIframeUrl(value: string): string | null {\n if (!value) return null;\n\n const normalizedValue = value.trim();\n const urlFromAttr = normalizedValue.match(/\\[url\\]=[\"']([^\"']+)[\"']/)?.[1]?.trim();\n const candidate = (urlFromAttr || normalizedValue).replace(/^[\"']|[\"']$/g, '').trim();\n\n if (!candidate || candidate.includes('<') || UNSAFE_PROTOCOL_REGEX.test(candidate)) {\n return null;\n }\n\n if (URL_PROTOCOL_REGEX.test(candidate)) {\n return candidate;\n }\n\n if (BARE_DOMAIN_REGEX.test(candidate)) {\n return `https://${ candidate }`;\n }\n\n return null;\n}\n","export function parseComponentTag(html: string): string | null {\n const regex = /^<([a-zA-Z][a-zA-Z0-9-]*)(\\s+[^>]+)?>\\s*<\\/\\1>$/s;\n const match = regex.exec(html.trim());\n return match ? match[1] : null;\n}\n","import { ViewContainerRef } from '@angular/core';\nimport { IDynamicComponentItem } from '../../models';\n\nexport class RenderDynamicComponentRequest {\n static readonly requestToken = Symbol('RenderDynamicComponentRequest');\n\n constructor(\n public readonly item: IDynamicComponentItem,\n public readonly viewContainerRef: ViewContainerRef,\n public readonly element?: HTMLElement,\n ) {\n }\n}\n","import { RenderDynamicComponentRequest } from './render-dynamic-component-request';\nimport { ComponentRef, inject, Injectable, ViewContainerRef } from '@angular/core';\nimport { DynamicComponentsStore } from '../../dynamic-components.store';\nimport { IExecution, MExecution } from '../../../mediatr';\nimport { IDynamicComponentItem } from '../../models';\n\n@Injectable()\n@MExecution(RenderDynamicComponentRequest)\nexport class RenderDynamicComponent implements IExecution<RenderDynamicComponentRequest, void>{\n\n private readonly _dynamicStore = inject(DynamicComponentsStore);\n\n public handle({ item, viewContainerRef, element }: RenderDynamicComponentRequest): void {\n try {\n this._renderComponent(item, viewContainerRef, element);\n } catch (error) {\n this._logError(item.selector, error);\n }\n }\n\n private _renderComponent({ selector, component }: IDynamicComponentItem, viewContainerRef: ViewContainerRef, element?: HTMLElement): void {\n component.then(extracted => {\n if (!extracted) {\n this._logComponentResolutionError(selector);\n return;\n }\n\n const componentRef = viewContainerRef.createComponent(extracted, {\n injector: viewContainerRef.injector,\n });\n this._dynamicStore.addComponent(componentRef, element);\n\n element?.replaceWith(this._extractComponentRoot(componentRef));\n }).catch(error => this._logComponentLoadingError(selector, error));\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 _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 _logError(tag: string, error: any): void {\n console.error(`Error inserting component for <${tag}>:`, error);\n }\n}\n","import { ViewContainerRef } from '@angular/core';\n\nexport class RenderExternalComponentRequest {\n public static readonly requestToken = Symbol('RenderExternalComponentRequest');\n\n constructor(\n public readonly selector: string,\n public readonly viewContainerRef: ViewContainerRef,\n ) {\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { IDynamicComponentItem } from '../models';\n\nexport const EXTERNAL_COMPONENT_PROVIDER = new InjectionToken<IDynamicComponentItem[]>('EXTERNAL_COMPONENT_PROVIDER');\n","import { RenderExternalComponentRequest } from './render-external-component-request';\nimport { inject, Injectable } from '@angular/core';\nimport { IExecution, Mediatr, MExecution } from '../../../mediatr';\nimport { RenderDynamicComponentRequest } from '../render-dynamic-component';\nimport { EXTERNAL_COMPONENT_PROVIDER } from '../../providers';\n\n@Injectable()\n@MExecution(RenderExternalComponentRequest)\nexport class RenderExternalComponent implements IExecution<RenderExternalComponentRequest, void> {\n\n private readonly _mediatr = inject(Mediatr);\n private readonly _componentsMap = inject(EXTERNAL_COMPONENT_PROVIDER, { optional: true }) ?? [];\n\n public handle({ selector, viewContainerRef }: RenderExternalComponentRequest): void {\n if (!selector) {\n console.warn('Empty selector passed to RenderExternalComponentRequest.');\n return;\n }\n\n const item = this._componentsMap.find((x) => {\n return x.selector === selector;\n });\n\n if (!item) {\n console.error(`Component for tag \"${selector}\" could not be found in external components map.`);\n return;\n }\n\n this._mediatr.execute(\n new RenderDynamicComponentRequest(item, viewContainerRef),\n );\n }\n}\n","import { ViewContainerRef } from '@angular/core';\n\nexport class RenderInternalComponentsRequest {\n public static readonly requestToken = Symbol('RenderInternalComponentsRequest');\n\n constructor(\n public readonly hostElement: HTMLElement,\n public readonly viewContainerRef: ViewContainerRef,\n ) {\n }\n}\n","import { RenderInternalComponentsRequest } from './render-internal-components-request';\nimport { inject, Injectable } from '@angular/core';\nimport { IExecution, Mediatr, MExecution } from '../../../mediatr';\nimport { IDynamicComponentItem } from '../../models';\nimport { DynamicComponentsStore, extractComponent } from '../../../documentation-page';\nimport { RenderDynamicComponentRequest } from '../render-dynamic-component';\n\n@Injectable()\n@MExecution(RenderInternalComponentsRequest)\nexport class RenderInternalComponents implements IExecution<RenderInternalComponentsRequest, void> {\n private readonly _dynamicStore = inject(DynamicComponentsStore);\n private readonly _mediatr = inject(Mediatr);\n\n private readonly _componentsMap: IDynamicComponentItem[] = [\n {\n selector: 'f-code-group',\n component: extractComponent(() => import('../../components/code-group/code-group')),\n },\n {\n selector: 'f-preview',\n component: extractComponent(() => import('../../components/preview-group/components/preview-card/preview-card')),\n },\n {\n selector: 'f-preview-group-filters',\n component: extractComponent(() => import('../../components/preview-group/components/preview-action-bar/preview-action-bar')),\n },\n {\n selector: 'showcase',\n component: extractComponent(() => import('../../components/showcase/showcase')),\n },\n ];\n\n public handle({ hostElement, viewContainerRef }: RenderInternalComponentsRequest): void {\n this._dynamicStore.dispose();\n\n this._componentsMap.forEach(({ selector, component }) => {\n this._queryElements(hostElement, selector).forEach((x) => {\n this._mediatr.execute(\n new RenderDynamicComponentRequest({ selector, component }, viewContainerRef, x),\n );\n });\n });\n }\n\n private _queryElements(hostElement: HTMLElement, selector: string): HTMLElement[] {\n return Array.from(hostElement.querySelectorAll(selector));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n HostListener,\n inject,\n input,\n OnInit,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { coerceComponentHeight } from './utils/coerce-component-height';\nimport { parseComponentTag } from './utils/parse-component-tag';\nimport { IExampleViewData } from './domain/i-example-view-data';\nimport { IParsedContainerData } from '../../../documentation-page';\nimport { Mediatr } from '../../../mediatr';\nimport { RenderExternalComponentRequest } from '../../features';\nimport { parseIframeUrl } from './utils/parse-iframe-url';\nimport { DOCUMENT } from '@angular/common';\nimport { IS_BROWSER_PLATFORM } from '../../../common';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ExampleViewController, EXAMPLE_VIEW } from './example-view.token';\n\n@Component({\n selector: 'external-component',\n templateUrl: './external-component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n ExampleViewController,\n {\n provide: EXAMPLE_VIEW,\n useExisting: ExampleViewController,\n },\n ],\n host: {\n class: 'f-example-view',\n '[style.height]': 'data().height',\n '[class.f-example-view-fullscreen]': 'isFullscreen()',\n '[attr.aria-busy]': 'isLoading()',\n },\n})\nexport class ExternalComponent implements OnInit {\n private _defaultLoadingTimeout: ReturnType<typeof setTimeout> | null = null;\n\n public readonly data = input.required<IExampleViewData, IParsedContainerData>({\n transform: (x) => {\n const value = x.value?.trim() || '';\n\n return {\n height: coerceComponentHeight(x.height),\n selector: parseComponentTag(value) || undefined,\n iframeUrl: parseIframeUrl(value) || undefined,\n };\n },\n });\n\n protected readonly iframeUrl = computed(() => this.data().iframeUrl);\n protected readonly iframeResourceUrl = computed<SafeResourceUrl | undefined>(() => {\n const url = this.iframeUrl();\n if (!url) {\n return undefined;\n }\n return this._sanitizer.bypassSecurityTrustResourceUrl(url);\n });\n protected readonly hasContent = computed(() => !!this.data().selector || !!this.data().iframeUrl);\n protected readonly canToggleFullscreen = computed(() => {\n return this._isBrowser\n && this.hasContent()\n && typeof this._hostElement.nativeElement.requestFullscreen === 'function'\n && typeof this._document.exitFullscreen === 'function';\n });\n protected readonly fullscreenLabel = computed(() => this.isFullscreen() ? 'Exit full screen' : 'Full screen');\n\n private readonly _document = inject(DOCUMENT);\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _exampleViewController = inject(ExampleViewController);\n private readonly _hostElement = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _isBrowser = inject(IS_BROWSER_PLATFORM);\n private readonly _mediatr = inject(Mediatr);\n private readonly _viewContainerRef = viewChild.required('container', { read: ViewContainerRef });\n private readonly _sanitizer = inject(DomSanitizer);\n\n protected readonly isFullscreen = this._exampleViewController.isFullscreen;\n protected readonly isLoading = this._exampleViewController.isLoading;\n\n public ngOnInit(): void {\n this._exampleViewController.setFullscreen(this._isCurrentElementInFullscreen());\n this._startDefaultLoading();\n\n const selector = this.data().selector;\n if (selector) {\n this._mediatr.execute(new RenderExternalComponentRequest(selector, this._viewContainerRef()));\n return;\n }\n\n if (!this.data().iframeUrl) {\n console.error('Unsupported example source. Provide either component tag or [url].');\n }\n }\n\n protected async toggleFullscreen(): Promise<void> {\n if (!this.canToggleFullscreen()) return;\n\n try {\n if (this._isCurrentElementInFullscreen()) {\n await this._document.exitFullscreen?.();\n } else {\n await this._hostElement.nativeElement.requestFullscreen?.();\n }\n } catch (error) {\n console.error('Unable to toggle full-screen mode for example preview:', error);\n }\n }\n\n @HostListener('document:fullscreenchange')\n protected onFullscreenChange(): void {\n this._exampleViewController.setFullscreen(this._isCurrentElementInFullscreen());\n }\n\n private _isCurrentElementInFullscreen(): boolean {\n return this._document.fullscreenElement === this._hostElement.nativeElement;\n }\n\n private _startDefaultLoading(): void {\n if (!this.hasContent()) {\n return;\n }\n\n this._exampleViewController.showLoading();\n this._defaultLoadingTimeout = setTimeout(() => {\n this._exampleViewController.hideLoading();\n this._defaultLoadingTimeout = null;\n }, 1000);\n\n this._destroyRef.onDestroy(() => {\n if (this._defaultLoadingTimeout) {\n clearTimeout(this._defaultLoadingTimeout);\n this._defaultLoadingTimeout = null;\n }\n });\n }\n}\n","@if (canToggleFullscreen()) {\n <button class=\"f-fullscreen-button\"\n type=\"button\"\n [class.exit]=\"isFullscreen()\"\n [attr.aria-label]=\"fullscreenLabel()\"\n [attr.title]=\"fullscreenLabel()\"\n (click)=\"toggleFullscreen()\"></button>\n}\n\n@if (iframeResourceUrl()) {\n <iframe class=\"f-example-iframe\"\n [src]=\"iframeResourceUrl()\"\n loading=\"lazy\"\n referrerpolicy=\"no-referrer\"\n allow=\"fullscreen\"\n allowfullscreen></iframe>\n}\n\n<ng-container #container />\n\n@if (isLoading()) {\n <div class=\"f-example-loading-overlay\" role=\"status\" aria-live=\"polite\" aria-label=\"Loading preview\">\n <div class=\"f-loading-dots\" aria-hidden=\"true\">\n <span class=\"f-loading-dot\"></span>\n <span class=\"f-loading-dot\"></span>\n <span class=\"f-loading-dot\"></span>\n </div>\n </div>\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 '../index';\n\n@Component({\n selector: 'highlight',\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Highlight 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","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 { Highlight, resolveHighlightLanguage } from '../index';\nimport { copyToClipboard } from '../../common';\n\ninterface ContainerData {\n height?: string | number;\n value: string;\n isLink?: boolean;\n language?: string;\n}\n\n@Component({\n selector: 'code-view',\n templateUrl: './code-view.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'f-code-view',\n '[style.height]': 'height()',\n },\n imports: [\n Highlight,\n ],\n})\nexport class CodeView implements OnInit {\n private readonly _httpClient = inject(HttpClient);\n private readonly _destroyRef = inject(DestroyRef);\n private _copyFeedbackTimeout: ReturnType<typeof setTimeout> | null = null;\n\n public readonly data = input<ContainerData>();\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 protected readonly isCopied = signal(false);\n protected readonly copyButtonLabel = computed(() => this.isCopied() ? 'Copied' : 'Copy');\n\n public constructor() {\n this._destroyRef.onDestroy(() => {\n if (this._copyFeedbackTimeout) {\n clearTimeout(this._copyFeedbackTimeout);\n }\n });\n }\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(parseVisibleLanguage(language));\n }\n\n private _updateNotExistingData(data?: ContainerData): void {\n if (data?.isLink) {\n this._loadCodeByLink(data.value);\n }\n }\n\n private _updateExistingData(data?: ContainerData): 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 if (this.isCopied()) {\n return;\n }\n\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._setCopiedFeedback());\n }\n\n private _setCopiedFeedback(): void {\n this.isCopied.set(true);\n\n if (this._copyFeedbackTimeout) {\n clearTimeout(this._copyFeedbackTimeout);\n }\n\n this._copyFeedbackTimeout = setTimeout(() => {\n this.isCopied.set(false);\n this._copyFeedbackTimeout = null;\n }, 1300);\n }\n}\n\nfunction coerceComponentHeight(value: string | number | undefined): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n if (typeof value === 'number') {\n return Number.isFinite(value) && value > 0 ? `${ value }px` : undefined;\n }\n\n const normalizedValue = value.trim();\n if (!normalizedValue) return undefined;\n\n if (normalizedValue === 'auto') return 'auto';\n\n const numericValue = Number(normalizedValue);\n if (Number.isFinite(numericValue) && numericValue > 0) {\n return `${ numericValue }px`;\n }\n\n if (/^-?\\d+(\\.\\d+)?(px|%|vh|vw|vmin|vmax|rem|em|ch|ex|cm|mm|in|pt|pc)$/i.test(normalizedValue)) {\n return normalizedValue;\n }\n\n if (/^calc\\(.+\\)$/i.test(normalizedValue)) {\n return normalizedValue;\n }\n\n return undefined;\n}\n\n\nfunction 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\nfunction 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 return resolveHighlightLanguage(result);\n}\n\nfunction parseVisibleLanguage(language: string): string {\n return extractLanguage(language);\n}\n\nfunction extractLanguage(language: string): string {\n const match = language.match(/^([^\\s[]+)/);\n return match ? match[1].toLowerCase() : language;\n}\n","<div class=\"f-code-controls\">\n <button class=\"f-copy-button\"\n type=\"button\"\n [attr.aria-label]=\"copyButtonLabel()\"\n [attr.title]=\"copyButtonLabel()\"\n (click)=\"onCopyClick()\">\n <span class=\"f-copy-icon\" [class.hidden]=\"isCopied()\" aria-hidden=\"true\"></span>\n <span class=\"f-copy-success-icon\" [class.visible]=\"isCopied()\" aria-hidden=\"true\"></span>\n </button>\n</div>\n@if (visibleLanguage()) {\n <span class=\"f-code-language\" [attr.title]=\"visibleLanguage()\" aria-hidden=\"true\">{{ visibleLanguage() }}</span>\n}\n@if (content()) {\n <div class=\"f-code-scroll\">\n <highlight [content]=\"content()\" [language]=\"syntaxLanguage()\"/>\n </div>\n}\n","import { Observable, of } from 'rxjs';\n\nexport class MarkCodeFocusedBlocksPostProcessor {\n\n constructor(\n private _window: Window,\n ) {\n }\n\n public handle(element: HTMLElement): Observable<HTMLElement> {\n const html = element.innerHTML;\n if (!FOCUS_TEST_REGEX.test(html)) {\n return of(element);\n }\n\n element.innerHTML = html.replace(FOCUS_REPLACE_REGEX, (_match, content) => {\n return `<focus class=\"focused\"><div class=\"inline-focus\">${content}</div></focus>`;\n });\n\n const focused = element.querySelector('.focused');\n const hostElement = element.parentElement;\n if (focused && hostElement) {\n this._applyOpacity(hostElement);\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._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): [string, string, string, string] {\n const matches = color.match(/-?\\d*\\.?\\d+/g) || [];\n const [r = '0', g = '0', b = '0', a = '1'] = matches;\n return [r, g, b, a];\n }\n}\n\nconst FOCUS_TEST_REGEX = /ƒƒƒ([\\s\\S]*?)¢¢¢/;\nconst FOCUS_REPLACE_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 type { LanguageInput, PlainTextLanguage } from '@shikijs/types';\n\ntype ShikiLanguage =\n | 'javascript'\n | 'typescript'\n | 'angular-html'\n | 'angular-ts'\n | 'shell'\n | 'html'\n | 'bash'\n | 'css'\n | 'scss'\n | 'markdown';\n\nexport type HighlightLanguage = ShikiLanguage | PlainTextLanguage;\n\nconst LANGUAGE_ALIASES: Record<string, HighlightLanguage> = {\n js: 'javascript',\n javascript: 'javascript',\n ts: 'typescript',\n typescript: 'typescript',\n md: 'markdown',\n sh: 'shell',\n zsh: 'shell',\n shell: 'shell',\n shellscript: 'shell',\n txt: 'text',\n plain: 'text',\n plaintext: 'text',\n};\n\nconst LANGUAGE_LOADERS = new Map<ShikiLanguage, LanguageInput>([\n [ 'javascript', () => import('@shikijs/langs/javascript') ],\n [ 'typescript', () => import('@shikijs/langs/typescript') ],\n [ 'angular-html', () => import('@shikijs/langs/angular-html') ],\n [ 'angular-ts', () => import('@shikijs/langs/angular-ts') ],\n [ 'shell', () => import('@shikijs/langs/shell') ],\n [ 'html', () => import('@shikijs/langs/html') ],\n [ 'bash', () => import('@shikijs/langs/bash') ],\n [ 'css', () => import('@shikijs/langs/css') ],\n [ 'scss', () => import('@shikijs/langs/scss') ],\n [ 'markdown', () => import('@shikijs/langs/markdown') ],\n]);\n\nexport const AVAILABLE_LANGUAGES: readonly HighlightLanguage[] = [\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 resolveHighlightLanguage(lang?: string): HighlightLanguage {\n const normalized = (lang || '').trim().toLowerCase();\n if (!normalized) {\n return 'text';\n }\n\n const alias = LANGUAGE_ALIASES[normalized];\n if (alias) {\n return alias;\n }\n\n if (isAvailableLanguage(normalized)) {\n return normalized;\n }\n\n return 'text';\n}\n\nexport function getLanguageLoader(lang: HighlightLanguage): LanguageInput | null {\n if (isPlainTextLanguage(lang)) {\n return null;\n }\n return LANGUAGE_LOADERS.get(lang) || null;\n}\n\nfunction isAvailableLanguage(lang: string): lang is HighlightLanguage {\n return AVAILABLE_LANGUAGES.includes(lang as HighlightLanguage);\n}\n\nfunction isPlainTextLanguage(lang: HighlightLanguage): lang is PlainTextLanguage {\n return lang === 'text' || lang === 'txt' || lang === 'plain' || lang === 'plaintext';\n}\n","import { inject, Injectable } from '@angular/core';\nimport { defer, from, map, Observable, of, switchMap } from 'rxjs';\nimport { MarkCodeFocusedBlocksPostProcessor } from './mark-code-focused-blocks.post-processor';\nimport { UNIVERSAL_THEME } from './theme';\nimport { catchError, finalize, shareReplay } from 'rxjs/operators';\nimport { getLanguageLoader, HighlightLanguage, resolveHighlightLanguage } from './languages';\nimport { IS_BROWSER_PLATFORM, WINDOW } from '../common';\nimport { createHighlighterCore, HighlighterCore, isSpecialLang } from '@shikijs/core';\nimport { createOnigurumaEngine } from '@shikijs/engine-oniguruma';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HighlightService {\n /**\n * Service for highlighting code blocks using Shiki.\n * It supports syntax highlighting and post-processing for focused blocks.\n */\n private readonly _isBrowser = inject(IS_BROWSER_PLATFORM);\n private readonly _window = inject(WINDOW, { optional: true });\n private readonly _languageLoadingTasks = new Map<HighlightLanguage, Observable<void>>();\n private readonly _highlighter$: Observable<HighlighterCore> = defer(() =>\n from(this._createHighlighter()),\n ).pipe(\n shareReplay(1),\n );\n\n public highlight(\n element: HTMLElement, lang: string, content: string,\n ): Observable<HTMLElement> {\n if (!this._isBrowser) {\n console.warn('[HighlightService] Skipping highlight on server.');\n return of(element);\n }\n\n const resolvedLanguage = resolveHighlightLanguage(lang);\n\n return this._ensureLanguageLoaded(resolvedLanguage).pipe(\n switchMap(() => this._highlightCodeBlock(element, resolvedLanguage, content)),\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: HighlighterCore, 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 this._scheduleRender(() => {\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 _createHighlighter(): Promise<HighlighterCore> {\n return createHighlighterCore({\n engine: createOnigurumaEngine(() => import('shiki/wasm').then((x) => x.default)),\n themes: [ UNIVERSAL_THEME ],\n langs: [],\n });\n }\n\n private _ensureLanguageLoaded(lang: HighlightLanguage): Observable<void> {\n if (isSpecialLang(lang)) {\n return of(void 0);\n }\n\n return this._highlighter$.pipe(\n switchMap((highlighter) => {\n if (highlighter.getLoadedLanguages().includes(lang)) {\n return of(void 0);\n }\n\n const cachedTask = this._languageLoadingTasks.get(lang);\n if (cachedTask) {\n return cachedTask;\n }\n\n const loader = getLanguageLoader(lang);\n if (!loader) {\n return of(void 0);\n }\n\n const loadingTask = from(highlighter.loadLanguage(loader)).pipe(\n map(() => void 0),\n catchError((error) => {\n console.error(`[HighlightService] Failed to load language \"${lang}\"`, error);\n return of(void 0);\n }),\n finalize(() => {\n this._languageLoadingTasks.delete(lang);\n }),\n shareReplay(1),\n );\n\n this._languageLoadingTasks.set(lang, loadingTask);\n return loadingTask;\n }),\n );\n }\n\n private _scheduleRender(callback: () => void): void {\n const raf = this._window?.requestAnimationFrame?.bind(this._window);\n if (raf) {\n raf(callback);\n return;\n }\n queueMicrotask(callback);\n }\n\n private _postProcess(element: HTMLElement): Observable<HTMLElement> {\n const windowRef = this._window;\n if (!windowRef) {\n return of(element);\n }\n\n return of(element).pipe(\n switchMap((x) => new MarkCodeFocusedBlocksPostProcessor(windowRef).handle(x)),\n );\n }\n}\n","import { ChangeDetectionStrategy, Component, signal } from '@angular/core';\nimport { EParsedContainerType, IParsedContainerData } from '../../../documentation-page';\nimport { ExternalComponent } from '../external-component';\nimport { CodeView } from '../../../highlight';\n\n@Component({\n selector: 'code-group',\n templateUrl: './code-group.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'f-code-group',\n },\n imports: [\n ExternalComponent,\n CodeView,\n ],\n})\nexport class CodeGroup {\n public readonly data = signal<IParsedContainerData[]>([]);\n\n protected readonly index = signal<number>(0);\n protected readonly containerType = EParsedContainerType;\n\n protected tabClick(index: number): void {\n this.index.set(index);\n }\n}\n","@let views = data();\n\n@if (views.length > 1) {\n <div class=\"f-code-group-tabs\">\n @for (data of views; track data) {\n <button class=\"f-tab-button\" [class.active]=\"$index === index()\" (click)=\"tabClick($index)\">\n {{ data.tab }}\n </button>\n }\n </div>\n}\n\n<div class=\"f-code-group-body\">\n @for (data of views; track data) {\n\n @let isExampleView = data.type === containerType.EXAMPLE;\n @let display = $index === index() ? 'block' : 'none';\n\n @if (isExampleView) {\n <external-component [style.display]=\"display\" [data]=\"data\" />\n } @else {\n <code-view [style.display]=\"display\" [data]=\"data\" />\n }\n }\n</div>\n","export abstract class PreviewCardBase {\n\n public abstract date?: Date;\n\n public abstract filterKey?: string;\n\n public abstract hostElement: HTMLElement;\n}\n","import { Injectable } from '@angular/core';\nimport { PreviewCardBase } from './components/preview-card';\n\n@Injectable()\nexport class PreviewGroupService {\n\n private _cards: PreviewCardBase[] = [];\n private _originalOrder: Map<HTMLElement, Node[]> | null = null;\n\n public add(card: PreviewCardBase): void {\n this._cards.push(card);\n }\n\n public remove(card: PreviewCardBase): void {\n this._cards = this._cards.filter(preview => preview !== card);\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._cards.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(): PreviewCardBase[] {\n return this._cards\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._cards.forEach((x) => {\n if (x.filterKey !== filterKey) {\n x.hostElement.style.display = 'none';\n }\n });\n }\n\n private _resetLastActiveFilter(): void {\n this._cards.forEach((x) => {\n x.hostElement.style.display = 'block';\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport { startWith } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { PreviewCardBase } from './preview-card-base';\nimport { ThemeService } from '../../../../../theme';\nimport { DocumentationStore, INavigationGroup, INavigationItem } from '../../../../../documentation-page';\nimport { PreviewGroupService } from '../../preview-group.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'a[preview-card]',\n templateUrl: './preview-card.html',\n styleUrls: [ './preview-card.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.href]': 'url',\n '[attr.title]': 'viewModel?.text',\n },\n})\nexport class PreviewCard extends PreviewCardBase implements OnInit, OnDestroy {\n private readonly _elementReference = inject(ElementRef);\n private readonly _fEnvironment = inject(DocumentationStore);\n private readonly _fPreviewGroupService = inject(PreviewGroupService);\n private readonly _themeService = inject(ThemeService, { optional: true });\n private readonly _router = inject(Router);\n private readonly _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._themeService?.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._themeService?.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 @if (src()) {\n <div class=\"media\">\n <img\n [src]=\"src()\"\n [alt]=\"viewModel.description || viewModel.text\"\n [title]=\"viewModel.text\"\n [attr.width]=\"viewModel.image_width || null\"\n [attr.height]=\"viewModel.image_height || null\">\n </div>\n }\n\n <div class=\"content\">\n @if (viewModel.badge) {\n <div class=\"meta\">\n <span class=\"f-badge sm {{viewModel.badge.type}}\">{{ viewModel.badge.text }}</span>\n </div>\n }\n\n <div class=\"title\">{{ viewModel.text }}</div>\n <div class=\"description\">{{ viewModel.description }}</div>\n </div>\n}\n\n","import { AfterViewInit, ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';\nimport { DocumentationStore } from '../../../../../documentation-page';\nimport { TitleCasePipe } from '@angular/common';\nimport { FCheckboxComponent, FRadioButtonComponent } from '../../../../../shared';\nimport { PreviewGroupService } from '../../preview-group.service';\n\nlet previewFilterGroupUniqueId = 0;\n\n@Component({\n selector: 'div[preview-action-bar]',\n templateUrl: './preview-action-bar.html',\n styleUrls: [ './preview-action-bar.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FCheckboxComponent,\n FRadioButtonComponent,\n TitleCasePipe,\n ],\n})\nexport class PreviewActionBar implements AfterViewInit {\n\n private readonly _allKey = 'all';\n\n private _fEnvironment = inject(DocumentationStore);\n private _fPreviewGroupService = inject(PreviewGroupService);\n\n protected readonly filterGroupName = `preview-filters-${ previewFilterGroupUniqueId++ }`;\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[0] === this._allKey\n ? [ this._allKey, ...filters.slice(1).sort((a, b) => a.localeCompare(b)) ]\n : filters.sort((a, b) => a.localeCompare(b));\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 <div class=\"filters-group\" role=\"radiogroup\" aria-label=\"Filter preview items\">\n @for (filter of filters(); track filter) {\n <f-radio-button\n [name]=\"filterGroupName\"\n [checked]=\"activeFilter() === filter\"\n (change)=\"onFilterChange(filter)\">{{ filter | titlecase }}</f-radio-button>\n }\n </div>\n <div class=\"flex-space\"></div>\n <f-checkbox [checked]=\"isSortByDateChecked()\" (change)=\"onSortByDateChange($event)\">Sort by Newness</f-checkbox>\n </div>\n}\n","import {\n ChangeDetectionStrategy,\n Component, computed,\n inject, input,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map, startWith } from 'rxjs';\nimport { IShowcaseItem } from '../../models';\nimport { ThemeService } from '../../../../../theme';\n\n@Component({\n selector: 'showcase-item',\n templateUrl: './showcase-item.html',\n styleUrls: [ './showcase-item.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ShowcaseItem {\n private readonly _themeService = inject(ThemeService);\n\n private readonly _themeChanges = toSignal(this._themeService.theme$.pipe(startWith(null), map(() => this._themeService.getPreferredTheme())));\n public readonly model = input.required<IShowcaseItem>();\n\n protected readonly src = computed(() => {\n const theme = this._themeChanges();\n const model = this.model();\n return theme === 'dark' ? (model.imageUrlDark || model.imageUrl) : model.imageUrl;\n });\n}\n","@let data = model();\n\n@if (data) {\n @if (src()) {\n <div class=\"media\">\n <img [src]=\"src()\" [alt]=\"data.description || data.name\" [title]=\"data.name\">\n </div>\n }\n\n <div class=\"content\">\n @if (data.tags?.length) {\n <div class=\"meta\">\n @for (tag of data.tags; track tag) {\n <span class=\"f-badge sm tip\">{{ tag }}</span>\n }\n </div>\n }\n\n <div class=\"title\">{{ data.name }}</div>\n <div class=\"description\">{{ data.description }}</div>\n\n @if (data.links.length) {\n <div class=\"links\">\n @for (link of data.links; track link.text) {\n <a class=\"f-text-link f-text-link-primary\" href=\"{{ link.url }}\" target=\"_blank\" rel=\"noopener\">{{ link.text }}</a>\n }\n </div>\n }\n </div>\n}\n","import { IShowcaseItem } from './models';\nimport { InjectionToken } from '@angular/core';\n\nexport const SHOWCASE_DATA = new InjectionToken<IShowcaseItem[]>('SHOWCASE_DATA');\n\n","import { ChangeDetectionStrategy, Component, computed, inject, signal } from '@angular/core';\nimport { FRadioButtonComponent } from '../../../shared';\nimport { ShowcaseItem } from './components';\nimport { SHOWCASE_DATA } from './showcase-token';\nimport { IShowcaseItem } from './models';\n\nlet filterGroupUniqueId = 0;\n\n@Component({\n selector: 'showcase',\n templateUrl: './showcase.html',\n styleUrls: [ './showcase.scss' ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FRadioButtonComponent,\n ShowcaseItem,\n ],\n})\nexport class Showcase{\n private readonly _data = signal<IShowcaseItem[]>(inject(SHOWCASE_DATA));\n private readonly _allFilterLabel = 'All';\n protected readonly filterGroupName = `showcase-filters-${ filterGroupUniqueId++ }`;\n\n protected readonly items = computed(() => {\n const items = this._data();\n const activeTag = this.activeTag();\n return activeTag ? items.filter(item => item.tags?.includes(activeTag)) : items;\n });\n\n protected readonly filterOptions = computed(() => [{\n label: this._allFilterLabel,\n value: null,\n }, ...Array.from(this._data().reduce((result, item) => {\n item.tags?.forEach(tag => result.add(tag));\n return result;\n }, new Set<string>()))\n .sort((a, b) => a.localeCompare(b))\n .map((tag) => ({\n label: tag,\n value: tag,\n }))]);\n\n protected readonly activeTag = signal<string | null>(null);\n\n protected onFilterChange(tag: string | null): void {\n this.activeTag.set(tag);\n }\n}\n","<div class=\"filters-panel\">\n <div class=\"filters-group\" role=\"radiogroup\" aria-label=\"Filter showcase items\">\n @for (filter of filterOptions(); track filter.label) {\n <f-radio-button\n [name]=\"filterGroupName\"\n [checked]=\"activeTag() === filter.value\"\n (change)=\"onFilterChange(filter.value)\">{{ filter.label }}</f-radio-button>\n }\n </div>\n</div>\n<div class=\"showcase-list\">\n @for (item of items(); track item.imageUrl) {\n <showcase-item [model]=\"item\"/>\n }\n</div>\n","import { IDocumentationConfiguration } from '../../../documentation-page';\nimport { IShowcaseItem } from './models';\n\nexport function provideShowcase(showcaseItems: IShowcaseItem[]): Partial<IDocumentationConfiguration> {\n return {\n showcaseItems,\n };\n}\n\n","import { DynamicComponentsStore } from './dynamic-components.store';\nimport { PreviewGroupService } from './components';\nimport { RenderDynamicComponent, RenderExternalComponent, RenderInternalComponents } from './features';\n\nexport const DYNAMIC_COMPONENTS_MODULE_PROVIDERS = [\n DynamicComponentsStore,\n\n PreviewGroupService,\n\n RenderDynamicComponent,\n\n RenderExternalComponent,\n\n RenderInternalComponents,\n];\n","export class ActivateTocByHashRequest {\n public static readonly requestToken = Symbol('ActivateTocByHashRequest');\n\n constructor(\n public hash: string | undefined,\n ) {\n }\n}\n","import { ActivateTocByHashRequest } from './activate-toc-by-hash-request';\nimport { inject, Injectable } from '@angular/core';\nimport { IExecution, MExecution } from '../../../../../mediatr';\nimport { DocumentationStore } from '../../../../services';\n\n@Injectable()\n@MExecution(ActivateTocByHashRequest)\nexport class ActivateTocByHash implements IExecution<ActivateTocByHashRequest, void>{\n\n private readonly _dataProvider = inject(DocumentationStore);\n\n public handle(payload: ActivateTocByHashRequest): void {\n this._dataProvider.tocData.update((data) => ({\n ...data,\n flat: data.flat.map((x) => ({\n ...x,\n isActive: x.hash === payload.hash,\n })),\n }));\n }\n}\n","export class CalculateTableOfContentRequest {\n public static readonly requestToken = Symbol('CalculateTableOfContentRequest');\n\n constructor(\n public readonly hostElement: 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","export class CalculateAbsoluteTopToContainerRequest {\n public static readonly requestToken = Symbol('CalculateAbsoluteTopToContainerRequest');\n\n constructor(\n public element: HTMLElement,\n ) {\n }\n}\n","import { CalculateAbsoluteTopToContainerRequest } from './calculate-absolute-top-to-container-request';\nimport { inject, Injectable } from '@angular/core';\nimport { SCROLLABLE_CONTAINER } from '../../../index';\nimport { IExecution, MExecution } from '../../../../../mediatr';\n\n@Injectable()\n@MExecution(CalculateAbsoluteTopToContainerRequest)\nexport class CalculateAbsoluteTopToContainer\n implements IExecution<CalculateAbsoluteTopToContainerRequest, number> {\n\n private readonly _scrollableContainer = inject(SCROLLABLE_CONTAINER);\n\n public handle(request: CalculateAbsoluteTopToContainerRequest): 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 { CalculateAbsoluteTopToContainerRequest } from '../calculate-absolute-top-to-container';\nimport { inject, Injectable } from '@angular/core';\nimport {\n ActivateTocByHashRequest,\n SCROLLABLE_CONTAINER,\n} from '../../../index';\nimport { DocumentationStore } from '../../../../services';\nimport { DOCUMENT_ELEMENT, WINDOW } from '../../../../../common';\nimport { IExecution, Mediatr } from '../../../../../mediatr';\n\n@Injectable()\nexport class CalculateHashFromScrollPosition\n implements IExecution<void, void> {\n\n private readonly _docElement = inject(DOCUMENT_ELEMENT);\n private readonly _window = inject(WINDOW);\n private readonly _provider = inject(DocumentationStore);\n private readonly _scrollableContainer = inject(SCROLLABLE_CONTAINER);\n private readonly _mediatr = inject(Mediatr);\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._mediatr.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._window\n .getComputedStyle(this._docElement)\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._calculateAbsoluteTopToContainer(x.element),\n };\n }).filter((x) => !Number.isNaN(x.top));\n }\n\n private _calculateAbsoluteTopToContainer(element: HTMLElement): number {\n return this._mediatr.execute(new CalculateAbsoluteTopToContainerRequest(element));\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\ninterface IHasTopItem {\n hash: string;\n top: number;\n}\n","import { CalculateTableOfContentRequest } from './calculate-table-of-content-request';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { DocumentationStore } from '../../../../services';\nimport { ITableOfContentItem, TableOfContentData } from '../../models';\nimport { IExecution, MExecution } from '../../../../../mediatr';\nimport {\n CalculateHashFromScrollPosition,\n} from '../calculate-hash-from-scroll-position';\n\n@Injectable()\n@MExecution(CalculateTableOfContentRequest)\nexport class CalculateTableOfContent implements IExecution<CalculateTableOfContentRequest, void>{\n\n private readonly _dataProvider = inject(DocumentationStore);\n private readonly _injector = inject(Injector);\n\n public handle(request: CalculateTableOfContentRequest): void {\n const flat: ITableOfContentItem[] = [];\n const tree: ITableOfContentItem[] = [];\n const stack: ITableOfContentItem[] = [];\n\n this._getNavigationSelectors(request.hostElement, this._dataProvider.getTableOfContent()?.range).forEach((element) => {\n const tocItem = this._createItem(element);\n this._insertItemIntoTree(tocItem, tree, stack);\n flat.push(tocItem);\n });\n\n this._dataProvider.tocData.set(new TableOfContentData(flat, tree));\n this._injector.get(CalculateHashFromScrollPosition).handle();\n }\n\n private _getNavigationSelectors(fMarkdownPage: HTMLElement, tocRange?: {\n start: number,\n end: number\n }): HTMLElement[] {\n if (!tocRange || tocRange.start < 1 || tocRange.end > 6) {\n tocRange = { start: 2, 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: `#${CSS.escape(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 ScrollToElementInContainerRequest {\n public static readonly requestToken = Symbol('ScrollToElementInContainerRequest');\n\n constructor(public hash: string) {\n }\n}\n","import { ScrollToElementInContainerRequest } from './scroll-to-element-in-container-request';\nimport { inject, Injectable } from '@angular/core';\nimport { SCROLLABLE_CONTAINER } from '../../../index';\nimport { IExecution, MExecution } from '../../../../../mediatr';\nimport { DOCUMENT_ELEMENT, WINDOW } from '../../../../../common';\n\n@Injectable()\n@MExecution(ScrollToElementInContainerRequest)\nexport class ScrollToElementInContainer implements IExecution<ScrollToElementInContainerRequest, void> {\n\n private readonly _scrollableContainer = inject(SCROLLABLE_CONTAINER);\n private readonly _window = inject(WINDOW);\n private readonly _docElement = inject(DOCUMENT_ELEMENT);\n\n public handle(payload: ScrollToElementInContainerRequest): void {\n const container = this._scrollableContainer.htmlElement;\n container._ignoreProgrammatic = true;\n\n this._scrollableContainer.htmlElement.scrollTo({\n top: this._getScrollTo(this._getScrollToElement(payload.hash)) - this._getHeaderHeight(),\n behavior: 'smooth',\n });\n }\n\n private _getHeaderHeight(): number {\n return parseInt(this._window\n .getComputedStyle(this._docElement)\n .getPropertyValue('--header-height'), 10,\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 {\n ChangeDetectionStrategy,\n Component, input,\n} from '@angular/core';\nimport { ITableOfContentItem } from '../models';\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","import {\n ActivateTocByHash,\n CalculateAbsoluteTopToContainer,\n CalculateHashFromScrollPosition,\n CalculateTableOfContent,\n ScrollToElementInContainer,\n} from './features';\n\nexport const TABLE_OF_CONTENT_MODULE_PROVIDERS = [\n ActivateTocByHash,\n CalculateTableOfContent,\n ScrollToElementInContainer,\n CalculateAbsoluteTopToContainer,\n CalculateHashFromScrollPosition,\n];\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n untracked,\n} from '@angular/core';\nimport { TableOfContentItemsComponent } from './table-of-content-items';\nimport { DocumentationStore } from '../../services';\nimport { WINDOW } from '../../../common';\nimport { Mediatr } from '../../../mediatr';\nimport { ActivateTocByHashRequest, ScrollToElementInContainerRequest } from './features';\n\n@Component({\n selector: 'table-of-content',\n styleUrls: ['./table-of-content.scss'],\n templateUrl: './table-of-content.html',\n standalone: true,\n imports: [TableOfContentItemsComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableOfContent {\n\n private readonly _hostElement = inject(ElementRef<HTMLElement>).nativeElement;\n private readonly _dataProvider = inject(DocumentationStore);\n private readonly _window = inject(WINDOW);\n private readonly _mediatr = inject(Mediatr);\n\n protected readonly tocData = computed(() => this._dataProvider.tocData());\n\n protected readonly activeMarkerPosition = computed(() => {\n const index = this.tocData()?.flat.findIndex((x) => x.isActive) || 0;\n return untracked(() => this._getActiveMarkerPosition(index));\n });\n protected readonly title = inject(DocumentationStore).getTableOfContent()!.title;\n\n private _getActiveMarkerPosition(activeIndex: number): number {\n const itemHeight = this._getToCItemHeight(this._hostElement);\n return (activeIndex + 1) * itemHeight + itemHeight / 4;\n }\n\n private _getToCItemHeight(element: HTMLElement): number {\n return parseInt(this._window.getComputedStyle(element).getPropertyValue('--on-page-navigation-item-height'));\n }\n\n @HostListener('click', ['$event'])\n protected _click(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._mediatr.execute(new ActivateTocByHashRequest(hash));\n this._mediatr.execute(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","import { InjectionToken } from '@angular/core';\n\nexport const SCROLLABLE_CONTAINER = new InjectionToken<IScrollableContainer>('SCROLLABLE_CONTAINER');\n\nexport interface IScrollableContainer {\n\n htmlElement: HTMLElement & { _ignoreProgrammatic?: boolean };\n}\n\n\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n forwardRef,\n inject,\n Injector,\n OnInit,\n} from '@angular/core';\nimport { IScrollableContainer, SCROLLABLE_CONTAINER } from './models';\nimport { debounceTime, fromEvent, startWith } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n CalculateHashFromScrollPosition,\n TABLE_OF_CONTENT_MODULE_PROVIDERS,\n TableOfContent,\n} from '../table-of-content';\nimport { Mediatr } from '../../../mediatr';\nimport { DYNAMIC_COMPONENTS_MODULE_PROVIDERS } from '../../../dynamic-components';\nimport { MarkdownService } from '../markdown-renderer';\nimport { filter } from 'rxjs/operators';\nimport { DOCUMENTATION_CONFIGURATION } from '../../domain';\n\n@Component({\n selector: 'scrollable-container',\n templateUrl: './scrollable-container.html',\n styleUrls: ['./scrollable-container.scss'],\n standalone: true,\n providers: [\n {\n provide: SCROLLABLE_CONTAINER,\n useExisting: forwardRef(() => ScrollableContainer),\n },\n Mediatr,\n ...DYNAMIC_COMPONENTS_MODULE_PROVIDERS,\n ...TABLE_OF_CONTENT_MODULE_PROVIDERS,\n MarkdownService,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TableOfContent,\n ],\n})\nexport class ScrollableContainer implements OnInit, IScrollableContainer {\n private readonly _destroyRef = inject(DestroyRef);\n private readonly _injector = inject(Injector);\n private readonly _markdown = inject(MarkdownService);\n protected readonly tableOfContent = inject(DOCUMENTATION_CONFIGURATION).tableOfContent;\n protected readonly canShowTableOfContent = computed(() => {\n return !!this.tableOfContent && !this._markdown.pageLayout().hideTableOfContent;\n });\n\n public readonly htmlElement = inject(ElementRef<HTMLElement>).nativeElement;\n\n public ngOnInit(): void {\n fromEvent<Event>(this.htmlElement, 'scroll', { passive: true })\n .pipe(\n debounceTime(100),\n startWith<Event | null>(null),\n filter((event: Event | null) => {\n const target = event?.target as IScrollableTarget | null;\n const ignoreProgrammatic = target?._ignoreProgrammatic ?? false;\n (this.htmlElement as IScrollableTarget)._ignoreProgrammatic = false;\n return !ignoreProgrammatic;\n }),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => this._calculateHashAndActivate());\n }\n\n private _calculateHashAndActivate(): void {\n this._injector.get(CalculateHashFromScrollPosition).handle();\n }\n}\n\ninterface IScrollableTarget extends EventTarget {\n _ignoreProgrammatic?: boolean;\n}\n","<ng-content></ng-content>\n@if (canShowTableOfContent()) {\n <table-of-content />\n}\n\n\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n HostListener,\n inject,\n Injector,\n input,\n OnDestroy,\n OnInit,\n untracked,\n ViewContainerRef,\n} from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\nimport { DynamicComponentsStore } from '../../services';\nimport { HandleNavigationLinksHandler, HandleNavigationLinksRequest } from '../../domain';\nimport { IS_BROWSER_PLATFORM, WINDOW } from '../../../common';\nimport { MarkdownFooter } from './markdown-footer';\nimport { Mediatr } from '../../../mediatr';\nimport { RenderInternalComponentsRequest } from '../../../dynamic-components';\nimport { CalculateTableOfContentRequest } from '../table-of-content';\nimport { SCROLLABLE_CONTAINER } from '../scrollable-container';\nimport type { IMarkdownOriginData } from './utils';\n\n@Component({\n selector: 'markdown-renderer',\n templateUrl: './markdown-renderer.html',\n styleUrls: ['./markdown-renderer.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MarkdownFooter],\n host: {\n class: 'm-render',\n },\n})\nexport class MarkdownRenderer implements OnInit, OnDestroy {\n public readonly value = input.required<SafeHtml | undefined>();\n public readonly origin = input<IMarkdownOriginData | null>(null);\n\n private readonly _hostElement = inject(ElementRef).nativeElement;\n private readonly _router = inject(Router);\n private readonly _injector = inject(Injector);\n private readonly _isBrowser = inject(IS_BROWSER_PLATFORM);\n private readonly _window = inject(WINDOW)\n private readonly _dynamicComponents = inject(DynamicComponentsStore);\n private readonly _mediatr = inject(Mediatr);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _scrollableContainer = inject(SCROLLABLE_CONTAINER, { optional: true });\n\n public ngOnInit(): void {\n this._setupValueEffect();\n }\n\n private _setupValueEffect(): void {\n effect(\n onCleanup => {\n const html = this.value();\n if (!this._isBrowser || html == null) return;\n\n this._resetScroll();\n\n const ref = this._schedulePostRenderWork();\n onCleanup(() => ref.destroy());\n },\n { injector: this._injector },\n );\n }\n\n private _resetScroll(): void {\n this._scrollableContainer?.htmlElement?.scrollTo({ top: 0, left: 0 });\n }\n\n private _schedulePostRenderWork() {\n return afterNextRender(() => {\n return untracked(() => {\n this._renderDynamicComponents();\n this._recalculateToc();\n });\n }, { injector: this._injector });\n }\n\n private _renderDynamicComponents(): void {\n this._mediatr.execute(\n new RenderInternalComponentsRequest(this._hostElement, this._viewContainerRef),\n );\n }\n\n private _recalculateToc(): void {\n this._mediatr.execute(\n new CalculateTableOfContentRequest(this._hostElement),\n );\n }\n\n @HostListener('click', ['$event'])\n protected _onDocumentClick(event: MouseEvent): void {\n new HandleNavigationLinksHandler().handle(\n new HandleNavigationLinksRequest(event, this._window, this._router),\n );\n }\n\n public ngOnDestroy(): void {\n this._dynamicComponents.dispose();\n }\n}\n","<div class=\"doc-content\" [innerHTML]=\"value()\"></div>\n@if (origin(); as pageOrigin) {\n <aside class=\"origin-link\" role=\"note\">\n <span class=\"origin-link-icon\" aria-hidden=\"true\"></span>\n <div class=\"origin-link-content\">\n <span class=\"origin-link-label\">{{ pageOrigin.label }}</span>\n <a class=\"origin-link-url f-text-link f-text-link-primary\"\n [href]=\"pageOrigin.url\"\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\">{{ pageOrigin.url }}</a>\n </div>\n </aside>\n}\n@if (value()) {\n <markdown-footer />\n}\n","import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { distinctUntilChanged, map, of, startWith, switchMap } from 'rxjs';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { catchError, filter, tap } from 'rxjs/operators';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { DocumentationStore } from '../../services';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MarkdownRenderer, MarkdownService } from '../markdown-renderer';\nimport { FMetaService } from '../../analytics';\n\n@Component({\n selector: 'markdown-router',\n templateUrl: './markdown-router.html',\n styleUrls: ['./markdown-router.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'ngSkipHydration': '',\n '[class.empty-navigation]': 'emptyNavigation',\n },\n imports: [\n MarkdownRenderer,\n ],\n})\nexport class MarkdownRouter {\n private readonly _router = inject(Router);\n private readonly _activatedRoute = inject(ActivatedRoute);\n private readonly _markdown = inject(MarkdownService);\n private readonly _dataProvider = inject(DocumentationStore);\n private readonly _metaService = inject(FMetaService, { optional: true });\n\n protected readonly emptyNavigation = !this._dataProvider.getNavigation().length;\n protected readonly pageOrigin = this._markdown.pageOrigin;\n protected readonly shouldExpandContent = computed(() => {\n const layout = this._markdown.pageLayout();\n return layout.hideTableOfContent && layout.expandContentWithoutTableOfContent;\n });\n\n private readonly _path$ = this._router.events.pipe(\n startWith(null),\n filter((e): e is NavigationEnd | null => e === null || e instanceof NavigationEnd),\n map(() => this._activatedRoute.snapshot.url.map(u => u.path).join('/')),\n distinctUntilChanged(),\n );\n\n protected readonly html = toSignal<SafeHtml | undefined>(\n this._path$.pipe(\n switchMap(path => {\n const url = this._dataProvider.getMarkdownUrl(path);\n return this._markdown.parseUrl(url).pipe(\n catchError(err => {\n console.error('[MarkdownRouter] parse error:', err, { path, url });\n return of<SafeHtml | undefined>(undefined); // или return EMPTY;\n }),\n tap(() => this._metaService?.applyMarkdownSeo(this._markdown.pageSeo())),\n );\n }),\n ),\n { initialValue: undefined },\n );\n}\n","<markdown-renderer [value]=\"html()\"\n [origin]=\"pageOrigin()\"\n [class.empty-navigation]=\"emptyNavigation\"\n [class.expand-no-toc]=\"shouldExpandContent()\"/>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport {\n F_PREVIEW_NAVIGATION_PROVIDER,\n HeaderComponent,\n IToggleNavigationComponent, MEDIA_LINKS_PROVIDER,\n NavigationPanelComponent,\n ScrollableContainer,\n TOGGLE_NAVIGATION_COMPONENT,\n} from './components';\nimport { DocumentationStore } from './services';\nimport {\n HEADER_CONFIGURATION_PROVIDER, IS_BROWSER_PLATFORM,\n PopoverService,\n ThemeService,\n} from '../common';\nimport { FMetaService } from './analytics';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { CookiePopup } from '../analytics/cookie-popup/cookie-popup';\nimport { GTagService } from '../analytics';\nimport { EXTERNAL_COMPONENT_PROVIDER, SHOWCASE_DATA } from '../dynamic-components';\n\n@Component({\n selector: 'documentation',\n templateUrl: './documentation.html',\n styleUrls: ['./documentation.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: MEDIA_LINKS_PROVIDER,\n deps: [DocumentationStore],\n useFactory: (store: DocumentationStore) => store.getMediaLinks(),\n },\n {\n provide: HEADER_CONFIGURATION_PROVIDER,\n deps: [DocumentationStore],\n useFactory: (store: DocumentationStore) => store.getHeader(),\n },\n {\n provide: TOGGLE_NAVIGATION_COMPONENT,\n useExisting: Documentation,\n },\n {\n provide: EXTERNAL_COMPONENT_PROVIDER,\n deps: [DocumentationStore],\n useFactory: (store: DocumentationStore) => store.getComponents(),\n },\n {\n provide: SHOWCASE_DATA,\n deps: [DocumentationStore],\n useFactory: (store: DocumentationStore) => store.getShowcaseItems(),\n },\n ],\n imports: [\n NavigationPanelComponent,\n ScrollableContainer,\n RouterOutlet,\n HeaderComponent,\n CookiePopup,\n ],\n})\nexport class Documentation 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 private readonly _gTagService = inject(GTagService, { optional: true });\n private readonly _themeService = inject(ThemeService, { optional: true });\n\n protected readonly emptyNavigation = !inject(DocumentationStore).getNavigation().length;\n\n protected readonly isBrowser = inject(IS_BROWSER_PLATFORM);\n\n public ngOnInit() {\n if (!this.isBrowser) {\n return;\n }\n this._themeService?.initialize();\n this._gTagService?.initialize();\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","@if (!emptyNavigation) {\n <f-navigation-panel [class.visible]=\"isNavigationVisible()\"/>\n <div class=\"f-backdrop\" [class.visible]=\"isNavigationVisible()\" (click)=\"onToggleNavigation(false)\"></div>\n}\n\n<scrollable-container>\n <f-header [class.empty-navigation]=\"emptyNavigation\"/>\n <router-outlet/>\n</scrollable-container>\n\n@if (popover()) {\n <div class=\"popover\">{{ popover() }}</div>\n}\n@defer (when isBrowser) {\n <cookie-popup/>\n}\n","import { Routes } from '@angular/router';\n\nexport const DOCUMENTATION_ROUTES: Routes = [\n {\n path: '',\n loadComponent: () => import('./index').then(m => m.Documentation),\n children: [\n {\n path: '**',\n loadComponent: () => import('./components/markdown-router').then(m => m.MarkdownRouter),\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';\n\n@Injectable()\nexport class HomeStore {\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","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 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 class=\"f-text-link f-text-link-primary\" href=\"https://m-render.foblex.com/\" target=\"_blank\">MRender</a></div>\n <div class=\"item\">{{ viewModel.text }}</div>\n </div>\n</div>\n","import { Component, inject } from '@angular/core';\nimport { HomeStore } from '../../services';\nimport { ThemeButtonComponent } from '../../../theme';\nimport { FBrandLinkComponent } from '../../../shared';\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 FBrandLinkComponent,\n ThemeButtonComponent,\n ],\n})\nexport class FHomePageHeaderComponent {\n protected logo = inject(HomeStore).getLogo();\n protected title = inject(HomeStore).getTitle();\n}\n","<div class=\"content\">\n <f-brand-link class=\"logo-link\" [title]=\"title\" [logo]=\"logo\" [logoAlt]=\"title + ' Logo'\" />\n\n <div class=\"flex-space\"></div>\n <button theme-button aria-label=\"Change theme\"></button>\n</div>\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,\n Component,\n ComponentRef,\n inject,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { HomeStore } from './services';\nimport {\n FHomePageFeaturesComponent,\n FHomePageFooterComponent,\n FHomePageHeaderComponent,\n FHomePageHeroComponent,\n FHomePageMembershipsComponent,\n} from './components';\nimport { IS_BROWSER_PLATFORM, ThemeService } from '../common';\nimport { CookiePopup } from '../analytics/cookie-popup/cookie-popup';\nimport { GTagService } from '../analytics';\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 imports: [\n FHomePageFooterComponent,\n FHomePageHeaderComponent,\n FHomePageFeaturesComponent,\n FHomePageHeroComponent,\n FHomePageMembershipsComponent,\n CookiePopup,\n ],\n})\nexport class HomeRootComponent implements AfterViewInit, OnInit {\n private readonly _environment = inject(HomeStore);\n private readonly _gTagService = inject(GTagService, { optional: true });\n private readonly _themeService = inject(ThemeService, { optional: true });\n\n protected readonly isBrowser = inject(IS_BROWSER_PLATFORM);\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 ngOnInit(): void {\n if (!this.isBrowser) {\n return;\n }\n this._themeService?.initialize();\n this._gTagService?.initialize();\n }\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<unknown>): 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\n@defer (when isBrowser) {\n <cookie-popup/>\n}\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":["filter","uniqueId","coerceComponentHeight"],"mappings":"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"}
|