@foblex/m-render 2.6.8 → 2.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (20) hide show
  1. package/fesm2022/foblex-m-render.mjs +133 -183
  2. package/fesm2022/foblex-m-render.mjs.map +1 -1
  3. package/lib/documentation-page/components/markdown-container/f-markdown/components/f-markdown-footer/domain/get-previous-next-page-navigation/get-previous-next-page-navigation.handler.d.ts +1 -2
  4. package/lib/documentation-page/components/markdown-container/f-markdown/f-markdown-renderer.component.d.ts +0 -1
  5. package/lib/documentation-page/components/markdown-container/f-markdown/highlight/mark-code-focused-blocks.post-processor.d.ts +1 -2
  6. package/lib/documentation-page/components/navigation-panel/navigation-panel.component.d.ts +1 -0
  7. package/lib/documentation-page/components/scrollable-container/components/table-of-content/table-of-content.component.d.ts +1 -1
  8. package/lib/documentation-page/components/scrollable-container/domain/activate-toc-by-hash/activate-toc-by-hash.handler.d.ts +3 -5
  9. package/lib/documentation-page/components/scrollable-container/domain/calculate-hash-from-scroll-position-and-activate-toc/calculate-hash-from-scroll-position-and-activate-toc.handler.d.ts +4 -7
  10. package/lib/documentation-page/components/scrollable-container/domain/calculate-table-of-content-data/calculate-table-of-content-data.handler.d.ts +4 -6
  11. package/lib/documentation-page/components/scrollable-container/domain/get-absolute-top-to-container/get-absolute-top-to-container.handler.d.ts +3 -5
  12. package/lib/documentation-page/components/scrollable-container/domain/index.d.ts +0 -1
  13. package/lib/documentation-page/components/scrollable-container/domain/render-dynamic-components/render-dynamic-components.handler.d.ts +4 -6
  14. package/lib/documentation-page/components/scrollable-container/domain/scroll-to-element-in-container/scroll-to-element-in-container.handler.d.ts +3 -5
  15. package/lib/documentation-page/components/scrollable-container/scrollable-container.component.d.ts +1 -1
  16. package/lib/documentation-page/domain/handle-navigation-links/handle-navigation-links.handler.d.ts +1 -2
  17. package/lib/documentation-page/domain/index.d.ts +0 -1
  18. package/package.json +1 -3
  19. package/lib/documentation-page/components/scrollable-container/domain/providers.d.ts +0 -7
  20. package/lib/documentation-page/domain/providers.d.ts +0 -2
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, booleanAttribute, HostListener, Input, ViewChild, Output, ChangeDetectionStrategy, Component, input, output, viewChild, InjectionToken, inject, signal, Injectable, Renderer2, ElementRef, NgZone, Directive, ChangeDetectorRef, DestroyRef, computed, ViewContainerRef, forwardRef, Injector, effect, untracked } from '@angular/core';
2
+ import { EventEmitter, booleanAttribute, HostListener, Input, ViewChild, Output, ChangeDetectionStrategy, Component, input, output, viewChild, InjectionToken, inject, signal, Injectable, Renderer2, ElementRef, NgZone, Directive, ChangeDetectorRef, DestroyRef, computed, ViewContainerRef, Injector, forwardRef, effect, untracked } from '@angular/core';
3
3
  import { BrowserService, F_LOCAL_STORAGE } from '@foblex/platform';
4
4
  import { Subject, of, map, from, switchMap, startWith, filter, defer, Observable, EMPTY, debounceTime, fromEvent } from 'rxjs';
5
5
  import { HttpClient } from '@angular/common/http';
@@ -8,13 +8,10 @@ import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
8
  import { Overlay, CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
9
9
  import { Router, RouterLink, NavigationEnd, ActivatedRoute, RouterOutlet } from '@angular/router';
10
10
  import { DOCUMENT, TitleCasePipe } from '@angular/common';
11
- import { deepClone } from '@foblex/utils';
12
11
  import { createHighlighter } from 'shiki';
13
12
  import MarkdownIt from 'markdown-it';
14
13
  import { DomSanitizer } from '@angular/platform-browser';
15
14
  import container from 'markdown-it-container';
16
- import { __decorate } from 'tslib';
17
- import { FExecutionRegister, FMediator } from '@foblex/mediator';
18
15
 
19
16
  let uniqueId$1 = 0;
20
17
  class FCheckboxComponent {
@@ -704,10 +701,6 @@ function provideTocData(toC) {
704
701
  };
705
702
  }
706
703
 
707
- const COMMON_FEATURES = [
708
- HandleNavigationLinksHandler,
709
- ];
710
-
711
704
  class FMetaService {
712
705
  _router = inject(Router);
713
706
  _headTag = inject(FHeadTagService);
@@ -878,11 +871,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
878
871
  type: Component,
879
872
  args: [{ selector: 'f-header', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
880
873
  HamburgerButtonComponent,
881
- NpmVersionComponent,
882
874
  FSocialLinksComponent,
883
875
  FThemeButtonComponent,
884
876
  InlineMenuComponent,
885
- DropdownMenuComponent,
886
877
  ], template: "<button hamburger-button></button>\n<div class=\"title text-ellipsis\">{{ title }}</div>\n<inline-menu/>\n<!--<npm-version/>-->\n<div class=\"divider\"></div>\n<button f-theme-button></button>\n<div class=\"divider\"></div>\n<f-social-links/>\n\n", styles: [":host{position:sticky;width:100%;top:0;display:flex;justify-content:flex-start;align-items:center;padding:20px 32px;font-weight:600;color:var(--primary-text);height:calc(var(--header-height) + 1px);background-color:var(--background-color);border-bottom:1px solid var(--divider-color);z-index:var(--z-index-header)}@media (min-width: 1280px){:host{padding-right:max(var(--page-padding),(100vw - var(--layout-max-width)) / 3);padding-left:max(var(--page-padding),(100vw - var(--layout-max-width)) / 4)}}.title{display:none;justify-content:flex-start;align-items:center;padding:20px 0;font-weight:600;color:var(--primary-text);height:var(--header-height)}@media (min-width: 460px){.title{display:block}}@media (min-width: 960px){.title{display:none}}.divider{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--divider-color);content:\"\"}\n"] }]
887
878
  }] });
888
879
 
@@ -928,12 +919,15 @@ class NavigationPanelComponent {
928
919
  ngOnInit() {
929
920
  const currentPath = this._router.url;
930
921
  const prefix = currentPath.substring(0, currentPath.lastIndexOf('/'));
931
- const navigation = deepClone(this._provider.getNavigation());
922
+ const navigation = this._deepClone(this._provider.getNavigation());
932
923
  navigation.forEach((group) => {
933
924
  group.items.forEach((item) => this._normalizeLink(item, prefix));
934
925
  });
935
926
  this.navigation = navigation;
936
927
  }
928
+ _deepClone(value) {
929
+ return JSON.parse(JSON.stringify(value));
930
+ }
937
931
  _normalizeLink(item, prefix) {
938
932
  if (item.link && !this._isExternalLink(item.link)) {
939
933
  item.link = item.link.startsWith('/')
@@ -2290,15 +2284,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
2290
2284
  args: [{ selector: 'ul[f-table-of-content-items]', changeDetection: ChangeDetectionStrategy.Default, standalone: true, template: "@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", styles: [":host{list-style:none;margin:0;padding:0}:host li{overflow-wrap:break-word;color:var(--secondary-text);max-width:180px}:host li a{display:block;line-height:var(--on-page-navigation-item-height);font-size:14px;color:inherit;font-weight:400}:host li.active{color:var(--primary-text)}:host li+ul{padding:0 16px}\n"] }]
2291
2285
  }] });
2292
2286
 
2293
- class ActivateTocByHashRequest {
2294
- hash;
2295
- constructor(hash) {
2296
- this.hash = hash;
2287
+ class ActivateTocByHashHandler {
2288
+ _provider;
2289
+ constructor(_injector) {
2290
+ this._provider = _injector.get(DocumentationStore);
2297
2291
  }
2298
- }
2299
-
2300
- let ActivateTocByHashHandler = class ActivateTocByHashHandler {
2301
- _provider = inject(DocumentationStore);
2302
2292
  handle(payload) {
2303
2293
  this._provider.tocData.update((data) => ({
2304
2294
  ...data,
@@ -2308,70 +2298,20 @@ let ActivateTocByHashHandler = class ActivateTocByHashHandler {
2308
2298
  })),
2309
2299
  }));
2310
2300
  }
2311
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ActivateTocByHashHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2312
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ActivateTocByHashHandler });
2313
- };
2314
- ActivateTocByHashHandler = __decorate([
2315
- FExecutionRegister(ActivateTocByHashRequest)
2316
- ], ActivateTocByHashHandler);
2317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ActivateTocByHashHandler, decorators: [{
2318
- type: Injectable
2319
- }] });
2320
-
2321
- class TableOfContentComponent {
2322
- _elementRef = inject((ElementRef));
2323
- _browser = inject(BrowserService);
2324
- _provider = inject(DocumentationStore);
2325
- _mediator = inject(FMediator);
2326
- tocData = computed(() => {
2327
- return this._provider.tocData();
2328
- });
2329
- activeMarkerPosition = computed(() => {
2330
- const index = this.tocData()?.flat.findIndex((x) => x.isActive) || 0;
2331
- return this._getActiveMarkerPosition(index);
2332
- });
2333
- title = inject(DocumentationStore).getToC().title;
2334
- _getActiveMarkerPosition(activeIndex) {
2335
- const itemHeight = parseInt(this._getComputedStyle(this._elementRef.nativeElement).getPropertyValue('--on-page-navigation-item-height'));
2336
- return (activeIndex + 1) * itemHeight + itemHeight / 4;
2337
- }
2338
- _getComputedStyle(element) {
2339
- return this._browser.window.getComputedStyle(element);
2340
- }
2341
- _onDocumentClick(event) {
2342
- const target = event.target;
2343
- if (target.tagName === 'A') {
2344
- event.preventDefault();
2345
- this._scrollTo(target.getAttribute('href'));
2346
- }
2347
- }
2348
- _scrollTo(hash) {
2349
- this._mediator.execute(new ActivateTocByHashRequest(hash));
2350
- this._mediator.execute(new ScrollToElementInContainerRequest(hash));
2351
- }
2352
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TableOfContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2353
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: TableOfContentComponent, isStandalone: true, selector: "aside[f-table-of-content]", host: { listeners: { "click": "_onDocumentClick($event)" } }, ngImport: i0, template: "@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", styles: [":host{--on-page-navigation-item-height: 32px;display:none;padding-left:16px;border-left:1px solid var(--divider-color);font-size:13px;font-weight:500;position:relative}:host .title{line-height:32px;font-size:14px;font-weight:600}@media (min-width: 1280px){:host{display:block;width:var(--on-page-navigation-width);position:fixed;top:calc(var(--header-height) + 48px);right:max(var(--page-padding),(100vw - var(--layout-max-width)) / 3)}}:host .active-marker{position:absolute;top:0;left:0;width:2px;height:calc(var(--on-page-navigation-item-height) / 2);border-radius:2px;background-color:var(--primary-1);transition:top .25s cubic-bezier(0,1,.5,1),opacity .25s}\n"], dependencies: [{ kind: "component", type: TableOfContentItemsComponent, selector: "ul[f-table-of-content-items]", inputs: ["items"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2354
- }
2355
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TableOfContentComponent, decorators: [{
2356
- type: Component,
2357
- args: [{ selector: 'aside[f-table-of-content]', standalone: true, imports: [TableOfContentItemsComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@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", styles: [":host{--on-page-navigation-item-height: 32px;display:none;padding-left:16px;border-left:1px solid var(--divider-color);font-size:13px;font-weight:500;position:relative}:host .title{line-height:32px;font-size:14px;font-weight:600}@media (min-width: 1280px){:host{display:block;width:var(--on-page-navigation-width);position:fixed;top:calc(var(--header-height) + 48px);right:max(var(--page-padding),(100vw - var(--layout-max-width)) / 3)}}:host .active-marker{position:absolute;top:0;left:0;width:2px;height:calc(var(--on-page-navigation-item-height) / 2);border-radius:2px;background-color:var(--primary-1);transition:top .25s cubic-bezier(0,1,.5,1),opacity .25s}\n"] }]
2358
- }], propDecorators: { _onDocumentClick: [{
2359
- type: HostListener,
2360
- args: ['click', ['$event']]
2361
- }] } });
2362
-
2363
- class CalculateHashFromScrollPositionAndActivateTocRequest {
2364
2301
  }
2365
2302
 
2366
- class GetAbsoluteTopToContainerRequest {
2367
- element;
2368
- constructor(element) {
2369
- this.element = element;
2303
+ class ActivateTocByHashRequest {
2304
+ hash;
2305
+ constructor(hash) {
2306
+ this.hash = hash;
2370
2307
  }
2371
2308
  }
2372
2309
 
2373
- let GetAbsoluteTopToContainerHandler = class GetAbsoluteTopToContainerHandler {
2374
- _scrollableContainer = inject(SCROLLABLE_CONTAINER);
2310
+ class GetAbsoluteTopToContainerHandler {
2311
+ _scrollableContainer;
2312
+ constructor(_injector) {
2313
+ this._scrollableContainer = _injector.get(SCROLLABLE_CONTAINER);
2314
+ }
2375
2315
  handle(request) {
2376
2316
  let element = request.element;
2377
2317
  let result = 0;
@@ -2383,21 +2323,26 @@ let GetAbsoluteTopToContainerHandler = class GetAbsoluteTopToContainerHandler {
2383
2323
  }
2384
2324
  return result;
2385
2325
  }
2386
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: GetAbsoluteTopToContainerHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2387
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: GetAbsoluteTopToContainerHandler });
2388
- };
2389
- GetAbsoluteTopToContainerHandler = __decorate([
2390
- FExecutionRegister(GetAbsoluteTopToContainerRequest)
2391
- ], GetAbsoluteTopToContainerHandler);
2392
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: GetAbsoluteTopToContainerHandler, decorators: [{
2393
- type: Injectable
2394
- }] });
2326
+ }
2395
2327
 
2396
- let CalculateHashFromScrollPositionAndActivateTocHandler = class CalculateHashFromScrollPositionAndActivateTocHandler {
2397
- _browser = inject(BrowserService);
2398
- _mediator = inject(FMediator);
2399
- _provider = inject(DocumentationStore);
2400
- _scrollableContainer = inject(SCROLLABLE_CONTAINER);
2328
+ class GetAbsoluteTopToContainerRequest {
2329
+ element;
2330
+ constructor(element) {
2331
+ this.element = element;
2332
+ }
2333
+ }
2334
+
2335
+ class CalculateHashFromScrollPositionAndActivateTocHandler {
2336
+ _injector;
2337
+ _browser;
2338
+ _provider;
2339
+ _scrollableContainer;
2340
+ constructor(_injector) {
2341
+ this._injector = _injector;
2342
+ this._browser = _injector.get(BrowserService);
2343
+ this._provider = _injector.get(DocumentationStore);
2344
+ this._scrollableContainer = _injector.get(SCROLLABLE_CONTAINER);
2345
+ }
2401
2346
  handle() {
2402
2347
  let result;
2403
2348
  const containerScrollTop = this._getContainerScrollTop();
@@ -2410,7 +2355,7 @@ let CalculateHashFromScrollPositionAndActivateTocHandler = class CalculateHashFr
2410
2355
  result = this._findTargetHashByPosition(containerScrollTop, elementsWithTopPosition);
2411
2356
  }
2412
2357
  }
2413
- this._mediator.execute(new ActivateTocByHashRequest(result));
2358
+ new ActivateTocByHashHandler(this._injector).handle(new ActivateTocByHashRequest(result));
2414
2359
  }
2415
2360
  _getContainerScrollTop() {
2416
2361
  return this._scrollableContainer.htmlElement.scrollTop + this._getHeaderHeight();
@@ -2429,7 +2374,7 @@ let CalculateHashFromScrollPositionAndActivateTocHandler = class CalculateHashFr
2429
2374
  }).filter((x) => !Number.isNaN(x.top));
2430
2375
  }
2431
2376
  _getAbsoluteTopToContainer(element) {
2432
- return this._mediator.execute(new GetAbsoluteTopToContainerRequest(element));
2377
+ return new GetAbsoluteTopToContainerHandler(this._injector).handle(new GetAbsoluteTopToContainerRequest(element));
2433
2378
  }
2434
2379
  _isScrollAtBottom(containerScrollTop) {
2435
2380
  return Math.abs(containerScrollTop - this._getHeaderHeight() + this._scrollableContainer.htmlElement.clientHeight - this._scrollableContainer.htmlElement.scrollHeight) < 1;
@@ -2443,21 +2388,9 @@ let CalculateHashFromScrollPositionAndActivateTocHandler = class CalculateHashFr
2443
2388
  }
2444
2389
  return result;
2445
2390
  }
2446
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CalculateHashFromScrollPositionAndActivateTocHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2447
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CalculateHashFromScrollPositionAndActivateTocHandler });
2448
- };
2449
- CalculateHashFromScrollPositionAndActivateTocHandler = __decorate([
2450
- FExecutionRegister(CalculateHashFromScrollPositionAndActivateTocRequest)
2451
- ], CalculateHashFromScrollPositionAndActivateTocHandler);
2452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CalculateHashFromScrollPositionAndActivateTocHandler, decorators: [{
2453
- type: Injectable
2454
- }] });
2391
+ }
2455
2392
 
2456
- class CalculateTableOfContentDataRequest {
2457
- fMarkdownPage;
2458
- constructor(fMarkdownPage) {
2459
- this.fMarkdownPage = fMarkdownPage;
2460
- }
2393
+ class CalculateHashFromScrollPositionAndActivateTocRequest {
2461
2394
  }
2462
2395
 
2463
2396
  class TableOfContentData {
@@ -2469,9 +2402,13 @@ class TableOfContentData {
2469
2402
  }
2470
2403
  }
2471
2404
 
2472
- let CalculateTableOfContentDataHandler = class CalculateTableOfContentDataHandler {
2473
- _provider = inject(DocumentationStore);
2474
- _mediator = inject(FMediator);
2405
+ class CalculateTableOfContentDataHandler {
2406
+ _injector;
2407
+ _provider;
2408
+ constructor(_injector) {
2409
+ this._injector = _injector;
2410
+ this._provider = _injector.get(DocumentationStore);
2411
+ }
2475
2412
  handle(request) {
2476
2413
  const flat = [];
2477
2414
  const tree = [];
@@ -2482,7 +2419,7 @@ let CalculateTableOfContentDataHandler = class CalculateTableOfContentDataHandle
2482
2419
  flat.push(tocItem);
2483
2420
  });
2484
2421
  this._provider.tocData.set(new TableOfContentData(flat, tree));
2485
- this._mediator.send(new CalculateHashFromScrollPositionAndActivateTocRequest());
2422
+ new CalculateHashFromScrollPositionAndActivateTocHandler(this._injector).handle();
2486
2423
  }
2487
2424
  _getNavigationSelectors(fMarkdownPage, tocRange) {
2488
2425
  if (!tocRange || tocRange.start < 1 || tocRange.end > 6) {
@@ -2521,31 +2458,27 @@ let CalculateTableOfContentDataHandler = class CalculateTableOfContentDataHandle
2521
2458
  }
2522
2459
  stack.push(tocItem);
2523
2460
  }
2524
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CalculateTableOfContentDataHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2525
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CalculateTableOfContentDataHandler });
2526
- };
2527
- CalculateTableOfContentDataHandler = __decorate([
2528
- FExecutionRegister(CalculateTableOfContentDataRequest)
2529
- ], CalculateTableOfContentDataHandler);
2530
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CalculateTableOfContentDataHandler, decorators: [{
2531
- type: Injectable
2532
- }] });
2461
+ }
2533
2462
 
2534
- class RenderDynamicComponentsRequest {
2535
- hostElement;
2536
- constructor(hostElement) {
2537
- this.hostElement = hostElement;
2463
+ class CalculateTableOfContentDataRequest {
2464
+ fMarkdownPage;
2465
+ constructor(fMarkdownPage) {
2466
+ this.fMarkdownPage = fMarkdownPage;
2538
2467
  }
2539
2468
  }
2540
2469
 
2541
- let RenderDynamicComponentsHandler = class RenderDynamicComponentsHandler {
2542
- _provider = inject(DocumentationStore);
2543
- _containerRef = inject(ViewContainerRef);
2470
+ class RenderDynamicComponentsHandler {
2544
2471
  _componentsMap = [
2545
2472
  { tag: 'f-code-group', component: FCodeGroupComponent },
2546
2473
  { tag: 'f-preview', component: FPreviewComponent },
2547
2474
  { tag: 'f-preview-group-filters', component: FPreviewGroupFiltersComponent },
2548
2475
  ];
2476
+ _provider;
2477
+ _containerRef;
2478
+ constructor(_injector) {
2479
+ this._provider = _injector.get(DocumentationStore);
2480
+ this._containerRef = _injector.get(ViewContainerRef);
2481
+ }
2549
2482
  handle(request) {
2550
2483
  this._provider.disposeDComponents();
2551
2484
  this._componentsMap.forEach(({ tag, component }) => {
@@ -2587,7 +2520,8 @@ let RenderDynamicComponentsHandler = class RenderDynamicComponentsHandler {
2587
2520
  value = JSON.parse(value);
2588
2521
  // eslint-disable-next-line no-unused-vars,@typescript-eslint/no-unused-vars
2589
2522
  }
2590
- catch (e) { /* empty */ }
2523
+ catch (e) { /* empty */
2524
+ }
2591
2525
  }
2592
2526
  if (componentRef.instance[key]?.set) {
2593
2527
  componentRef.instance[key].set(value);
@@ -2604,25 +2538,20 @@ let RenderDynamicComponentsHandler = class RenderDynamicComponentsHandler {
2604
2538
  _logError(tag, error) {
2605
2539
  console.error(`Error inserting component for <${tag}>:`, error);
2606
2540
  }
2607
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RenderDynamicComponentsHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2608
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RenderDynamicComponentsHandler });
2609
- };
2610
- RenderDynamicComponentsHandler = __decorate([
2611
- FExecutionRegister(RenderDynamicComponentsRequest)
2612
- ], RenderDynamicComponentsHandler);
2613
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: RenderDynamicComponentsHandler, decorators: [{
2614
- type: Injectable
2615
- }] });
2541
+ }
2616
2542
 
2617
- class ScrollToElementInContainerRequest {
2618
- hash;
2619
- constructor(hash) {
2620
- this.hash = hash;
2543
+ class RenderDynamicComponentsRequest {
2544
+ hostElement;
2545
+ constructor(hostElement) {
2546
+ this.hostElement = hostElement;
2621
2547
  }
2622
2548
  }
2623
2549
 
2624
- let ScrollToElementInContainerHandler = class ScrollToElementInContainerHandler {
2625
- _scrollableContainer = inject(SCROLLABLE_CONTAINER);
2550
+ class ScrollToElementInContainerHandler {
2551
+ _scrollableContainer;
2552
+ constructor(_injector) {
2553
+ this._scrollableContainer = _injector.get(SCROLLABLE_CONTAINER);
2554
+ }
2626
2555
  handle(payload) {
2627
2556
  this._scrollableContainer.htmlElement.scrollTo({
2628
2557
  top: this._getScrollTo(this._getScrollToElement(payload.hash)) - 64,
@@ -2651,30 +2580,62 @@ let ScrollToElementInContainerHandler = class ScrollToElementInContainerHandler
2651
2580
  _getContainerTop() {
2652
2581
  return this._scrollableContainer.htmlElement.getBoundingClientRect().top;
2653
2582
  }
2654
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollToElementInContainerHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2655
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollToElementInContainerHandler });
2656
- };
2657
- ScrollToElementInContainerHandler = __decorate([
2658
- FExecutionRegister(ScrollToElementInContainerRequest)
2659
- ], ScrollToElementInContainerHandler);
2660
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollToElementInContainerHandler, decorators: [{
2661
- type: Injectable
2662
- }] });
2583
+ }
2584
+
2585
+ class ScrollToElementInContainerRequest {
2586
+ hash;
2587
+ constructor(hash) {
2588
+ this.hash = hash;
2589
+ }
2590
+ }
2663
2591
 
2664
2592
  const SCROLLABLE_CONTAINER = new InjectionToken('SCROLLABLE_CONTAINER');
2665
2593
 
2666
- const SCROLLABLE_CONTAINER_FEATURES = [
2667
- ActivateTocByHashHandler,
2668
- CalculateHashFromScrollPositionAndActivateTocHandler,
2669
- GetAbsoluteTopToContainerHandler,
2670
- CalculateTableOfContentDataHandler,
2671
- RenderDynamicComponentsHandler,
2672
- ScrollToElementInContainerHandler,
2673
- ];
2594
+ class TableOfContentComponent {
2595
+ _elementRef = inject((ElementRef));
2596
+ _browser = inject(BrowserService);
2597
+ _provider = inject(DocumentationStore);
2598
+ _injector = inject(Injector);
2599
+ tocData = computed(() => {
2600
+ return this._provider.tocData();
2601
+ });
2602
+ activeMarkerPosition = computed(() => {
2603
+ const index = this.tocData()?.flat.findIndex((x) => x.isActive) || 0;
2604
+ return this._getActiveMarkerPosition(index);
2605
+ });
2606
+ title = inject(DocumentationStore).getToC().title;
2607
+ _getActiveMarkerPosition(activeIndex) {
2608
+ const itemHeight = parseInt(this._getComputedStyle(this._elementRef.nativeElement).getPropertyValue('--on-page-navigation-item-height'));
2609
+ return (activeIndex + 1) * itemHeight + itemHeight / 4;
2610
+ }
2611
+ _getComputedStyle(element) {
2612
+ return this._browser.window.getComputedStyle(element);
2613
+ }
2614
+ _onDocumentClick(event) {
2615
+ const target = event.target;
2616
+ if (target.tagName === 'A') {
2617
+ event.preventDefault();
2618
+ this._scrollTo(target.getAttribute('href'));
2619
+ }
2620
+ }
2621
+ _scrollTo(hash) {
2622
+ new ActivateTocByHashHandler(this._injector).handle(new ActivateTocByHashRequest(hash));
2623
+ new ScrollToElementInContainerHandler(this._injector).handle(new ScrollToElementInContainerRequest(hash));
2624
+ }
2625
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TableOfContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2626
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: TableOfContentComponent, isStandalone: true, selector: "aside[f-table-of-content]", host: { listeners: { "click": "_onDocumentClick($event)" } }, ngImport: i0, template: "@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", styles: [":host{--on-page-navigation-item-height: 32px;display:none;padding-left:16px;border-left:1px solid var(--divider-color);font-size:13px;font-weight:500;position:relative}:host .title{line-height:32px;font-size:14px;font-weight:600}@media (min-width: 1280px){:host{display:block;width:var(--on-page-navigation-width);position:fixed;top:calc(var(--header-height) + 48px);right:max(var(--page-padding),(100vw - var(--layout-max-width)) / 3)}}:host .active-marker{position:absolute;top:0;left:0;width:2px;height:calc(var(--on-page-navigation-item-height) / 2);border-radius:2px;background-color:var(--primary-1);transition:top .25s cubic-bezier(0,1,.5,1),opacity .25s}\n"], dependencies: [{ kind: "component", type: TableOfContentItemsComponent, selector: "ul[f-table-of-content-items]", inputs: ["items"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2627
+ }
2628
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TableOfContentComponent, decorators: [{
2629
+ type: Component,
2630
+ args: [{ selector: 'aside[f-table-of-content]', standalone: true, imports: [TableOfContentItemsComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@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", styles: [":host{--on-page-navigation-item-height: 32px;display:none;padding-left:16px;border-left:1px solid var(--divider-color);font-size:13px;font-weight:500;position:relative}:host .title{line-height:32px;font-size:14px;font-weight:600}@media (min-width: 1280px){:host{display:block;width:var(--on-page-navigation-width);position:fixed;top:calc(var(--header-height) + 48px);right:max(var(--page-padding),(100vw - var(--layout-max-width)) / 3)}}:host .active-marker{position:absolute;top:0;left:0;width:2px;height:calc(var(--on-page-navigation-item-height) / 2);border-radius:2px;background-color:var(--primary-1);transition:top .25s cubic-bezier(0,1,.5,1),opacity .25s}\n"] }]
2631
+ }], propDecorators: { _onDocumentClick: [{
2632
+ type: HostListener,
2633
+ args: ['click', ['$event']]
2634
+ }] } });
2674
2635
 
2675
2636
  class ScrollableContainerComponent {
2676
- _mediator = inject(FMediator);
2677
2637
  _destroyRef = inject(DestroyRef);
2638
+ _injector = inject(Injector);
2678
2639
  htmlElement = inject((ElementRef)).nativeElement;
2679
2640
  ngOnInit() {
2680
2641
  fromEvent(this.htmlElement, 'scroll')
@@ -2682,7 +2643,7 @@ class ScrollableContainerComponent {
2682
2643
  .subscribe(() => this._calculateHashAndActivate());
2683
2644
  }
2684
2645
  _calculateHashAndActivate() {
2685
- this._mediator.send(new CalculateHashFromScrollPositionAndActivateTocRequest());
2646
+ new CalculateHashFromScrollPositionAndActivateTocHandler(this._injector).handle();
2686
2647
  }
2687
2648
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollableContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2688
2649
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ScrollableContainerComponent, isStandalone: true, selector: "f-scrollable-container", providers: [
@@ -2690,8 +2651,6 @@ class ScrollableContainerComponent {
2690
2651
  provide: SCROLLABLE_CONTAINER,
2691
2652
  useExisting: forwardRef(() => ScrollableContainerComponent),
2692
2653
  },
2693
- FMediator,
2694
- ...SCROLLABLE_CONTAINER_FEATURES,
2695
2654
  ], ngImport: i0, template: "<ng-content></ng-content>\n<aside f-table-of-content></aside>\n\n\n", styles: [":host{position:relative;width:100%;height:100%;overflow:hidden;overflow-y:auto}\n"], dependencies: [{ kind: "component", type: TableOfContentComponent, selector: "aside[f-table-of-content]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2696
2655
  }
2697
2656
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ScrollableContainerComponent, decorators: [{
@@ -2701,8 +2660,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
2701
2660
  provide: SCROLLABLE_CONTAINER,
2702
2661
  useExisting: forwardRef(() => ScrollableContainerComponent),
2703
2662
  },
2704
- FMediator,
2705
- ...SCROLLABLE_CONTAINER_FEATURES,
2706
2663
  ], changeDetection: ChangeDetectionStrategy.OnPush, imports: [
2707
2664
  TableOfContentComponent,
2708
2665
  ], template: "<ng-content></ng-content>\n<aside f-table-of-content></aside>\n\n\n", styles: [":host{position:relative;width:100%;height:100%;overflow:hidden;overflow-y:auto}\n"] }]
@@ -2716,7 +2673,6 @@ class FMarkdownRendererComponent {
2716
2673
  _destroyRef = inject(DestroyRef);
2717
2674
  _injector = inject(Injector);
2718
2675
  _browser = inject(BrowserService);
2719
- _mediator = inject(FMediator);
2720
2676
  _markdown = inject(MarkdownService);
2721
2677
  _provider = inject(DocumentationStore);
2722
2678
  get _markdownPath() {
@@ -2740,8 +2696,8 @@ class FMarkdownRendererComponent {
2740
2696
  if (html && this._browser.isBrowser()) {
2741
2697
  untracked(() => {
2742
2698
  raf(() => {
2743
- this._mediator.execute(new RenderDynamicComponentsRequest(this._hostElement));
2744
- this._mediator.execute(new CalculateTableOfContentDataRequest(this._hostElement));
2699
+ new RenderDynamicComponentsHandler(this._injector).handle(new RenderDynamicComponentsRequest(this._hostElement));
2700
+ new CalculateTableOfContentDataHandler(this._injector).handle(new CalculateTableOfContentDataRequest(this._hostElement));
2745
2701
  });
2746
2702
  });
2747
2703
  }
@@ -2868,8 +2824,6 @@ class DocumentationRootComponent {
2868
2824
  provide: TOGGLE_NAVIGATION_COMPONENT,
2869
2825
  useExisting: DocumentationRootComponent,
2870
2826
  },
2871
- FMediator,
2872
- ...COMMON_FEATURES,
2873
2827
  ], ngImport: i0, template: "<f-navigation-panel [class.visible]=\"isNavigationVisible()\"></f-navigation-panel>\n<div class=\"f-backdrop\" [class.visible]=\"isNavigationVisible()\" (click)=\"onToggleNavigation(false)\"></div>\n\n<f-scrollable-container>\n <f-header></f-header>\n <router-outlet></router-outlet>\n</f-scrollable-container>\n\n@if (popover()) {\n <div class=\"popover\">{{ popover() }}</div>\n}\n", styles: [":host{display:flex;justify-content:flex-start;align-items:flex-start;height:100%;gap:5px}.f-backdrop{position:fixed;inset:0;opacity:0;z-index:var(--z-index-backdrop);background:var(--backdrop-color);transition:opacity .2s ease-in-out;pointer-events:none}.f-backdrop.visible{opacity:1;pointer-events:all}@media (min-width: 960px){.f-backdrop{position:unset}}.popover{position:fixed;min-width:120px;bottom:50%;left:50%;text-align:center;transform:translate(-50%,-50%);background-color:var(--code-view-copy-button-hover-background);border:1px solid var(--code-view-copy-button-border-color);box-shadow:var(--shadow-3);color:var(--primary-text);font-size:14px;padding:4px 8px;border-radius:4px;z-index:var(--z-index-popover);opacity:1}\n"], dependencies: [{ kind: "component", type: NavigationPanelComponent, selector: "f-navigation-panel" }, { kind: "component", type: ScrollableContainerComponent, selector: "f-scrollable-container" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: HeaderComponent, selector: "f-header" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2874
2828
  }
2875
2829
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DocumentationRootComponent, decorators: [{
@@ -2894,8 +2848,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
2894
2848
  provide: TOGGLE_NAVIGATION_COMPONENT,
2895
2849
  useExisting: DocumentationRootComponent,
2896
2850
  },
2897
- FMediator,
2898
- ...COMMON_FEATURES,
2899
2851
  ], imports: [
2900
2852
  NavigationPanelComponent,
2901
2853
  ScrollableContainerComponent,
@@ -2919,12 +2871,11 @@ const DOCUMENTATION_ROUTES = [
2919
2871
 
2920
2872
  var index$1 = /*#__PURE__*/Object.freeze({
2921
2873
  __proto__: null,
2922
- get ActivateTocByHashHandler () { return ActivateTocByHashHandler; },
2874
+ ActivateTocByHashHandler: ActivateTocByHashHandler,
2923
2875
  ActivateTocByHashRequest: ActivateTocByHashRequest,
2924
- COMMON_FEATURES: COMMON_FEATURES,
2925
- get CalculateHashFromScrollPositionAndActivateTocHandler () { return CalculateHashFromScrollPositionAndActivateTocHandler; },
2876
+ CalculateHashFromScrollPositionAndActivateTocHandler: CalculateHashFromScrollPositionAndActivateTocHandler,
2926
2877
  CalculateHashFromScrollPositionAndActivateTocRequest: CalculateHashFromScrollPositionAndActivateTocRequest,
2927
- get CalculateTableOfContentDataHandler () { return CalculateTableOfContentDataHandler; },
2878
+ CalculateTableOfContentDataHandler: CalculateTableOfContentDataHandler,
2928
2879
  CalculateTableOfContentDataRequest: CalculateTableOfContentDataRequest,
2929
2880
  DOCUMENTATION_CONFIGURATION: DOCUMENTATION_CONFIGURATION,
2930
2881
  DOCUMENTATION_ROUTES: DOCUMENTATION_ROUTES,
@@ -2952,7 +2903,7 @@ var index$1 = /*#__PURE__*/Object.freeze({
2952
2903
  FPreviewGroupService: FPreviewGroupService,
2953
2904
  F_ACCEPT_COOKIES_KEY: F_ACCEPT_COOKIES_KEY,
2954
2905
  F_PREVIEW_NAVIGATION_PROVIDER: F_PREVIEW_NAVIGATION_PROVIDER,
2955
- get GetAbsoluteTopToContainerHandler () { return GetAbsoluteTopToContainerHandler; },
2906
+ GetAbsoluteTopToContainerHandler: GetAbsoluteTopToContainerHandler,
2956
2907
  GetAbsoluteTopToContainerRequest: GetAbsoluteTopToContainerRequest,
2957
2908
  GetPreviousNextPageNavigationHandler: GetPreviousNextPageNavigationHandler,
2958
2909
  GetPreviousNextPageNavigationRequest: GetPreviousNextPageNavigationRequest,
@@ -2974,11 +2925,10 @@ var index$1 = /*#__PURE__*/Object.freeze({
2974
2925
  ParseGroupedCodeItems: ParseGroupedCodeItems,
2975
2926
  ParsePreviewGroup: ParsePreviewGroup,
2976
2927
  ParseSingleCodeItem: ParseSingleCodeItem,
2977
- get RenderDynamicComponentsHandler () { return RenderDynamicComponentsHandler; },
2928
+ RenderDynamicComponentsHandler: RenderDynamicComponentsHandler,
2978
2929
  RenderDynamicComponentsRequest: RenderDynamicComponentsRequest,
2979
2930
  SCROLLABLE_CONTAINER: SCROLLABLE_CONTAINER,
2980
- SCROLLABLE_CONTAINER_FEATURES: SCROLLABLE_CONTAINER_FEATURES,
2981
- get ScrollToElementInContainerHandler () { return ScrollToElementInContainerHandler; },
2931
+ ScrollToElementInContainerHandler: ScrollToElementInContainerHandler,
2982
2932
  ScrollToElementInContainerRequest: ScrollToElementInContainerRequest,
2983
2933
  ScrollableContainerComponent: ScrollableContainerComponent,
2984
2934
  TOGGLE_NAVIGATION_COMPONENT: TOGGLE_NAVIGATION_COMPONENT,
@@ -3256,5 +3206,5 @@ var index = /*#__PURE__*/Object.freeze({
3256
3206
  * Generated bundle index. Do not edit.
3257
3207
  */
3258
3208
 
3259
- export { ActivateTocByHashHandler, ActivateTocByHashRequest, COMMON_FEATURES, CalculateHashFromScrollPositionAndActivateTocHandler, CalculateHashFromScrollPositionAndActivateTocRequest, CalculateTableOfContentDataHandler, CalculateTableOfContentDataRequest, DOCUMENTATION_CONFIGURATION, DOCUMENTATION_ROUTES, DocumentationRootComponent, DocumentationStore, DropdownMenuComponent, EMarkdownContainerType, EParsedContainerType, FAnalyticsService, FCheckboxComponent, FCodeGroupComponent, FCodeGroupTabsComponent, FCodeViewComponent, FCookiePopupComponent, FExampleViewComponent, FFooterEditInformationComponent, FFooterNavigationButtonComponent, FFooterNavigationComponent, FHomePageButtonsRowComponent, FHomePageFeaturesComponent, FHomePageFooterComponent, FHomePageHeaderComponent, FHomePageHeroComponent, FHomePageMembershipsComponent, FInsertComponentDirective, FMarkdownFooterComponent, FMarkdownRendererComponent, FMetaService, FNavigationItemComponent, FPreviewBase, FPreviewComponent, FPreviewGroupFiltersComponent, FPreviewGroupService, FRadioButtonComponent, FSocialLinksComponent, FThemeButtonComponent, F_ACCEPT_COOKIES_KEY, F_PREVIEW_NAVIGATION_PROVIDER, F_SOCIAL_LINKS_PROVIDER, GetAbsoluteTopToContainerHandler, GetAbsoluteTopToContainerRequest, GetPreviousNextPageNavigationHandler, GetPreviousNextPageNavigationRequest, GetPreviousNextPageNavigationResponse, HEADER_CONFIGURATION, HEADER_CONFIGURATION_STORE, HOME_PAGE_CONFIGURATION, HOME_ROUTES, HamburgerButtonComponent, HandleNavigationLinksHandler, HandleNavigationLinksRequest, HeaderComponent, HighlightComponent, HighlightService, HomeRootComponent, HomeStore, InlineMenuComponent, LANGUAGES, MarkCodeFocusedBlocksPostProcessor, MarkdownContainerComponent, MarkdownService, NavigationGroupComponent, NavigationPanelComponent, NpmVersionComponent, OverflowObserverDirective, ParseAlerts, ParseAngularExampleWithCodeLinks, ParseGroupedCodeItems, ParsePreviewGroup, ParseSingleCodeItem, PopoverService, RIGHT_TOP_OVERLAY_POSITION, RenderDynamicComponentsHandler, RenderDynamicComponentsRequest, SCROLLABLE_CONTAINER, SCROLLABLE_CONTAINER_FEATURES, ScrollToElementInContainerHandler, ScrollToElementInContainerRequest, ScrollableContainerComponent, TOGGLE_NAVIGATION_COMPONENT, TableOfContentComponent, TableOfContentData, TableOfContentItemsComponent, ThemeService, coerceComponentHeight, copyToClipboard, defineLazyComponent, defineNavigationGroup, encodeDataAttr, extractComponent, getContent, isClosingToken, isOpeningToken, parseComponentTag, parseFileLinkLine, parseLanguageFromFileExtension, parseSingleBracketText, parseSyntaxLanguage, provide404Markdown, provideBackground, provideComponents, provideDirectory, provideDocumentation, provideDocumentationMeta, provideFooterNavigation, provideHeader, provideHeaderMediaLinks, provideHeaderNavigation, provideHero, provideHomeButtons, provideHomeFeatures, provideHomeFooter, provideHomePage, provideImage, provideLanguage, provideLogo, provideNavigation, provideTitle, provideTocData, setCookieConsent };
3209
+ export { ActivateTocByHashHandler, ActivateTocByHashRequest, CalculateHashFromScrollPositionAndActivateTocHandler, CalculateHashFromScrollPositionAndActivateTocRequest, CalculateTableOfContentDataHandler, CalculateTableOfContentDataRequest, DOCUMENTATION_CONFIGURATION, DOCUMENTATION_ROUTES, DocumentationRootComponent, DocumentationStore, DropdownMenuComponent, EMarkdownContainerType, EParsedContainerType, FAnalyticsService, FCheckboxComponent, FCodeGroupComponent, FCodeGroupTabsComponent, FCodeViewComponent, FCookiePopupComponent, FExampleViewComponent, FFooterEditInformationComponent, FFooterNavigationButtonComponent, FFooterNavigationComponent, FHomePageButtonsRowComponent, FHomePageFeaturesComponent, FHomePageFooterComponent, FHomePageHeaderComponent, FHomePageHeroComponent, FHomePageMembershipsComponent, FInsertComponentDirective, FMarkdownFooterComponent, FMarkdownRendererComponent, FMetaService, FNavigationItemComponent, FPreviewBase, FPreviewComponent, FPreviewGroupFiltersComponent, FPreviewGroupService, FRadioButtonComponent, FSocialLinksComponent, FThemeButtonComponent, F_ACCEPT_COOKIES_KEY, F_PREVIEW_NAVIGATION_PROVIDER, F_SOCIAL_LINKS_PROVIDER, GetAbsoluteTopToContainerHandler, GetAbsoluteTopToContainerRequest, GetPreviousNextPageNavigationHandler, GetPreviousNextPageNavigationRequest, GetPreviousNextPageNavigationResponse, HEADER_CONFIGURATION, HEADER_CONFIGURATION_STORE, HOME_PAGE_CONFIGURATION, HOME_ROUTES, HamburgerButtonComponent, HandleNavigationLinksHandler, HandleNavigationLinksRequest, HeaderComponent, HighlightComponent, HighlightService, HomeRootComponent, HomeStore, InlineMenuComponent, LANGUAGES, MarkCodeFocusedBlocksPostProcessor, MarkdownContainerComponent, MarkdownService, NavigationGroupComponent, NavigationPanelComponent, NpmVersionComponent, OverflowObserverDirective, ParseAlerts, ParseAngularExampleWithCodeLinks, ParseGroupedCodeItems, ParsePreviewGroup, ParseSingleCodeItem, PopoverService, RIGHT_TOP_OVERLAY_POSITION, RenderDynamicComponentsHandler, RenderDynamicComponentsRequest, SCROLLABLE_CONTAINER, ScrollToElementInContainerHandler, ScrollToElementInContainerRequest, ScrollableContainerComponent, TOGGLE_NAVIGATION_COMPONENT, TableOfContentComponent, TableOfContentData, TableOfContentItemsComponent, ThemeService, coerceComponentHeight, copyToClipboard, defineLazyComponent, defineNavigationGroup, encodeDataAttr, extractComponent, getContent, isClosingToken, isOpeningToken, parseComponentTag, parseFileLinkLine, parseLanguageFromFileExtension, parseSingleBracketText, parseSyntaxLanguage, provide404Markdown, provideBackground, provideComponents, provideDirectory, provideDocumentation, provideDocumentationMeta, provideFooterNavigation, provideHeader, provideHeaderMediaLinks, provideHeaderNavigation, provideHero, provideHomeButtons, provideHomeFeatures, provideHomeFooter, provideHomePage, provideImage, provideLanguage, provideLogo, provideNavigation, provideTitle, provideTocData, setCookieConsent };
3260
3210
  //# sourceMappingURL=foblex-m-render.mjs.map