@foblex/m-render 2.5.2 → 2.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/common-components/index.mjs +1 -5
- package/esm2022/lib/common-services/f-popover.service.mjs +6 -4
- package/esm2022/lib/domain/i-environment-service.mjs +1 -1
- package/esm2022/lib/f-documentation/f-documentation.component.mjs +14 -22
- package/esm2022/lib/{common-components → f-documentation}/f-hamburger-button/f-hamburger-button.component.mjs +2 -2
- package/esm2022/lib/f-documentation/f-header/f-header.component.mjs +6 -4
- package/esm2022/lib/f-documentation/f-header-menu/f-header-menu.component.mjs +26 -0
- package/esm2022/lib/f-documentation/f-social-links/f-social-links.component.mjs +13 -0
- package/esm2022/lib/f-documentation/f-version/f-version.component.mjs +16 -0
- package/esm2022/lib/f-documentation/index.mjs +5 -1
- package/esm2022/lib/f-documentation/router.mjs +2 -2
- package/esm2022/lib/f-home-page/domain/i-home-page-environment.mjs +1 -1
- package/esm2022/lib/f-home-page/f-home-page-environment.service.mjs +1 -11
- package/esm2022/lib/f-home-page/f-home-page.component.mjs +12 -15
- package/fesm2022/foblex-m-render.mjs +182 -195
- package/fesm2022/foblex-m-render.mjs.map +1 -1
- package/lib/common-components/index.d.ts +0 -4
- package/lib/common-services/f-popover.service.d.ts +2 -1
- package/lib/domain/i-environment-service.d.ts +0 -6
- package/lib/f-documentation/f-documentation.component.d.ts +6 -9
- package/lib/{common-components → f-documentation}/f-hamburger-button/f-hamburger-button.component.d.ts +1 -1
- package/lib/{common-components → f-documentation}/f-social-links/f-social-links.component.d.ts +1 -1
- package/lib/f-documentation/index.d.ts +4 -0
- package/lib/f-documentation/router.d.ts +1 -1
- package/lib/f-home-page/domain/i-home-page-environment.d.ts +1 -2
- package/lib/f-home-page/f-home-page-environment.service.d.ts +1 -5
- package/lib/f-home-page/f-home-page.component.d.ts +2 -2
- package/package.json +1 -1
- package/esm2022/lib/common-components/f-header-menu/f-header-menu.component.mjs +0 -26
- package/esm2022/lib/common-components/f-social-links/f-social-links.component.mjs +0 -13
- package/esm2022/lib/common-components/f-version/f-version.component.mjs +0 -16
- /package/lib/{common-components → f-documentation}/f-header-menu/f-header-menu.component.d.ts +0 -0
- /package/lib/{common-components → f-documentation}/f-version/f-version.component.d.ts +0 -0
@@ -1,11 +1,11 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { EventEmitter, booleanAttribute, Component, ChangeDetectionStrategy, Input, Output, ViewChild, HostListener, inject, Injectable, Inject, signal, InjectionToken, Optional, ViewChildren, ViewContainerRef, ElementRef,
|
2
|
+
import { EventEmitter, booleanAttribute, Component, ChangeDetectionStrategy, Input, Output, ViewChild, HostListener, inject, Injectable, Inject, signal, InjectionToken, Optional, ViewChildren, ViewContainerRef, ElementRef, DestroyRef, ChangeDetectorRef } from '@angular/core';
|
3
3
|
import * as i2 from '@foblex/platform';
|
4
4
|
import { F_LOCAL_STORAGE } from '@foblex/platform';
|
5
|
-
import { DOCUMENT, ɵgetDOM as _getDOM,
|
5
|
+
import { DOCUMENT, ɵgetDOM as _getDOM, AsyncPipe, JsonPipe } from '@angular/common';
|
6
6
|
import * as i1 from '@angular/router';
|
7
|
-
import { NavigationEnd,
|
8
|
-
import { startWith, filter, BehaviorSubject, of, map, Subscription, from, switchMap, Observable, fromEvent,
|
7
|
+
import { NavigationEnd, Router, RouterLink, ActivatedRoute, RouterOutlet } from '@angular/router';
|
8
|
+
import { startWith, filter, BehaviorSubject, Subject, of, map, Subscription, from, switchMap, Observable, fromEvent, debounceTime } from 'rxjs';
|
9
9
|
import { catchError, filter as filter$1, take, tap } from 'rxjs/operators';
|
10
10
|
import * as i1$1 from '@angular/common/http';
|
11
11
|
import { HttpClient } from '@angular/common/http';
|
@@ -13,6 +13,7 @@ import { deepClone } from '@foblex/utils';
|
|
13
13
|
import container from 'markdown-it-container';
|
14
14
|
import MarkdownIt from 'markdown-it';
|
15
15
|
import * as i2$1 from '@angular/platform-browser';
|
16
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
16
17
|
|
17
18
|
let uniqueId = 0;
|
18
19
|
class FCheckboxComponent {
|
@@ -346,9 +347,11 @@ class FPopoverService {
|
|
346
347
|
this.popover.next(message);
|
347
348
|
setTimeout(() => this.popover.next(null), 2000);
|
348
349
|
}
|
349
|
-
dispose() {
|
350
|
-
|
351
|
-
|
350
|
+
dispose(destroyRef) {
|
351
|
+
destroyRef.onDestroy(() => {
|
352
|
+
this.popover.next(null);
|
353
|
+
this.popover.complete();
|
354
|
+
});
|
352
355
|
}
|
353
356
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FPopoverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
354
357
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FPopoverService });
|
@@ -385,22 +388,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
385
388
|
args: [{ selector: 'f-cookie-popup', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!hasAccepted()) {\n <div class=\"docs-cookies-popup docs-invert-mode\">\n <p>This site uses cookies from Google to deliver its services and to analyze traffic.</p>\n\n <div>\n <a href=\"https://policies.google.com/technologies/cookies\" target=\"_blank\" rel=\"noopener\">\n <button class=\"f-button\" [attr.text]=\"'Learn more'\" aria-label=\"Learn More\">\n Learn more\n </button>\n </a>\n <button\n (click)=\"accept()\"\n class=\"f-button\"\n [attr.text]=\"'Ok, Got it'\"\n aria-label=\"Ok, Got it\">\n Ok, Got it\n </button>\n </div>\n </div>\n}\n", styles: [":host{position:fixed;bottom:16px;right:16px;z-index:99999;opacity:0;visibility:hidden;animation:1s linear forwards .5s fadeIn}.docs-cookies-popup{padding:1rem;background-color:var(--background-color);border:1px solid var(--divider-color);color:var(--primary-text);border-radius:var(--border-radius);font-size:14px;max-width:310px;transition:background-color .3s ease,border-color .3s ease,color .3s ease;box-shadow:var(--shadow-3)}.docs-cookies-popup>div{display:flex;gap:8px;align-items:center;width:100%;margin-block-start:1rem}.f-button{outline:none;border:none;height:unset;line-height:26px;font-size:14px;font-weight:500;border-radius:var(--border-radius)}@keyframes fadeIn{to{opacity:100%;visibility:visible}}\n"] }]
|
386
389
|
}], ctorParameters: () => [] });
|
387
390
|
|
388
|
-
class
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
391
|
+
class FStateService {
|
392
|
+
fBrowser;
|
393
|
+
theme = new Subject();
|
394
|
+
constructor(fBrowser) {
|
395
|
+
this.fBrowser = fBrowser;
|
396
|
+
}
|
397
|
+
get theme$() {
|
398
|
+
return this.theme.asObservable();
|
399
|
+
}
|
400
|
+
updateTheme() {
|
401
|
+
this.theme.next();
|
402
|
+
}
|
403
|
+
getPreferredTheme() {
|
404
|
+
return this.fBrowser.localStorage.getItem('preferred-theme')
|
405
|
+
|| (this.fBrowser.window.isMediaQuery('(prefers-color-scheme: dark)') ? 'dark' : 'light');
|
406
|
+
}
|
407
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FStateService, deps: [{ token: i2.BrowserService }], target: i0.ɵɵFactoryTarget.Injectable });
|
408
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FStateService, providedIn: 'root' });
|
393
409
|
}
|
394
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type:
|
410
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FStateService, decorators: [{
|
411
|
+
type: Injectable,
|
412
|
+
args: [{ providedIn: 'root' }]
|
413
|
+
}], ctorParameters: () => [{ type: i2.BrowserService }] });
|
414
|
+
|
415
|
+
class FThemeButtonComponent {
|
416
|
+
renderer;
|
417
|
+
fState;
|
418
|
+
fBrowser;
|
419
|
+
constructor(renderer, fState, fBrowser) {
|
420
|
+
this.renderer = renderer;
|
421
|
+
this.fState = fState;
|
422
|
+
this.fBrowser = fBrowser;
|
423
|
+
}
|
424
|
+
ngOnInit() {
|
425
|
+
if (this.fState.getPreferredTheme() === 'dark' && !this.isDocumentContainsDarkTheme()) {
|
426
|
+
this.renderer.addClass(this.fBrowser.document.documentElement, 'dark');
|
427
|
+
this.fBrowser.localStorage.setItem('preferred-theme', 'dark');
|
428
|
+
}
|
429
|
+
}
|
430
|
+
isDocumentContainsDarkTheme() {
|
431
|
+
return this.fBrowser.document.documentElement.classList.contains('dark');
|
432
|
+
}
|
433
|
+
onClick() {
|
434
|
+
if (this.fState.getPreferredTheme() === 'light' && !this.isDocumentContainsDarkTheme()) {
|
435
|
+
this.renderer.addClass(this.fBrowser.document.documentElement, 'dark');
|
436
|
+
this.fBrowser.localStorage.setItem('preferred-theme', 'dark');
|
437
|
+
}
|
438
|
+
else {
|
439
|
+
this.renderer.removeClass(this.fBrowser.document.documentElement, 'dark');
|
440
|
+
this.fBrowser.localStorage.setItem('preferred-theme', 'light');
|
441
|
+
}
|
442
|
+
this.fState.updateTheme();
|
443
|
+
}
|
444
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FThemeButtonComponent, deps: [{ token: i0.Renderer2 }, { token: FStateService }, { token: i2.BrowserService }], target: i0.ɵɵFactoryTarget.Component });
|
445
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FThemeButtonComponent, isStandalone: true, selector: "button[f-theme-button]", host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: "<div class=\"f-icon-container\">\n <div class=\"f-icon moon\"></div>\n <div class=\"f-icon sun\"></div>\n</div>\n", styles: [":host{margin:0 8px;position:relative;border-radius:11px;display:block;width:44px;min-width:44px;height:22px;border:1px solid var(--theme-button-border-color);background-color:var(--theme-button-background);cursor:pointer}:host:hover{border-color:var(--theme-button-hovered-border-color)}.f-icon-container{position:absolute;top:1px;left:1px;width:18px;height:18px;padding:3px;border-radius:50%;background-color:var(--theme-button-icon-background);transition:transform .4s}.f-icon-container .f-icon{position:absolute;top:3px;left:3px;width:12px;height:12px}.f-icon-container .sun{display:block}.f-icon-container .moon{display:none}.dark :host .f-icon-container{transform:translate(22px)}.dark :host .f-icon-container .sun{display:none}.dark :host .f-icon-container .moon{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
446
|
+
}
|
447
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FThemeButtonComponent, decorators: [{
|
395
448
|
type: Component,
|
396
|
-
args: [{ selector: '
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
}], propDecorators: { text: [{
|
401
|
-
type: Input
|
402
|
-
}], type: [{
|
403
|
-
type: Input
|
449
|
+
args: [{ selector: 'button[f-theme-button]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"f-icon-container\">\n <div class=\"f-icon moon\"></div>\n <div class=\"f-icon sun\"></div>\n</div>\n", styles: [":host{margin:0 8px;position:relative;border-radius:11px;display:block;width:44px;min-width:44px;height:22px;border:1px solid var(--theme-button-border-color);background-color:var(--theme-button-background);cursor:pointer}:host:hover{border-color:var(--theme-button-hovered-border-color)}.f-icon-container{position:absolute;top:1px;left:1px;width:18px;height:18px;padding:3px;border-radius:50%;background-color:var(--theme-button-icon-background);transition:transform .4s}.f-icon-container .f-icon{position:absolute;top:3px;left:3px;width:12px;height:12px}.f-icon-container .sun{display:block}.f-icon-container .moon{display:none}.dark :host .f-icon-container{transform:translate(22px)}.dark :host .f-icon-container .sun{display:none}.dark :host .f-icon-container .moon{display:block}\n"] }]
|
450
|
+
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: FStateService }, { type: i2.BrowserService }], propDecorators: { onClick: [{
|
451
|
+
type: HostListener,
|
452
|
+
args: ['click']
|
404
453
|
}] } });
|
405
454
|
|
406
455
|
class GetVersionRequest {
|
@@ -494,6 +543,46 @@ class HandleNavigationLinksRequest {
|
|
494
543
|
|
495
544
|
const INTERNAL_ENVIRONMENT_SERVICE = new InjectionToken('INTERNAL_ENVIRONMENT_SERVICE');
|
496
545
|
|
546
|
+
class FBadgeComponent {
|
547
|
+
text = '';
|
548
|
+
type = 'tip';
|
549
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
550
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FBadgeComponent, isStandalone: true, selector: "span[f-badge]", inputs: { text: "text", type: "type" }, host: { properties: { "class": "type" }, classAttribute: "f-badge" }, ngImport: i0, template: "{{ text }}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
551
|
+
}
|
552
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FBadgeComponent, decorators: [{
|
553
|
+
type: Component,
|
554
|
+
args: [{ selector: 'span[f-badge]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
555
|
+
'class': 'f-badge',
|
556
|
+
'[class]': 'type',
|
557
|
+
}, template: "{{ text }}\n" }]
|
558
|
+
}], propDecorators: { text: [{
|
559
|
+
type: Input
|
560
|
+
}], type: [{
|
561
|
+
type: Input
|
562
|
+
}] } });
|
563
|
+
|
564
|
+
class FHamburgerButtonComponent {
|
565
|
+
fDocumentation;
|
566
|
+
constructor(fDocumentation) {
|
567
|
+
this.fDocumentation = fDocumentation;
|
568
|
+
}
|
569
|
+
onShowNavigation() {
|
570
|
+
this.fDocumentation.onToggleNavigation(true);
|
571
|
+
}
|
572
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FHamburgerButtonComponent, deps: [{ token: F_DOCUMENTATION_COMPONENT }], target: i0.ɵɵFactoryTarget.Component });
|
573
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FHamburgerButtonComponent, isStandalone: true, selector: "button[f-hamburger-button]", host: { listeners: { "click": "onShowNavigation()" } }, ngImport: i0, template: "<span class=\"f-icon hamburger\"></span>\n\n", styles: [":host{background-color:transparent;border:0;display:flex;padding:0;margin-right:16px;color:var(--secondary-text);cursor:pointer}@media (min-width: 960px){:host{display:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
574
|
+
}
|
575
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FHamburgerButtonComponent, decorators: [{
|
576
|
+
type: Component,
|
577
|
+
args: [{ selector: 'button[f-hamburger-button]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"f-icon hamburger\"></span>\n\n", styles: [":host{background-color:transparent;border:0;display:flex;padding:0;margin-right:16px;color:var(--secondary-text);cursor:pointer}@media (min-width: 960px){:host{display:none}}\n"] }]
|
578
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
579
|
+
type: Inject,
|
580
|
+
args: [F_DOCUMENTATION_COMPONENT]
|
581
|
+
}] }], propDecorators: { onShowNavigation: [{
|
582
|
+
type: HostListener,
|
583
|
+
args: ['click']
|
584
|
+
}] } });
|
585
|
+
|
497
586
|
class FDocumentationEnvironmentService {
|
498
587
|
environment;
|
499
588
|
http;
|
@@ -558,6 +647,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
558
647
|
args: [F_DOCS_ENVIRONMENT]
|
559
648
|
}] }, { type: i1$1.HttpClient }] });
|
560
649
|
|
650
|
+
class FSocialLinksComponent {
|
651
|
+
links = inject(FDocumentationEnvironmentService).getSocialLinks();
|
652
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSocialLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
653
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FSocialLinksComponent, isStandalone: true, selector: "f-social-links", ngImport: i0, template: "@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", styles: [":host{display:flex;justify-content:flex-start;align-items:center}.header-link{width:36px;height:36px;padding:7.5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
654
|
+
}
|
655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSocialLinksComponent, decorators: [{
|
656
|
+
type: Component,
|
657
|
+
args: [{ selector: 'f-social-links', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@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", styles: [":host{display:flex;justify-content:flex-start;align-items:center}.header-link{width:36px;height:36px;padding:7.5px}\n"] }]
|
658
|
+
}] });
|
659
|
+
|
660
|
+
class FHeaderMenuComponent {
|
661
|
+
navigation = [];
|
662
|
+
_router = inject(Router);
|
663
|
+
_fEnvironmentService = inject(FDocumentationEnvironmentService);
|
664
|
+
ngOnInit() {
|
665
|
+
this.navigation = this._fEnvironmentService.getHeaderNavigation().map((x) => {
|
666
|
+
return {
|
667
|
+
...x,
|
668
|
+
isActive: this._router.url.startsWith(x.link)
|
669
|
+
};
|
670
|
+
});
|
671
|
+
}
|
672
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FHeaderMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
673
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FHeaderMenuComponent, isStandalone: true, selector: "f-header-menu", ngImport: i0, template: "@for (item of navigation; track item.link) {\n <a class=\"header-link\" [routerLink]=\"item.link\" [class.active]=\"item.isActive\">\n <span>{{ item.text }}</span>\n </a>\n}\n\n", styles: [":host{display:flex;justify-content:flex-start;align-items:center}.header-link{display:flex;align-items:center;padding:0 12px;line-height:var(--header-height);font-size:14px;font-weight:500;color:var(--primary-text);cursor:pointer}.header-link:hover,.header-link.active{color:var(--primary-1)}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
674
|
+
}
|
675
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FHeaderMenuComponent, decorators: [{
|
676
|
+
type: Component,
|
677
|
+
args: [{ selector: 'f-header-menu', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
678
|
+
RouterLink
|
679
|
+
], template: "@for (item of navigation; track item.link) {\n <a class=\"header-link\" [routerLink]=\"item.link\" [class.active]=\"item.isActive\">\n <span>{{ item.text }}</span>\n </a>\n}\n\n", styles: [":host{display:flex;justify-content:flex-start;align-items:center}.header-link{display:flex;align-items:center;padding:0 12px;line-height:var(--header-height);font-size:14px;font-weight:500;color:var(--primary-text);cursor:pointer}.header-link:hover,.header-link.active{color:var(--primary-1)}\n"] }]
|
680
|
+
}] });
|
681
|
+
|
682
|
+
class FVersionComponent {
|
683
|
+
version$ = inject(FDocumentationEnvironmentService).getVersion();
|
684
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FVersionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
685
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FVersionComponent, isStandalone: true, selector: "f-version", ngImport: i0, template: "@if (version$ | async;as version) {\n <span class=\"version\">v{{ version }}</span>\n}\n", styles: [".version{margin-left:8px;margin-right:8px;display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--primary-text)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
686
|
+
}
|
687
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FVersionComponent, decorators: [{
|
688
|
+
type: Component,
|
689
|
+
args: [{ selector: 'f-version', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
690
|
+
AsyncPipe
|
691
|
+
], template: "@if (version$ | async;as version) {\n <span class=\"version\">v{{ version }}</span>\n}\n", styles: [".version{margin-left:8px;margin-right:8px;display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--primary-text)}\n"] }]
|
692
|
+
}] });
|
693
|
+
|
561
694
|
class FHeaderComponent {
|
562
695
|
title = inject(FDocumentationEnvironmentService).getTitle();
|
563
696
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
@@ -566,7 +699,6 @@ class FHeaderComponent {
|
|
566
699
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FHeaderComponent, decorators: [{
|
567
700
|
type: Component,
|
568
701
|
args: [{ selector: 'f-header', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
569
|
-
NgOptimizedImage,
|
570
702
|
FHamburgerButtonComponent,
|
571
703
|
FVersionComponent,
|
572
704
|
FSocialLinksComponent,
|
@@ -2206,30 +2338,6 @@ var index$2 = /*#__PURE__*/Object.freeze({
|
|
2206
2338
|
getContent: getContent
|
2207
2339
|
});
|
2208
2340
|
|
2209
|
-
class FStateService {
|
2210
|
-
fBrowser;
|
2211
|
-
theme = new Subject();
|
2212
|
-
constructor(fBrowser) {
|
2213
|
-
this.fBrowser = fBrowser;
|
2214
|
-
}
|
2215
|
-
get theme$() {
|
2216
|
-
return this.theme.asObservable();
|
2217
|
-
}
|
2218
|
-
updateTheme() {
|
2219
|
-
this.theme.next();
|
2220
|
-
}
|
2221
|
-
getPreferredTheme() {
|
2222
|
-
return this.fBrowser.localStorage.getItem('preferred-theme')
|
2223
|
-
|| (this.fBrowser.window.isMediaQuery('(prefers-color-scheme: dark)') ? 'dark' : 'light');
|
2224
|
-
}
|
2225
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FStateService, deps: [{ token: i2.BrowserService }], target: i0.ɵɵFactoryTarget.Injectable });
|
2226
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FStateService, providedIn: 'root' });
|
2227
|
-
}
|
2228
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FStateService, decorators: [{
|
2229
|
-
type: Injectable,
|
2230
|
-
args: [{ providedIn: 'root' }]
|
2231
|
-
}], ctorParameters: () => [{ type: i2.BrowserService }] });
|
2232
|
-
|
2233
2341
|
class FPreviewComponent {
|
2234
2342
|
fEnvironment;
|
2235
2343
|
fState;
|
@@ -2294,33 +2402,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
2294
2402
|
const F_DOCUMENTATION_COMPONENT = new InjectionToken('F_DOCUMENTATION_COMPONENT');
|
2295
2403
|
|
2296
2404
|
class FDocumentationComponent {
|
2297
|
-
fPopoverService;
|
2298
|
-
changeDetectorRef;
|
2299
|
-
subscriptions$ = new Subscription();
|
2300
2405
|
isNavigationVisible = false;
|
2301
2406
|
popoverMessage = null;
|
2302
|
-
|
2303
|
-
|
2304
|
-
|
2305
|
-
}
|
2407
|
+
_fPopover = inject(FPopoverService);
|
2408
|
+
_destroyRef = inject(DestroyRef);
|
2409
|
+
_changeDetectorRef = inject(ChangeDetectorRef);
|
2306
2410
|
ngOnInit() {
|
2307
|
-
this.
|
2411
|
+
this._fPopover.dispose(this._destroyRef);
|
2412
|
+
this._subscribeOnPopover();
|
2308
2413
|
}
|
2309
|
-
|
2310
|
-
|
2414
|
+
_subscribeOnPopover() {
|
2415
|
+
this._fPopover.popover$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((x) => {
|
2311
2416
|
this.popoverMessage = x;
|
2312
|
-
this.
|
2417
|
+
this._changeDetectorRef.markForCheck();
|
2313
2418
|
});
|
2314
2419
|
}
|
2315
2420
|
onToggleNavigation(value) {
|
2316
2421
|
this.isNavigationVisible = value;
|
2317
|
-
this.
|
2422
|
+
this._changeDetectorRef.markForCheck();
|
2318
2423
|
}
|
2319
|
-
|
2320
|
-
this.fPopoverService.dispose();
|
2321
|
-
this.subscriptions$.unsubscribe();
|
2322
|
-
}
|
2323
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FDocumentationComponent, deps: [{ token: FPopoverService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
2424
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FDocumentationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
2324
2425
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FDocumentationComponent, isStandalone: true, selector: "f-documentation", providers: [
|
2325
2426
|
FDocumentationEnvironmentService,
|
2326
2427
|
FPopoverService,
|
@@ -2341,11 +2442,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
2341
2442
|
FScrollableContainerComponent,
|
2342
2443
|
RouterOutlet
|
2343
2444
|
], template: "<div class=\"f-backdrop\" [class.visible]=\"isNavigationVisible\" (click)=\"onToggleNavigation(false)\"></div>\n<f-navigation-panel [class.visible]=\"isNavigationVisible\"></f-navigation-panel>\n\n<f-scrollable-container>\n <f-header></f-header>\n <router-outlet></router-outlet>\n</f-scrollable-container>\n@if (popoverMessage) {\n <div class=\"popover\">{{ popoverMessage }}</div>\n}\n", styles: [":host{display:flex;justify-content:flex-start;align-items:flex-start;height:100%;gap:10px}.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);color:var(--primary-text);font-size:14px;padding:4px 8px;border-radius:4px;z-index:var(--z-index-popover);opacity:1}\n"] }]
|
2344
|
-
}]
|
2445
|
+
}] });
|
2345
2446
|
|
2346
2447
|
const F_DOCS_ENVIRONMENT = new InjectionToken('F_DOCS_ENVIRONMENT');
|
2347
2448
|
|
2348
|
-
const
|
2449
|
+
const F_DOCS_ROUTES = [
|
2349
2450
|
{
|
2350
2451
|
path: '',
|
2351
2452
|
loadComponent: () => Promise.resolve().then(function () { return index$1; }).then(m => m.FDocumentationComponent),
|
@@ -2375,7 +2476,9 @@ var index$1 = /*#__PURE__*/Object.freeze({
|
|
2375
2476
|
FFooterEditInformationComponent: FFooterEditInformationComponent,
|
2376
2477
|
FFooterNavigationButtonComponent: FFooterNavigationButtonComponent,
|
2377
2478
|
FFooterNavigationComponent: FFooterNavigationComponent,
|
2479
|
+
FHamburgerButtonComponent: FHamburgerButtonComponent,
|
2378
2480
|
FHeaderComponent: FHeaderComponent,
|
2481
|
+
FHeaderMenuComponent: FHeaderMenuComponent,
|
2379
2482
|
FMarkdownFooterComponent: FMarkdownFooterComponent,
|
2380
2483
|
FMarkdownRendererComponent: FMarkdownRendererComponent,
|
2381
2484
|
FNavigationGroupComponent: FNavigationGroupComponent,
|
@@ -2385,11 +2488,13 @@ var index$1 = /*#__PURE__*/Object.freeze({
|
|
2385
2488
|
FPageComponent: FPageComponent,
|
2386
2489
|
FPreviewComponent: FPreviewComponent,
|
2387
2490
|
FScrollableContainerComponent: FScrollableContainerComponent,
|
2491
|
+
FSocialLinksComponent: FSocialLinksComponent,
|
2388
2492
|
FTableOfContentComponent: FTableOfContentComponent,
|
2389
2493
|
FTableOfContentItemsComponent: FTableOfContentItemsComponent,
|
2494
|
+
FVersionComponent: FVersionComponent,
|
2390
2495
|
F_DOCS_ENVIRONMENT: F_DOCS_ENVIRONMENT,
|
2496
|
+
F_DOCS_ROUTES: F_DOCS_ROUTES,
|
2391
2497
|
F_DOCUMENTATION_COMPONENT: F_DOCUMENTATION_COMPONENT,
|
2392
|
-
F_DOCUMENTATION_ROUTES: F_DOCUMENTATION_ROUTES,
|
2393
2498
|
GetAbsoluteTopToContainerHandler: GetAbsoluteTopToContainerHandler,
|
2394
2499
|
GetAbsoluteTopToContainerRequest: GetAbsoluteTopToContainerRequest,
|
2395
2500
|
GetPreviousNextPageNavigationHandler: GetPreviousNextPageNavigationHandler,
|
@@ -2417,112 +2522,6 @@ var index$1 = /*#__PURE__*/Object.freeze({
|
|
2417
2522
|
getContent: getContent
|
2418
2523
|
});
|
2419
2524
|
|
2420
|
-
class FHamburgerButtonComponent {
|
2421
|
-
fDocumentation;
|
2422
|
-
constructor(fDocumentation) {
|
2423
|
-
this.fDocumentation = fDocumentation;
|
2424
|
-
}
|
2425
|
-
onShowNavigation() {
|
2426
|
-
this.fDocumentation.onToggleNavigation(true);
|
2427
|
-
}
|
2428
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FHamburgerButtonComponent, deps: [{ token: F_DOCUMENTATION_COMPONENT }], target: i0.ɵɵFactoryTarget.Component });
|
2429
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FHamburgerButtonComponent, isStandalone: true, selector: "button[f-hamburger-button]", host: { listeners: { "click": "onShowNavigation()" } }, ngImport: i0, template: "<span class=\"f-icon hamburger\"></span>\n\n", styles: [":host{background-color:transparent;border:0;display:flex;padding:0;margin-right:16px;color:var(--secondary-text);cursor:pointer}@media (min-width: 960px){:host{display:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
2430
|
-
}
|
2431
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FHamburgerButtonComponent, decorators: [{
|
2432
|
-
type: Component,
|
2433
|
-
args: [{ selector: 'button[f-hamburger-button]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"f-icon hamburger\"></span>\n\n", styles: [":host{background-color:transparent;border:0;display:flex;padding:0;margin-right:16px;color:var(--secondary-text);cursor:pointer}@media (min-width: 960px){:host{display:none}}\n"] }]
|
2434
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
2435
|
-
type: Inject,
|
2436
|
-
args: [F_DOCUMENTATION_COMPONENT]
|
2437
|
-
}] }], propDecorators: { onShowNavigation: [{
|
2438
|
-
type: HostListener,
|
2439
|
-
args: ['click']
|
2440
|
-
}] } });
|
2441
|
-
|
2442
|
-
class FHeaderMenuComponent {
|
2443
|
-
navigation = [];
|
2444
|
-
_router = inject(Router);
|
2445
|
-
_fEnvironmentService = inject(INTERNAL_ENVIRONMENT_SERVICE);
|
2446
|
-
ngOnInit() {
|
2447
|
-
this.navigation = this._fEnvironmentService.getHeaderNavigation().map((x) => {
|
2448
|
-
return {
|
2449
|
-
...x,
|
2450
|
-
isActive: this._router.url.startsWith(x.link)
|
2451
|
-
};
|
2452
|
-
});
|
2453
|
-
}
|
2454
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FHeaderMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
2455
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FHeaderMenuComponent, isStandalone: true, selector: "f-header-menu", ngImport: i0, template: "@for (item of navigation; track item.link) {\n <a class=\"header-link\" [routerLink]=\"item.link\" [class.active]=\"item.isActive\">\n <span>{{ item.text }}</span>\n </a>\n}\n\n", styles: [":host{display:flex;justify-content:flex-start;align-items:center}.header-link{display:flex;align-items:center;padding:0 12px;line-height:var(--header-height);font-size:14px;font-weight:500;color:var(--primary-text);cursor:pointer}.header-link:hover,.header-link.active{color:var(--primary-1)}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
2456
|
-
}
|
2457
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FHeaderMenuComponent, decorators: [{
|
2458
|
-
type: Component,
|
2459
|
-
args: [{ selector: 'f-header-menu', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
2460
|
-
RouterLink
|
2461
|
-
], template: "@for (item of navigation; track item.link) {\n <a class=\"header-link\" [routerLink]=\"item.link\" [class.active]=\"item.isActive\">\n <span>{{ item.text }}</span>\n </a>\n}\n\n", styles: [":host{display:flex;justify-content:flex-start;align-items:center}.header-link{display:flex;align-items:center;padding:0 12px;line-height:var(--header-height);font-size:14px;font-weight:500;color:var(--primary-text);cursor:pointer}.header-link:hover,.header-link.active{color:var(--primary-1)}\n"] }]
|
2462
|
-
}] });
|
2463
|
-
|
2464
|
-
class FSocialLinksComponent {
|
2465
|
-
links = inject(INTERNAL_ENVIRONMENT_SERVICE).getSocialLinks();
|
2466
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSocialLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
2467
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FSocialLinksComponent, isStandalone: true, selector: "f-social-links", ngImport: i0, template: "@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", styles: [":host{display:flex;justify-content:flex-start;align-items:center}.header-link{width:36px;height:36px;padding:7.5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
2468
|
-
}
|
2469
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSocialLinksComponent, decorators: [{
|
2470
|
-
type: Component,
|
2471
|
-
args: [{ selector: 'f-social-links', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@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", styles: [":host{display:flex;justify-content:flex-start;align-items:center}.header-link{width:36px;height:36px;padding:7.5px}\n"] }]
|
2472
|
-
}] });
|
2473
|
-
|
2474
|
-
class FThemeButtonComponent {
|
2475
|
-
renderer;
|
2476
|
-
fState;
|
2477
|
-
fBrowser;
|
2478
|
-
constructor(renderer, fState, fBrowser) {
|
2479
|
-
this.renderer = renderer;
|
2480
|
-
this.fState = fState;
|
2481
|
-
this.fBrowser = fBrowser;
|
2482
|
-
}
|
2483
|
-
ngOnInit() {
|
2484
|
-
if (this.fState.getPreferredTheme() === 'dark' && !this.isDocumentContainsDarkTheme()) {
|
2485
|
-
this.renderer.addClass(this.fBrowser.document.documentElement, 'dark');
|
2486
|
-
this.fBrowser.localStorage.setItem('preferred-theme', 'dark');
|
2487
|
-
}
|
2488
|
-
}
|
2489
|
-
isDocumentContainsDarkTheme() {
|
2490
|
-
return this.fBrowser.document.documentElement.classList.contains('dark');
|
2491
|
-
}
|
2492
|
-
onClick() {
|
2493
|
-
if (this.fState.getPreferredTheme() === 'light' && !this.isDocumentContainsDarkTheme()) {
|
2494
|
-
this.renderer.addClass(this.fBrowser.document.documentElement, 'dark');
|
2495
|
-
this.fBrowser.localStorage.setItem('preferred-theme', 'dark');
|
2496
|
-
}
|
2497
|
-
else {
|
2498
|
-
this.renderer.removeClass(this.fBrowser.document.documentElement, 'dark');
|
2499
|
-
this.fBrowser.localStorage.setItem('preferred-theme', 'light');
|
2500
|
-
}
|
2501
|
-
this.fState.updateTheme();
|
2502
|
-
}
|
2503
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FThemeButtonComponent, deps: [{ token: i0.Renderer2 }, { token: FStateService }, { token: i2.BrowserService }], target: i0.ɵɵFactoryTarget.Component });
|
2504
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FThemeButtonComponent, isStandalone: true, selector: "button[f-theme-button]", host: { listeners: { "click": "onClick()" } }, ngImport: i0, template: "<div class=\"f-icon-container\">\n <div class=\"f-icon moon\"></div>\n <div class=\"f-icon sun\"></div>\n</div>\n", styles: [":host{margin:0 8px;position:relative;border-radius:11px;display:block;width:44px;min-width:44px;height:22px;border:1px solid var(--theme-button-border-color);background-color:var(--theme-button-background);cursor:pointer}:host:hover{border-color:var(--theme-button-hovered-border-color)}.f-icon-container{position:absolute;top:1px;left:1px;width:18px;height:18px;padding:3px;border-radius:50%;background-color:var(--theme-button-icon-background);transition:transform .4s}.f-icon-container .f-icon{position:absolute;top:3px;left:3px;width:12px;height:12px}.f-icon-container .sun{display:block}.f-icon-container .moon{display:none}.dark :host .f-icon-container{transform:translate(22px)}.dark :host .f-icon-container .sun{display:none}.dark :host .f-icon-container .moon{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
2505
|
-
}
|
2506
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FThemeButtonComponent, decorators: [{
|
2507
|
-
type: Component,
|
2508
|
-
args: [{ selector: 'button[f-theme-button]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"f-icon-container\">\n <div class=\"f-icon moon\"></div>\n <div class=\"f-icon sun\"></div>\n</div>\n", styles: [":host{margin:0 8px;position:relative;border-radius:11px;display:block;width:44px;min-width:44px;height:22px;border:1px solid var(--theme-button-border-color);background-color:var(--theme-button-background);cursor:pointer}:host:hover{border-color:var(--theme-button-hovered-border-color)}.f-icon-container{position:absolute;top:1px;left:1px;width:18px;height:18px;padding:3px;border-radius:50%;background-color:var(--theme-button-icon-background);transition:transform .4s}.f-icon-container .f-icon{position:absolute;top:3px;left:3px;width:12px;height:12px}.f-icon-container .sun{display:block}.f-icon-container .moon{display:none}.dark :host .f-icon-container{transform:translate(22px)}.dark :host .f-icon-container .sun{display:none}.dark :host .f-icon-container .moon{display:block}\n"] }]
|
2509
|
-
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: FStateService }, { type: i2.BrowserService }], propDecorators: { onClick: [{
|
2510
|
-
type: HostListener,
|
2511
|
-
args: ['click']
|
2512
|
-
}] } });
|
2513
|
-
|
2514
|
-
class FVersionComponent {
|
2515
|
-
version$ = inject(INTERNAL_ENVIRONMENT_SERVICE).getVersion();
|
2516
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FVersionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
2517
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FVersionComponent, isStandalone: true, selector: "f-version", ngImport: i0, template: "@if (version$ | async;as version) {\n <span class=\"version\">v{{ version }}</span>\n}\n", styles: [".version{margin-left:8px;margin-right:8px;display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--primary-text)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
2518
|
-
}
|
2519
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FVersionComponent, decorators: [{
|
2520
|
-
type: Component,
|
2521
|
-
args: [{ selector: 'f-version', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
2522
|
-
AsyncPipe
|
2523
|
-
], template: "@if (version$ | async;as version) {\n <span class=\"version\">v{{ version }}</span>\n}\n", styles: [".version{margin-left:8px;margin-right:8px;display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--primary-text)}\n"] }]
|
2524
|
-
}] });
|
2525
|
-
|
2526
2525
|
const F_HOME_PAGE_ENVIRONMENT = new InjectionToken('F_HOME_PAGE_ENVIRONMENT');
|
2527
2526
|
|
2528
2527
|
class FHomePageEnvironmentService {
|
@@ -2538,15 +2537,6 @@ class FHomePageEnvironmentService {
|
|
2538
2537
|
getTitle() {
|
2539
2538
|
return this.environment.title;
|
2540
2539
|
}
|
2541
|
-
getHeaderNavigation() {
|
2542
|
-
return this.environment.headerNavigation || [];
|
2543
|
-
}
|
2544
|
-
getVersion() {
|
2545
|
-
return new GetVersionHandler(this.http).handle(new GetVersionRequest(this.environment.version));
|
2546
|
-
}
|
2547
|
-
getSocialLinks() {
|
2548
|
-
return this.environment.socialLinks || [];
|
2549
|
-
}
|
2550
2540
|
getHero() {
|
2551
2541
|
return this.environment.hero;
|
2552
2542
|
}
|
@@ -2636,20 +2626,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
2636
2626
|
|
2637
2627
|
const F_HOME_PAGE_COMPONENT = new InjectionToken('F_HOME_PAGE_COMPONENT');
|
2638
2628
|
class FHomePageComponent {
|
2639
|
-
_injector = inject(Injector);
|
2640
2629
|
_environmentService = inject(FHomePageEnvironmentService);
|
2641
2630
|
_backgroundContainer;
|
2642
2631
|
_heroImageContainer;
|
2643
2632
|
ngAfterViewInit() {
|
2644
|
-
|
2645
|
-
|
2646
|
-
|
2647
|
-
|
2633
|
+
this._renderImageComponent(this._environmentService.getImageComponent());
|
2634
|
+
this._renderBackgroundComponent(this._environmentService.getBackgroundComponent());
|
2635
|
+
}
|
2636
|
+
_renderImageComponent(component) {
|
2637
|
+
if (component) {
|
2638
|
+
this.requestComponentRedraw(this._getImageComponentReference(component));
|
2648
2639
|
}
|
2649
|
-
|
2650
|
-
|
2651
|
-
|
2652
|
-
this.requestComponentRedraw(
|
2640
|
+
}
|
2641
|
+
_renderBackgroundComponent(component) {
|
2642
|
+
if (component) {
|
2643
|
+
this.requestComponentRedraw(this._getBackgroundComponentReference(component));
|
2653
2644
|
}
|
2654
2645
|
}
|
2655
2646
|
_getBackgroundComponentReference(component) {
|
@@ -2658,10 +2649,6 @@ class FHomePageComponent {
|
|
2658
2649
|
_getImageComponentReference(component) {
|
2659
2650
|
return this._heroImageContainer.createComponent(component);
|
2660
2651
|
}
|
2661
|
-
getComponentElement(componentRef) {
|
2662
|
-
this.requestComponentRedraw(componentRef);
|
2663
|
-
return componentRef.hostView.rootNodes[0];
|
2664
|
-
}
|
2665
2652
|
requestComponentRedraw(componentRef) {
|
2666
2653
|
componentRef.changeDetectorRef.markForCheck();
|
2667
2654
|
}
|
@@ -2715,5 +2702,5 @@ var index = /*#__PURE__*/Object.freeze({
|
|
2715
2702
|
* Generated bundle index. Do not edit.
|
2716
2703
|
*/
|
2717
2704
|
|
2718
|
-
export { CalculateHashFromScrollPositionHandler, CalculateHashFromScrollPositionRequest, ChangeCodeFocusedSyntaxPreProcessor, CookiePopup, EMarkdownContainerType, FAnalyticsService, FAsyncCodeViewHandler, FBadgeComponent, FCheckboxComponent, FCodeGroupBodyHandler, FCodeGroupHandler, FCodeViewHandler, FDocumentationComponent, FDocumentationEnvironmentService, FExampleViewHandler, FFooterEditInformationComponent, FFooterNavigationButtonComponent, FFooterNavigationComponent, FHamburgerButtonComponent, FHeadTagService, FHeaderComponent, FHeaderMenuComponent, FHomePageComponent, FHomePageEnvironmentService, FHomePageFeaturesComponent, FHomePageFooterComponent, FHomePageHeaderComponent, FJsonLdService, FMarkdownFooterComponent, FMarkdownRendererComponent, FMetaService, FNavigationGroupComponent, FNavigationHeaderComponent, FNavigationItemComponent, FNavigationPanelComponent, FPageComponent, FPopoverService, FPreviewComponent, FScrollableContainerComponent, FSocialLinksComponent, FTableOfContentComponent, FTableOfContentItemsComponent, FThemeButtonComponent, FVersionComponent, F_ACCEPT_COOKIES_KEY, F_DOCS_ENVIRONMENT,
|
2705
|
+
export { CalculateHashFromScrollPositionHandler, CalculateHashFromScrollPositionRequest, ChangeCodeFocusedSyntaxPreProcessor, CookiePopup, EMarkdownContainerType, FAnalyticsService, FAsyncCodeViewHandler, FBadgeComponent, FCheckboxComponent, FCodeGroupBodyHandler, FCodeGroupHandler, FCodeViewHandler, FDocumentationComponent, FDocumentationEnvironmentService, FExampleViewHandler, FFooterEditInformationComponent, FFooterNavigationButtonComponent, FFooterNavigationComponent, FHamburgerButtonComponent, FHeadTagService, FHeaderComponent, FHeaderMenuComponent, FHomePageComponent, FHomePageEnvironmentService, FHomePageFeaturesComponent, FHomePageFooterComponent, FHomePageHeaderComponent, FJsonLdService, FMarkdownFooterComponent, FMarkdownRendererComponent, FMetaService, FNavigationGroupComponent, FNavigationHeaderComponent, FNavigationItemComponent, FNavigationPanelComponent, FPageComponent, FPopoverService, FPreviewComponent, FScrollableContainerComponent, FSocialLinksComponent, FTableOfContentComponent, FTableOfContentItemsComponent, FThemeButtonComponent, FVersionComponent, F_ACCEPT_COOKIES_KEY, F_DOCS_ENVIRONMENT, F_DOCS_ROUTES, F_DOCUMENTATION_COMPONENT, F_HOME_PAGE_COMPONENT, F_HOME_PAGE_ENVIRONMENT, F_HOME_PAGE_ROUTES, GetAbsoluteTopToContainerHandler, GetAbsoluteTopToContainerRequest, GetPreviousNextPageNavigationHandler, GetPreviousNextPageNavigationRequest, GetPreviousNextPageNavigationResponse, GetTableOfContentDataHandler, GetTableOfContentDataRequest, GetVersionHandler, GetVersionRequest, HandleDynamicComponentsHandler, HandleDynamicComponentsRequest, HandleNavigationLinksHandler, HandleNavigationLinksRequest, HandleParsedContainersHandler, HandleParsedContainersRequest, HighlightService, INTERNAL_ENVIRONMENT_SERVICE, MarkCodeFocusedBlocksPostProcessor, MarkdownService, ModifyPunctuationHighlightPostProcessor, ParseAlerts, ParseCodeGroup, ParseCodeView, ParseExampleGroup, ParsePreviewGroup, ScrollToElementInContainer, SeparateCodeByLinesPostProcessor, TableOfContentData, copyToClipboard, getContent, setCookieConsent };
|
2719
2706
|
//# sourceMappingURL=foblex-m-render.mjs.map
|