@foblex/m-render 2.9.0 → 3.0.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foblex/m-render",
3
- "version": "2.9.0",
3
+ "version": "3.0.0",
4
4
  "description": "MRender is a static site generator designed for creating fast and user-friendly documentation sites based on Markdown files. MarkEngine supports extended Markdown syntax and can render Angular components directly from Markdown files.",
5
5
  "author": "Siarhei Huzarevich",
6
6
  "license": "MIT",
@@ -31,13 +31,13 @@
31
31
  },
32
32
  "sideEffects": false,
33
33
  "module": "fesm2022/foblex-m-render.mjs",
34
- "typings": "index.d.ts",
34
+ "typings": "types/foblex-m-render.d.ts",
35
35
  "exports": {
36
36
  "./package.json": {
37
37
  "default": "./package.json"
38
38
  },
39
39
  ".": {
40
- "types": "./index.d.ts",
40
+ "types": "./types/foblex-m-render.d.ts",
41
41
  "default": "./fesm2022/foblex-m-render.mjs"
42
42
  }
43
43
  }
@@ -1,14 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Provider, InjectionToken, EventEmitter, ElementRef, ChangeDetectorRef, OnDestroy, AfterViewInit, OnInit, Type, ViewContainerRef, ComponentRef, Signal } from '@angular/core';
2
+ import { InjectionToken, Provider, OnDestroy, AfterViewInit, OnInit, Type, ViewContainerRef, ComponentRef, Signal, EventEmitter, ElementRef, ChangeDetectorRef } from '@angular/core';
3
3
  import { Observable } from 'rxjs';
4
4
  import * as _angular_cdk_overlay from '@angular/cdk/overlay';
5
5
  import { ConnectedPosition } from '@angular/cdk/overlay';
6
+ import * as _foblex_m_render from '@foblex/m-render';
6
7
  import { SafeHtml } from '@angular/platform-browser';
7
8
  import MarkdownIt from 'markdown-it';
8
9
  import container from 'markdown-it-container';
9
- import * as _foblex_m_render from '@foblex/m-render';
10
10
  import { Router, Routes } from '@angular/router';
11
- import { ThemeInput } from '@shikijs/types';
11
+ import { PlainTextLanguage, LanguageInput, ThemeInput } from '@shikijs/types';
12
12
 
13
13
  declare function provideGTag(config: GTagConfig): Provider[];
14
14
  interface GTagConfig {
@@ -39,45 +39,36 @@ declare class GTagService {
39
39
  static ɵprov: i0.ɵɵInjectableDeclaration<GTagService>;
40
40
  }
41
41
 
42
- declare class FSearchButtonComponent {
43
- static ɵfac: i0.ɵɵFactoryDeclaration<FSearchButtonComponent, never>;
44
- static ɵcmp: i0.ɵɵComponentDeclaration<FSearchButtonComponent, "f-search-button", never, {}, {}, never, never, true, never>;
45
- }
46
-
47
- declare class FCheckboxComponent {
48
- private changeDetectorRef;
49
- id: string;
50
- change: EventEmitter<boolean>;
51
- private inputElement?;
52
- labelElement?: ElementRef<HTMLLabelElement>;
53
- get checked(): boolean;
54
- set checked(value: boolean);
55
- private isChecked;
56
- constructor(changeDetectorRef: ChangeDetectorRef);
57
- onInputClick(): void;
58
- onTouchTargetClick(): void;
59
- private handleInputClick;
60
- private emitChangeEvent;
61
- onInteractionEvent(event: Event): void;
62
- preventBubblingFromLabel(event: MouseEvent): void;
63
- static ɵfac: i0.ɵɵFactoryDeclaration<FCheckboxComponent, never>;
64
- static ɵcmp: i0.ɵɵComponentDeclaration<FCheckboxComponent, "f-checkbox", never, { "id": { "alias": "id"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; }, { "change": "change"; }, never, ["*"], true, never>;
65
- static ngAcceptInputType_checked: unknown;
66
- }
67
-
68
- declare class FRadioButtonComponent {
69
- id: i0.InputSignal<string>;
70
- change: i0.OutputEmitterRef<boolean>;
71
- checked: i0.InputSignal<boolean>;
72
- protected labelElement: i0.Signal<ElementRef<any> | undefined>;
73
- onInputClick(): void;
74
- onTouchTargetClick(): void;
75
- private _handleInputClick;
76
- private _emitChangeEvent;
77
- protected onInteractionEvent(event: Event): void;
78
- protected preventBubblingFromLabel(event: MouseEvent): void;
79
- static ɵfac: i0.ɵɵFactoryDeclaration<FRadioButtonComponent, never>;
80
- static ɵcmp: i0.ɵɵComponentDeclaration<FRadioButtonComponent, "f-radio-button", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "change": "change"; }, never, ["*"], true, never>;
42
+ interface IMetaData {
43
+ url: string;
44
+ canonical?: string;
45
+ type: string;
46
+ title: string;
47
+ app_name: string;
48
+ locale: string;
49
+ description: string;
50
+ image: string;
51
+ image_type: string;
52
+ image_width: number;
53
+ image_height: number;
54
+ keywords?: string;
55
+ robots?: string;
56
+ twitter_card?: string;
57
+ twitter_site?: string;
58
+ twitter_creator?: string;
59
+ }
60
+
61
+ interface ISeoOverrides extends Partial<IMetaData> {
62
+ og_type?: string;
63
+ og_title?: string;
64
+ og_description?: string;
65
+ og_image?: string;
66
+ twitter_card?: string;
67
+ twitter_title?: string;
68
+ twitter_description?: string;
69
+ twitter_image?: string;
70
+ noindex?: boolean;
71
+ nofollow?: boolean;
81
72
  }
82
73
 
83
74
  declare class FMetaService {
@@ -85,31 +76,23 @@ declare class FMetaService {
85
76
  private readonly _router;
86
77
  private readonly _headTag;
87
78
  private readonly _configuration;
79
+ private _seoOverrides;
80
+ private _lastPath;
88
81
  changes(): Observable<string>;
82
+ applyMarkdownSeo(overrides: ISeoOverrides | null | undefined): void;
89
83
  dispose(): void;
84
+ private _updateMetaByUrl;
90
85
  private _findDocGroupByUrl;
91
86
  private _findDocItemByUrl;
92
87
  private _buildAbsoluteUrl;
93
88
  private _toAbsoluteUrl;
94
89
  private _updateMetaTags;
90
+ private _resolveRobots;
91
+ private _normalizeCurrentPath;
95
92
  static ɵfac: i0.ɵɵFactoryDeclaration<FMetaService, never>;
96
93
  static ɵprov: i0.ɵɵInjectableDeclaration<FMetaService>;
97
94
  }
98
95
 
99
- interface IMetaData {
100
- url: string;
101
- canonical?: string;
102
- type: string;
103
- title: string;
104
- app_name: string;
105
- locale: string;
106
- description: string;
107
- image: string;
108
- image_type: string;
109
- image_width: number;
110
- image_height: number;
111
- }
112
-
113
96
  declare class HamburgerButton {
114
97
  private readonly _parent;
115
98
  protected _onShowNavigation(): void;
@@ -171,7 +154,7 @@ interface IMediaLinksProvider {
171
154
  declare const MEDIA_LINKS_PROVIDER: InjectionToken<IMediaLink[]>;
172
155
 
173
156
  declare class MediaLinks {
174
- protected links: IMediaLink[] | null;
157
+ protected links: _foblex_m_render.IMediaLink[] | null;
175
158
  static ɵfac: i0.ɵɵFactoryDeclaration<MediaLinks, never>;
176
159
  static ɵcmp: i0.ɵɵComponentDeclaration<MediaLinks, "media-links", never, {}, {}, never, never, true, never>;
177
160
  }
@@ -179,7 +162,7 @@ declare class MediaLinks {
179
162
  declare class HeaderComponent implements AfterViewInit, OnDestroy {
180
163
  protected title: string;
181
164
  protected image: string;
182
- protected config: IHeaderConfiguration;
165
+ protected config: _foblex_m_render.IHeaderConfiguration;
183
166
  protected readonly emptyNavigation: boolean;
184
167
  private readonly _zone;
185
168
  private readonly _containerRef;
@@ -245,7 +228,7 @@ declare class NavigationPanelComponent implements OnInit, AfterViewInit {
245
228
  private readonly _destroyRef;
246
229
  private readonly _window;
247
230
  protected value: string | undefined;
248
- protected navigation: INavigationGroup[];
231
+ protected navigation: _foblex_m_render.INavigationGroup[];
249
232
  protected title: string;
250
233
  protected image: string;
251
234
  ngOnInit(): void;
@@ -286,19 +269,33 @@ declare class CodeGroup {
286
269
  }
287
270
 
288
271
  interface IExampleViewData {
289
- value: string;
272
+ selector?: string;
273
+ iframeUrl?: string;
290
274
  height?: string | number;
291
275
  }
292
276
 
293
277
  declare function coerceComponentHeight(value: string | number | undefined): string | undefined;
294
278
 
279
+ declare function parseIframeUrl(value: string): string | null;
280
+
295
281
  declare function parseComponentTag(html: string): string | null;
296
282
 
297
283
  declare class ExternalComponent implements OnInit {
298
284
  readonly data: i0.InputSignalWithTransform<IExampleViewData, IParsedContainerData>;
285
+ protected readonly iframeUrl: i0.Signal<string | undefined>;
286
+ protected readonly hasContent: i0.Signal<boolean>;
287
+ protected readonly canToggleFullscreen: i0.Signal<boolean>;
288
+ protected readonly fullscreenLabel: i0.Signal<"Exit full screen" | "Full screen">;
289
+ protected readonly isFullscreen: i0.WritableSignal<boolean>;
290
+ private readonly _document;
291
+ private readonly _hostElement;
292
+ private readonly _isBrowser;
299
293
  private readonly _mediatr;
300
294
  private readonly _viewContainerRef;
301
295
  ngOnInit(): void;
296
+ protected toggleFullscreen(): Promise<void>;
297
+ protected onFullscreenChange(): void;
298
+ private _isCurrentElementInFullscreen;
302
299
  static ɵfac: i0.ɵɵFactoryDeclaration<ExternalComponent, never>;
303
300
  static ɵcmp: i0.ɵɵComponentDeclaration<ExternalComponent, "external-component", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
304
301
  }
@@ -504,7 +501,7 @@ declare class DynamicComponentsStore {
504
501
  static ɵprov: i0.ɵɵInjectableDeclaration<DynamicComponentsStore>;
505
502
  }
506
503
 
507
- declare const DYNAMIC_COMPONENTS_MODULE_PROVIDERS: (typeof DynamicComponentsStore | typeof PreviewGroupService | typeof RenderDynamicComponent | typeof RenderExternalComponent | typeof RenderInternalComponents)[];
504
+ declare const DYNAMIC_COMPONENTS_MODULE_PROVIDERS: (typeof DynamicComponentsStore | typeof RenderDynamicComponent | typeof RenderExternalComponent | typeof PreviewGroupService | typeof RenderInternalComponents)[];
508
505
 
509
506
  declare class DocumentationStore implements IMediaLinksProvider, IHeaderConfigurationStore {
510
507
  private readonly _configuration;
@@ -551,7 +548,7 @@ declare class MarkdownFooter {
551
548
  private readonly _router;
552
549
  private readonly _activatedRoute;
553
550
  private readonly _window;
554
- protected readonly navigation: IMarkdownFooterNavigation;
551
+ protected readonly navigation: _foblex_m_render.IMarkdownFooterNavigation;
555
552
  private readonly _url;
556
553
  private readonly _currentLink;
557
554
  private readonly _prefix;
@@ -560,7 +557,7 @@ declare class MarkdownFooter {
560
557
  protected readonly nextLink: i0.Signal<IMarkdownFooterLink | undefined>;
561
558
  private _normalizeLink;
562
559
  private _isExternal;
563
- private _click;
560
+ protected _click(event: MouseEvent): void;
564
561
  static ɵfac: i0.ɵɵFactoryDeclaration<MarkdownFooter, never>;
565
562
  static ɵcmp: i0.ɵɵComponentDeclaration<MarkdownFooter, "markdown-footer", never, {}, {}, never, never, true, never>;
566
563
  }
@@ -599,8 +596,8 @@ interface IMarkdownItToken {
599
596
  }
600
597
 
601
598
  interface IMarkdownContainerData {
602
- tag: string;
603
- height?: string;
599
+ value: string;
600
+ height?: string | number;
604
601
  }
605
602
 
606
603
  interface IParsedContainerData {
@@ -627,12 +624,30 @@ interface IPreviewNavigationService<T extends IPreviewNavigationGroup> {
627
624
  }
628
625
  declare const F_PREVIEW_NAVIGATION_PROVIDER: InjectionToken<IPreviewNavigationService<IPreviewNavigationGroup>>;
629
626
 
627
+ interface IMarkdownPageLayoutOptions {
628
+ hideTableOfContent: boolean;
629
+ expandContentWithoutTableOfContent: boolean;
630
+ }
631
+ interface IMarkdownFrontMatterData {
632
+ layout: IMarkdownPageLayoutOptions;
633
+ seo: ISeoOverrides | null;
634
+ }
635
+ interface IMarkdownFrontMatterParseResult {
636
+ markdown: string;
637
+ data: IMarkdownFrontMatterData;
638
+ }
639
+ declare const DEFAULT_MARKDOWN_PAGE_LAYOUT_OPTIONS: IMarkdownPageLayoutOptions;
640
+
630
641
  declare class MarkdownService {
631
642
  private readonly _markdown;
632
643
  private readonly _httpClient;
633
644
  private readonly _domSanitizer;
634
645
  private readonly _router;
635
646
  private readonly _provider;
647
+ private readonly _pageLayout;
648
+ private readonly _pageSeo;
649
+ readonly pageLayout: i0.Signal<IMarkdownPageLayoutOptions>;
650
+ readonly pageSeo: i0.Signal<ISeoOverrides | null>;
636
651
  constructor();
637
652
  parseUrl(src: string): Observable<SafeHtml>;
638
653
  parseText(value: string): Observable<SafeHtml>;
@@ -641,6 +656,18 @@ declare class MarkdownService {
641
656
  private _cleanupEmptyParagraphs;
642
657
  private _cleanupWasteParagraphFromExampleView;
643
658
  private _cleanupWasteParagraphFromPreviewGroup;
659
+ private _renderMarkdownWithPageContext;
660
+ private _parseFrontMatter;
661
+ private _parseFrontMatterData;
662
+ private _parseFrontMatterLine;
663
+ private _normalizeFrontMatterValue;
664
+ private _parseBoolean;
665
+ private _applyLayoutKey;
666
+ private _applySeoKey;
667
+ private _parseNumberOrDefault;
668
+ private _applyPageContext;
669
+ private _resetPageContext;
670
+ private _getDefaultFrontMatterData;
644
671
  static ɵfac: i0.ɵɵFactoryDeclaration<MarkdownService, never>;
645
672
  static ɵprov: i0.ɵɵInjectableDeclaration<MarkdownService>;
646
673
  }
@@ -679,6 +706,7 @@ declare class ParseAngularExampleWithCodeLinks {
679
706
  private _opening;
680
707
  private _collectData;
681
708
  private _parseNgComponent;
709
+ private _parseHeight;
682
710
  }
683
711
 
684
712
  type ContainerArgs$1 = [typeof container, string, {
@@ -740,7 +768,9 @@ declare class MarkdownRouter {
740
768
  private readonly _activatedRoute;
741
769
  private readonly _markdown;
742
770
  private readonly _dataProvider;
771
+ private readonly _metaService;
743
772
  protected readonly emptyNavigation: boolean;
773
+ protected readonly shouldExpandContent: i0.Signal<boolean>;
744
774
  private readonly _path$;
745
775
  protected readonly html: i0.Signal<SafeHtml | undefined>;
746
776
  static ɵfac: i0.ɵɵFactoryDeclaration<MarkdownRouter, never>;
@@ -754,6 +784,19 @@ interface IScrollableContainer {
754
784
  };
755
785
  }
756
786
 
787
+ declare class ScrollableContainer implements OnInit, IScrollableContainer {
788
+ private readonly _destroyRef;
789
+ private readonly _injector;
790
+ private readonly _markdown;
791
+ protected readonly tableOfContent: _foblex_m_render.ITableOfContent | null;
792
+ protected readonly canShowTableOfContent: i0.Signal<boolean>;
793
+ readonly htmlElement: any;
794
+ ngOnInit(): void;
795
+ private _calculateHashAndActivate;
796
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScrollableContainer, never>;
797
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScrollableContainer, "scrollable-container", never, {}, {}, never, ["*"], true, never>;
798
+ }
799
+
757
800
  declare class ActivateTocByHashRequest {
758
801
  hash: string | undefined;
759
802
  static readonly requestToken: unique symbol;
@@ -866,7 +909,7 @@ declare class TableOfContentItemsComponent {
866
909
  static ɵcmp: i0.ɵɵComponentDeclaration<TableOfContentItemsComponent, "ul[f-table-of-content-items]", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
867
910
  }
868
911
 
869
- declare const TABLE_OF_CONTENT_MODULE_PROVIDERS: (typeof CalculateHashFromScrollPosition | typeof CalculateTableOfContent | typeof ActivateTocByHash | typeof ScrollToElementInContainer | typeof CalculateAbsoluteTopToContainer)[];
912
+ declare const TABLE_OF_CONTENT_MODULE_PROVIDERS: (typeof ActivateTocByHash | typeof CalculateAbsoluteTopToContainer | typeof CalculateHashFromScrollPosition | typeof CalculateTableOfContent | typeof ScrollToElementInContainer)[];
870
913
 
871
914
  declare class TableOfContent {
872
915
  private readonly _hostElement;
@@ -884,17 +927,6 @@ declare class TableOfContent {
884
927
  static ɵcmp: i0.ɵɵComponentDeclaration<TableOfContent, "table-of-content", never, {}, {}, never, never, true, never>;
885
928
  }
886
929
 
887
- declare class ScrollableContainer implements OnInit, IScrollableContainer {
888
- private readonly _destroyRef;
889
- private readonly _injector;
890
- protected readonly tableOfContent: ITableOfContent | null;
891
- readonly htmlElement: any;
892
- ngOnInit(): void;
893
- private _calculateHashAndActivate;
894
- static ɵfac: i0.ɵɵFactoryDeclaration<ScrollableContainer, never>;
895
- static ɵcmp: i0.ɵɵComponentDeclaration<ScrollableContainer, "scrollable-container", never, {}, {}, never, ["*"], true, never>;
896
- }
897
-
898
930
  declare class HandleNavigationLinksRequest {
899
931
  event: MouseEvent;
900
932
  window: Window;
@@ -1093,17 +1125,25 @@ declare class HighlightService {
1093
1125
  */
1094
1126
  private readonly _isBrowser;
1095
1127
  private readonly _window;
1128
+ private readonly _languageLoadingTasks;
1096
1129
  private readonly _highlighter$;
1097
1130
  highlight(element: HTMLElement, lang: string, content: string): Observable<HTMLElement>;
1098
1131
  private _highlightCodeBlock;
1099
1132
  private _renderCode;
1100
1133
  private _preprocessFocus;
1134
+ private _createHighlighter;
1135
+ private _ensureLanguageLoaded;
1136
+ private _scheduleRender;
1101
1137
  private _postProcess;
1102
1138
  static ɵfac: i0.ɵɵFactoryDeclaration<HighlightService, never>;
1103
1139
  static ɵprov: i0.ɵɵInjectableDeclaration<HighlightService>;
1104
1140
  }
1105
1141
 
1106
- declare const AVAILABLE_LANGUAGES: string[];
1142
+ type ShikiLanguage = 'javascript' | 'typescript' | 'angular-html' | 'angular-ts' | 'shell' | 'html' | 'bash' | 'css' | 'scss' | 'markdown';
1143
+ type HighlightLanguage = ShikiLanguage | PlainTextLanguage;
1144
+ declare const AVAILABLE_LANGUAGES: readonly HighlightLanguage[];
1145
+ declare function resolveHighlightLanguage(lang?: string): HighlightLanguage;
1146
+ declare function getLanguageLoader(lang: HighlightLanguage): LanguageInput | null;
1107
1147
 
1108
1148
  declare class MarkCodeFocusedBlocksPostProcessor {
1109
1149
  private _window;
@@ -1249,6 +1289,58 @@ declare class HomeRootComponent implements AfterViewInit, OnInit {
1249
1289
 
1250
1290
  declare const HOME_ROUTES: Routes;
1251
1291
 
1292
+ declare class FBrandLinkComponent {
1293
+ readonly title: i0.InputSignal<string>;
1294
+ readonly logo: i0.InputSignal<string>;
1295
+ readonly ariaLabel: i0.InputSignal<string>;
1296
+ readonly logoAlt: i0.InputSignal<string>;
1297
+ readonly href: i0.InputSignal<string>;
1298
+ readonly routerLink: i0.InputSignal<string | readonly unknown[] | null>;
1299
+ static ɵfac: i0.ɵɵFactoryDeclaration<FBrandLinkComponent, never>;
1300
+ static ɵcmp: i0.ɵɵComponentDeclaration<FBrandLinkComponent, "f-brand-link", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "logo": { "alias": "logo"; "required": true; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "logoAlt": { "alias": "logoAlt"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1301
+ }
1302
+
1303
+ declare class FSearchButtonComponent {
1304
+ static ɵfac: i0.ɵɵFactoryDeclaration<FSearchButtonComponent, never>;
1305
+ static ɵcmp: i0.ɵɵComponentDeclaration<FSearchButtonComponent, "f-search-button", never, {}, {}, never, never, true, never>;
1306
+ }
1307
+
1308
+ declare class FCheckboxComponent {
1309
+ private changeDetectorRef;
1310
+ id: string;
1311
+ change: EventEmitter<boolean>;
1312
+ private inputElement?;
1313
+ labelElement?: ElementRef<HTMLLabelElement>;
1314
+ get checked(): boolean;
1315
+ set checked(value: boolean);
1316
+ private isChecked;
1317
+ constructor(changeDetectorRef: ChangeDetectorRef);
1318
+ onInputClick(): void;
1319
+ onTouchTargetClick(): void;
1320
+ private handleInputClick;
1321
+ private emitChangeEvent;
1322
+ onInteractionEvent(event: Event): void;
1323
+ preventBubblingFromLabel(event: MouseEvent): void;
1324
+ static ɵfac: i0.ɵɵFactoryDeclaration<FCheckboxComponent, never>;
1325
+ static ɵcmp: i0.ɵɵComponentDeclaration<FCheckboxComponent, "f-checkbox", never, { "id": { "alias": "id"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; }, { "change": "change"; }, never, ["*"], true, never>;
1326
+ static ngAcceptInputType_checked: unknown;
1327
+ }
1328
+
1329
+ declare class FRadioButtonComponent {
1330
+ id: i0.InputSignal<string>;
1331
+ change: i0.OutputEmitterRef<boolean>;
1332
+ checked: i0.InputSignal<boolean>;
1333
+ protected labelElement: i0.Signal<ElementRef<any> | undefined>;
1334
+ onInputClick(): void;
1335
+ onTouchTargetClick(): void;
1336
+ private _handleInputClick;
1337
+ private _emitChangeEvent;
1338
+ protected onInteractionEvent(event: Event): void;
1339
+ protected preventBubblingFromLabel(event: MouseEvent): void;
1340
+ static ɵfac: i0.ɵɵFactoryDeclaration<FRadioButtonComponent, never>;
1341
+ static ɵcmp: i0.ɵɵComponentDeclaration<FRadioButtonComponent, "f-radio-button", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "change": "change"; }, never, ["*"], true, never>;
1342
+ }
1343
+
1252
1344
  declare class ThemeButtonComponent implements OnInit {
1253
1345
  private readonly _renderer;
1254
1346
  private readonly _themeService;
@@ -1264,5 +1356,5 @@ declare class ThemeButtonComponent implements OnInit {
1264
1356
 
1265
1357
  declare function provideTheme(): Provider[];
1266
1358
 
1267
- export { AVAILABLE_LANGUAGES, ActivateTocByHash, ActivateTocByHashRequest, CalculateAbsoluteTopToContainer, CalculateAbsoluteTopToContainerRequest, CalculateHashFromScrollPosition, CalculateTableOfContent, CalculateTableOfContentRequest, CodeGroup, CodeView, DOCUMENTATION_CONFIGURATION, DOCUMENTATION_ROUTES, DOCUMENT_ELEMENT, DYNAMIC_COMPONENTS_MODULE_PROVIDERS, Documentation, DocumentationStore, DropdownMenu, DynamicComponentsStore, EMarkdownContainerType, EParsedContainerType, EXTERNAL_COMPONENT_PROVIDER, ExternalComponent, FCheckboxComponent, FHomePageButtonsRowComponent, FHomePageFeaturesComponent, FHomePageFooterComponent, FHomePageHeaderComponent, FHomePageHeroComponent, FHomePageMembershipsComponent, FMetaService, FNavigationItemComponent, FRadioButtonComponent, FSearchButtonComponent, F_PREVIEW_NAVIGATION_PROVIDER, FooterNavigationButton, GTAG_CONFIG, GTagService, GetPreviousNextPageNavigationHandler, GetPreviousNextPageNavigationRequest, GetPreviousNextPageNavigationResponse, HEADER_CONFIGURATION_PROVIDER, HOME_PAGE_CONFIGURATION, HOME_ROUTES, HamburgerButton, HandleNavigationLinksHandler, HandleNavigationLinksRequest, HeaderComponent, HeaderMenuBase, Highlight, HighlightService, HomeRootComponent, HomeStore, IS_BROWSER_PLATFORM, InlineMenu, LOCAL_STORAGE, LOCATION, MEDIA_LINKS_PROVIDER, MExecution, MarkCodeFocusedBlocksPostProcessor, MarkdownFooter, MarkdownRenderer, MarkdownRouter, MarkdownService, MediaLinks, Mediatr, NavigationGroupComponent, NavigationPanelComponent, ParseAlerts, ParseAngularExampleWithCodeLinks, ParseGroupedCodeItems, ParsePreviewGroup, ParseShowcase, ParseSingleCodeItem, PopoverService, PreviewActionBar, PreviewCard, PreviewCardBase, PreviewGroupService, RenderDynamicComponent, RenderDynamicComponentRequest, RenderExternalComponent, RenderExternalComponentRequest, RenderInternalComponents, RenderInternalComponentsRequest, SCROLLABLE_CONTAINER, SHOWCASE_DATA, ScrollToElementInContainer, ScrollToElementInContainerRequest, ScrollableContainer, Showcase, ShowcaseItem, TABLE_OF_CONTENT_MODULE_PROVIDERS, TOGGLE_NAVIGATION_COMPONENT, TableOfContent, TableOfContentData, TableOfContentItemsComponent, ThemeButtonComponent, ThemeService, UNIVERSAL_THEME, WINDOW, calculateMarkdownUrl, coerceComponentHeight, copyToClipboard, defineLazyComponent, defineNavigationGroup, encodeDataAttr, extractComponent, getContent, isClosingToken, isOpeningToken, parseComponentTag, parseFileLinkLine, parseSingleBracketText, provide404Markdown, provideBackground, provideComponents, provideDirectory, provideDocumentation, provideFooterNavigation, provideGTag, provideHeader, provideHeaderMediaLinks, provideHeaderNavigation, provideHeaderSearch, provideHero, provideHomeButtons, provideHomeFeatures, provideHomeFooter, provideHomePage, provideImage, provideLanguage, provideLogo, provideMeta, provideNavigation, provideShowcase, provideTableOfContent, provideTheme, provideTitle };
1268
- export type { ConsentState, GTagConfig, IDocumentationConfiguration, IDocumentationFooterConfiguration, IDynamicComponentInstance, IDynamicComponentItem, IExampleViewData, IExecution, IHandler, IHasHeaderConfiguration, IHeaderConfiguration, IHeaderConfigurationStore, IHeaderMenuLink, IHomePageConfiguration, IHomePageFeature, IHomePageFooter, IHomePageHero, IHomePageLink, IHomePageMembership, ILanguageConfiguration, ILink, ILogoConfiguration, IMarkdownContainerData, IMarkdownFooterLink, IMarkdownFooterNavigation, IMarkdownItToken, IMediaLink, IMediaLinksProvider, IMetaData, INavigationGroup, INavigationItem, INavigationItemBadge, IParsedContainerData, IPreviewNavigationGroup, IPreviewNavigationService, IScrollableContainer, IShowcaseItem, ITableOfContent, ITableOfContentItem, ITitleConfiguration, IToggleNavigationComponent };
1359
+ export { AVAILABLE_LANGUAGES, ActivateTocByHash, ActivateTocByHashRequest, CalculateAbsoluteTopToContainer, CalculateAbsoluteTopToContainerRequest, CalculateHashFromScrollPosition, CalculateTableOfContent, CalculateTableOfContentRequest, CodeGroup, CodeView, DEFAULT_MARKDOWN_PAGE_LAYOUT_OPTIONS, DOCUMENTATION_CONFIGURATION, DOCUMENTATION_ROUTES, DOCUMENT_ELEMENT, DYNAMIC_COMPONENTS_MODULE_PROVIDERS, Documentation, DocumentationStore, DropdownMenu, DynamicComponentsStore, EMarkdownContainerType, EParsedContainerType, EXTERNAL_COMPONENT_PROVIDER, ExternalComponent, FBrandLinkComponent, FCheckboxComponent, FHomePageButtonsRowComponent, FHomePageFeaturesComponent, FHomePageFooterComponent, FHomePageHeaderComponent, FHomePageHeroComponent, FHomePageMembershipsComponent, FMetaService, FNavigationItemComponent, FRadioButtonComponent, FSearchButtonComponent, F_PREVIEW_NAVIGATION_PROVIDER, FooterNavigationButton, GTAG_CONFIG, GTagService, GetPreviousNextPageNavigationHandler, GetPreviousNextPageNavigationRequest, GetPreviousNextPageNavigationResponse, HEADER_CONFIGURATION_PROVIDER, HOME_PAGE_CONFIGURATION, HOME_ROUTES, HamburgerButton, HandleNavigationLinksHandler, HandleNavigationLinksRequest, HeaderComponent, HeaderMenuBase, Highlight, HighlightService, HomeRootComponent, HomeStore, IS_BROWSER_PLATFORM, InlineMenu, LOCAL_STORAGE, LOCATION, MEDIA_LINKS_PROVIDER, MExecution, MarkCodeFocusedBlocksPostProcessor, MarkdownFooter, MarkdownRenderer, MarkdownRouter, MarkdownService, MediaLinks, Mediatr, NavigationGroupComponent, NavigationPanelComponent, ParseAlerts, ParseAngularExampleWithCodeLinks, ParseGroupedCodeItems, ParsePreviewGroup, ParseShowcase, ParseSingleCodeItem, PopoverService, PreviewActionBar, PreviewCard, PreviewCardBase, PreviewGroupService, RenderDynamicComponent, RenderDynamicComponentRequest, RenderExternalComponent, RenderExternalComponentRequest, RenderInternalComponents, RenderInternalComponentsRequest, SCROLLABLE_CONTAINER, SHOWCASE_DATA, ScrollToElementInContainer, ScrollToElementInContainerRequest, ScrollableContainer, Showcase, ShowcaseItem, TABLE_OF_CONTENT_MODULE_PROVIDERS, TOGGLE_NAVIGATION_COMPONENT, TableOfContent, TableOfContentData, TableOfContentItemsComponent, ThemeButtonComponent, ThemeService, UNIVERSAL_THEME, WINDOW, calculateMarkdownUrl, coerceComponentHeight, copyToClipboard, defineLazyComponent, defineNavigationGroup, encodeDataAttr, extractComponent, getContent, getLanguageLoader, isClosingToken, isOpeningToken, parseComponentTag, parseFileLinkLine, parseIframeUrl, parseSingleBracketText, provide404Markdown, provideBackground, provideComponents, provideDirectory, provideDocumentation, provideFooterNavigation, provideGTag, provideHeader, provideHeaderMediaLinks, provideHeaderNavigation, provideHeaderSearch, provideHero, provideHomeButtons, provideHomeFeatures, provideHomeFooter, provideHomePage, provideImage, provideLanguage, provideLogo, provideMeta, provideNavigation, provideShowcase, provideTableOfContent, provideTheme, provideTitle, resolveHighlightLanguage };
1360
+ export type { ConsentState, GTagConfig, HighlightLanguage, IDocumentationConfiguration, IDocumentationFooterConfiguration, IDynamicComponentInstance, IDynamicComponentItem, IExampleViewData, IExecution, IHandler, IHasHeaderConfiguration, IHeaderConfiguration, IHeaderConfigurationStore, IHeaderMenuLink, IHomePageConfiguration, IHomePageFeature, IHomePageFooter, IHomePageHero, IHomePageLink, IHomePageMembership, ILanguageConfiguration, ILink, ILogoConfiguration, IMarkdownContainerData, IMarkdownFooterLink, IMarkdownFooterNavigation, IMarkdownFrontMatterData, IMarkdownFrontMatterParseResult, IMarkdownItToken, IMarkdownPageLayoutOptions, IMediaLink, IMediaLinksProvider, IMetaData, INavigationGroup, INavigationItem, INavigationItemBadge, IParsedContainerData, IPreviewNavigationGroup, IPreviewNavigationService, IScrollableContainer, ISeoOverrides, IShowcaseItem, ITableOfContent, ITableOfContentItem, ITitleConfiguration, IToggleNavigationComponent };
@@ -1 +0,0 @@
1
- {"version":3,"file":"foblex-m-render-cookie-popup.component-Cx-ELX3C.mjs","sources":["../tmp-esm2022/lib/analytics/cookie-popup/cookie-popup.component.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, signal } from '@angular/core';\nimport { GTagService } from '../g-tag.service';\nimport { LOCAL_STORAGE } from '../../common';\nimport * as i0 from \"@angular/core\";\nexport const F_ACCEPT_COOKIES_KEY = 'm-accepts-cookies';\nexport class CookiePopupComponent {\n _localStorage = inject(LOCAL_STORAGE);\n _gtag = inject(GTagService, { optional: true });\n _consentValue = signal(null, ...(ngDevMode ? [{ debugName: \"_consentValue\" }] : []));\n showPopup = computed(() => this._gtag !== null &&\n this._consentValue() !== 'true' &&\n this._consentValue() !== 'false', ...(ngDevMode ? [{ debugName: \"showPopup\" }] : []));\n constructor() {\n try {\n const value = this._localStorage?.getItem(F_ACCEPT_COOKIES_KEY);\n this._consentValue.set(value);\n }\n catch {\n this._consentValue.set(null);\n }\n }\n accept() {\n try {\n this._localStorage?.setItem(F_ACCEPT_COOKIES_KEY, 'true');\n }\n catch { /* empty */ }\n this._gtag?.updateConsent(true);\n this._consentValue.set('true');\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: CookiePopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: CookiePopupComponent, isStandalone: true, selector: \"cookie-popup\", ngImport: i0, template: \"@if (showPopup()) {\\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\"], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: CookiePopupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'cookie-popup', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: \"@if (showPopup()) {\\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\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbS1yZW5kZXIvc3JjL2xpYi9hbmFseXRpY3MvY29va2llLXBvcHVwL2Nvb2tpZS1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL20tcmVuZGVyL3NyYy9saWIvYW5hbHl0aWNzL2Nvb2tpZS1wb3B1cC9jb29raWUtcG9wdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFN0MsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsbUJBQW1CLENBQUM7QUFTeEQsTUFBTSxPQUFPLG9CQUFvQjtJQUNkLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVoRCxhQUFhLEdBQUcsTUFBTSxDQUFnQixJQUFJLHlEQUFDLENBQUM7SUFFMUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDM0MsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJO1FBQ25CLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxNQUFNO1FBQy9CLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxPQUFPLHFEQUNqQyxDQUFDO0lBRUY7UUFDRSxJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVTLE1BQU07UUFDZCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQzt1R0E1QlUsb0JBQW9COzJGQUFwQixvQkFBb0Isd0VDYmpDLG9vQkFvQkE7OzJGRFBhLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHVGFnU2VydmljZSB9IGZyb20gJy4uL2ctdGFnLnNlcnZpY2UnO1xuaW1wb3J0IHsgTE9DQUxfU1RPUkFHRSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCBGX0FDQ0VQVF9DT09LSUVTX0tFWSA9ICdtLWFjY2VwdHMtY29va2llcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nvb2tpZS1wb3B1cCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb29raWUtcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb29raWUtcG9wdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvb2tpZVBvcHVwQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9jYWxTdG9yYWdlID0gaW5qZWN0KExPQ0FMX1NUT1JBR0UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9ndGFnID0gaW5qZWN0KEdUYWdTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbnNlbnRWYWx1ZSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd1BvcHVwID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLl9ndGFnICE9PSBudWxsICYmXG4gICAgdGhpcy5fY29uc2VudFZhbHVlKCkgIT09ICd0cnVlJyAmJlxuICAgIHRoaXMuX2NvbnNlbnRWYWx1ZSgpICE9PSAnZmFsc2UnLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2xvY2FsU3RvcmFnZT8uZ2V0SXRlbShGX0FDQ0VQVF9DT09LSUVTX0tFWSk7XG4gICAgICB0aGlzLl9jb25zZW50VmFsdWUuc2V0KHZhbHVlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuX2NvbnNlbnRWYWx1ZS5zZXQobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFjY2VwdCgpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5fbG9jYWxTdG9yYWdlPy5zZXRJdGVtKEZfQUNDRVBUX0NPT0tJRVNfS0VZLCAndHJ1ZScpO1xuICAgIH0gY2F0Y2ggeyAvKiBlbXB0eSAqLyB9XG5cbiAgICB0aGlzLl9ndGFnPy51cGRhdGVDb25zZW50KHRydWUpO1xuICAgIHRoaXMuX2NvbnNlbnRWYWx1ZS5zZXQoJ3RydWUnKTtcbiAgfVxufVxuXG4iLCJAaWYgKHNob3dQb3B1cCgpKSB7XG4gIDxkaXYgY2xhc3M9XCJkb2NzLWNvb2tpZXMtcG9wdXAgZG9jcy1pbnZlcnQtbW9kZVwiPlxuICAgIDxwPlRoaXMgc2l0ZSB1c2VzIGNvb2tpZXMgZnJvbSBHb29nbGUgdG8gZGVsaXZlciBpdHMgc2VydmljZXMgYW5kIHRvIGFuYWx5emUgdHJhZmZpYy48L3A+XG5cbiAgICA8ZGl2PlxuICAgICAgPGEgaHJlZj1cImh0dHBzOi8vcG9saWNpZXMuZ29vZ2xlLmNvbS90ZWNobm9sb2dpZXMvY29va2llc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJmLWJ1dHRvblwiIFthdHRyLnRleHRdPVwiJ0xlYXJuIG1vcmUnXCIgYXJpYS1sYWJlbD1cIkxlYXJuIE1vcmVcIj5cbiAgICAgICAgICBMZWFybiBtb3JlXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9hPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwiYWNjZXB0KClcIlxuICAgICAgICBjbGFzcz1cImYtYnV0dG9uXCJcbiAgICAgICAgW2F0dHIudGV4dF09XCInT2ssIEdvdCBpdCdcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiT2ssIEdvdCBpdFwiPlxuICAgICAgICBPaywgR290IGl0XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG4iXX0="],"names":[],"mappings":";;;;AAIY,MAAC,oBAAoB,GAAG;AAC7B,MAAM,oBAAoB,CAAC;AAClC,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACzC,IAAI,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACnD,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxF,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI;AAClD,QAAQ,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM;AACvC,QAAQ,IAAI,CAAC,aAAa,EAAE,KAAK,OAAO,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7F,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI;AACZ,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,oBAAoB,CAAC;AAC3E,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AACzC;AACA,QAAQ,MAAM;AACd,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AACxC;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC;AACrE;AACA,QAAQ,MAAM;AACd,QAAQ,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC;AACvC,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;AACtC;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC9K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,ooBAAooB,EAAE,MAAM,EAAE,CAAC,+sBAA+sB,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC;AAC7kD;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,ooBAAooB,EAAE,MAAM,EAAE,CAAC,+sBAA+sB,CAAC,EAAE;AAC79C,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;;;"}