@ng-doc/app 17.6.7 → 17.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,11 @@
1
1
  import { ElementRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class NgDocTocElementComponent {
4
- href: string;
4
+ path: string;
5
+ hash: string;
5
6
  selected: boolean;
6
7
  level: number;
7
8
  readonly elementRef: ElementRef<HTMLElement>;
8
9
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocTocElementComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<NgDocTocElementComponent, "li[ng-doc-toc-element]", never, { "href": { "alias": "href"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "level": { "alias": "level"; "required": false; }; }, {}, never, ["*"], true, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocTocElementComponent, "li[ng-doc-toc-element]", never, { "path": { "alias": "path"; "required": false; }; "hash": { "alias": "hash"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "level": { "alias": "level"; "required": false; }; }, {}, never, ["*"], true, never>;
10
11
  }
@@ -1,19 +1,23 @@
1
1
  import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, inject, Input, } from '@angular/core';
2
+ import { RouterLink } from '@angular/router';
2
3
  import * as i0 from "@angular/core";
3
4
  export class NgDocTocElementComponent {
4
5
  constructor() {
5
- this.href = '';
6
+ this.path = '';
7
+ this.hash = '';
6
8
  this.selected = false;
7
9
  this.level = 1;
8
10
  this.elementRef = inject(ElementRef);
9
11
  }
10
12
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocTocElementComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: NgDocTocElementComponent, isStandalone: true, selector: "li[ng-doc-toc-element]", inputs: { href: "href", selected: "selected", level: "level" }, host: { properties: { "attr.data-ng-doc-selected": "this.selected", "attr.data-ng-doc-level": "this.level" } }, ngImport: i0, template: "<a [href]=\"href\" [style.padding-left]=\"'calc(var(--ng-doc-toc-indent) * ' + level + ')'\">\n\t<ng-content></ng-content>\n</a>\n", styles: [":host{display:flex;margin:0;color:var(--ng-doc-text)}:host[data-ng-doc-level=\"1\"] a{padding-left:var(--ng-doc-base-gutter)}:host[data-ng-doc-selected=true]{color:var(--ng-doc-primary)}:host:hover{cursor:pointer;color:var(--ng-doc-primary)}:host a{font-family:var(--ng-doc-font-family);font-variant:no-contextual;color:var(--ng-doc-text);line-height:var(--ng-doc-line-height);font-size:var(--ng-doc-font-size);font-weight:var(--ng-doc-font-weight);padding:calc(var(--ng-doc-base-gutter) / 2);color:inherit;width:100%;text-decoration:none;word-break:break-word;--ng-doc-font-size: 14px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: NgDocTocElementComponent, isStandalone: true, selector: "li[ng-doc-toc-element]", inputs: { path: "path", hash: "hash", selected: "selected", level: "level" }, host: { properties: { "attr.data-ng-doc-selected": "this.selected", "attr.data-ng-doc-level": "this.level" } }, ngImport: i0, template: "<a\n\t[routerLink]=\"[path]\"\n\t[fragment]=\"hash\"\n\t[style.padding-left]=\"'calc(var(--ng-doc-toc-indent) * ' + level + ')'\">\n\t<ng-content></ng-content>\n</a>\n", styles: [":host{display:flex;margin:0;color:var(--ng-doc-text)}:host[data-ng-doc-level=\"1\"] a{padding-left:var(--ng-doc-base-gutter)}:host[data-ng-doc-selected=true]{color:var(--ng-doc-primary)}:host:hover{cursor:pointer;color:var(--ng-doc-primary)}:host a{font-family:var(--ng-doc-font-family);font-variant:no-contextual;color:var(--ng-doc-text);line-height:var(--ng-doc-line-height);font-size:var(--ng-doc-font-size);font-weight:var(--ng-doc-font-weight);padding:calc(var(--ng-doc-base-gutter) / 2);color:inherit;width:100%;text-decoration:none;word-break:break-word;--ng-doc-font-size: 14px}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12
14
  }
13
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocTocElementComponent, decorators: [{
14
16
  type: Component,
15
- args: [{ selector: 'li[ng-doc-toc-element]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<a [href]=\"href\" [style.padding-left]=\"'calc(var(--ng-doc-toc-indent) * ' + level + ')'\">\n\t<ng-content></ng-content>\n</a>\n", styles: [":host{display:flex;margin:0;color:var(--ng-doc-text)}:host[data-ng-doc-level=\"1\"] a{padding-left:var(--ng-doc-base-gutter)}:host[data-ng-doc-selected=true]{color:var(--ng-doc-primary)}:host:hover{cursor:pointer;color:var(--ng-doc-primary)}:host a{font-family:var(--ng-doc-font-family);font-variant:no-contextual;color:var(--ng-doc-text);line-height:var(--ng-doc-line-height);font-size:var(--ng-doc-font-size);font-weight:var(--ng-doc-font-weight);padding:calc(var(--ng-doc-base-gutter) / 2);color:inherit;width:100%;text-decoration:none;word-break:break-word;--ng-doc-font-size: 14px}\n"] }]
16
- }], propDecorators: { href: [{
17
+ args: [{ selector: 'li[ng-doc-toc-element]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [RouterLink], template: "<a\n\t[routerLink]=\"[path]\"\n\t[fragment]=\"hash\"\n\t[style.padding-left]=\"'calc(var(--ng-doc-toc-indent) * ' + level + ')'\">\n\t<ng-content></ng-content>\n</a>\n", styles: [":host{display:flex;margin:0;color:var(--ng-doc-text)}:host[data-ng-doc-level=\"1\"] a{padding-left:var(--ng-doc-base-gutter)}:host[data-ng-doc-selected=true]{color:var(--ng-doc-primary)}:host:hover{cursor:pointer;color:var(--ng-doc-primary)}:host a{font-family:var(--ng-doc-font-family);font-variant:no-contextual;color:var(--ng-doc-text);line-height:var(--ng-doc-line-height);font-size:var(--ng-doc-font-size);font-weight:var(--ng-doc-font-weight);padding:calc(var(--ng-doc-base-gutter) / 2);color:inherit;width:100%;text-decoration:none;word-break:break-word;--ng-doc-font-size: 14px}\n"] }]
18
+ }], propDecorators: { path: [{
19
+ type: Input
20
+ }], hash: [{
17
21
  type: Input
18
22
  }], selected: [{
19
23
  type: Input
@@ -26,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
26
30
  type: HostBinding,
27
31
  args: ['attr.data-ng-doc-level']
28
32
  }] } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLWVsZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy90b2MvdG9jLWVsZW1lbnQvdG9jLWVsZW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy90b2MvdG9jLWVsZW1lbnQvdG9jLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDOztBQVN2QixNQUFNLE9BQU8sd0JBQXdCO0lBUHJDO1FBU0MsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUlsQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBSTFCLFVBQUssR0FBVyxDQUFDLENBQUM7UUFFVCxlQUFVLEdBQTRCLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUNsRTs4R0FiWSx3QkFBd0I7a0dBQXhCLHdCQUF3QixrUUNoQnJDLG9JQUdBOzsyRkRhYSx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0Msd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUk7OEJBSWhCLElBQUk7c0JBREgsS0FBSztnQkFLTixRQUFRO3NCQUZQLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsMkJBQTJCO2dCQUt4QyxLQUFLO3NCQUZKLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0SG9zdEJpbmRpbmcsXG5cdGluamVjdCxcblx0SW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdsaVtuZy1kb2MtdG9jLWVsZW1lbnRdJyxcblx0dGVtcGxhdGVVcmw6ICcuL3RvYy1lbGVtZW50LmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vdG9jLWVsZW1lbnQuY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE5nRG9jVG9jRWxlbWVudENvbXBvbmVudCB7XG5cdEBJbnB1dCgpXG5cdGhyZWY6IHN0cmluZyA9ICcnO1xuXG5cdEBJbnB1dCgpXG5cdEBIb3N0QmluZGluZygnYXR0ci5kYXRhLW5nLWRvYy1zZWxlY3RlZCcpXG5cdHNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG5cblx0QElucHV0KClcblx0QEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtbmctZG9jLWxldmVsJylcblx0bGV2ZWw6IG51bWJlciA9IDE7XG5cblx0cmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG59XG4iLCI8YSBbaHJlZl09XCJocmVmXCIgW3N0eWxlLnBhZGRpbmctbGVmdF09XCInY2FsYyh2YXIoLS1uZy1kb2MtdG9jLWluZGVudCkgKiAnICsgbGV2ZWwgKyAnKSdcIj5cblx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9hPlxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLWVsZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy90b2MvdG9jLWVsZW1lbnQvdG9jLWVsZW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy90b2MvdG9jLWVsZW1lbnQvdG9jLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFVN0MsTUFBTSxPQUFPLHdCQUF3QjtJQVJyQztRQVVDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFHbEIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUlsQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBSTFCLFVBQUssR0FBVyxDQUFDLENBQUM7UUFFVCxlQUFVLEdBQTRCLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUNsRTs4R0FoQlksd0JBQXdCO2tHQUF4Qix3QkFBd0IsZ1JDbEJyQyx5S0FNQSxzb0JEVVcsVUFBVTs7MkZBRVIsd0JBQXdCO2tCQVJwQyxTQUFTOytCQUNDLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxVQUFVLENBQUM7OEJBSXJCLElBQUk7c0JBREgsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBS04sUUFBUTtzQkFGUCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFLeEMsS0FBSztzQkFGSixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdEhvc3RCaW5kaW5nLFxuXHRpbmplY3QsXG5cdElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdsaVtuZy1kb2MtdG9jLWVsZW1lbnRdJyxcblx0dGVtcGxhdGVVcmw6ICcuL3RvYy1lbGVtZW50LmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vdG9jLWVsZW1lbnQuY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtSb3V0ZXJMaW5rXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdEb2NUb2NFbGVtZW50Q29tcG9uZW50IHtcblx0QElucHV0KClcblx0cGF0aDogc3RyaW5nID0gJyc7XG5cblx0QElucHV0KClcblx0aGFzaDogc3RyaW5nID0gJyc7XG5cblx0QElucHV0KClcblx0QEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtbmctZG9jLXNlbGVjdGVkJylcblx0c2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRASW5wdXQoKVxuXHRASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1uZy1kb2MtbGV2ZWwnKVxuXHRsZXZlbDogbnVtYmVyID0gMTtcblxuXHRyZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmKTtcbn1cbiIsIjxhXG5cdFtyb3V0ZXJMaW5rXT1cIltwYXRoXVwiXG5cdFtmcmFnbWVudF09XCJoYXNoXCJcblx0W3N0eWxlLnBhZGRpbmctbGVmdF09XCInY2FsYyh2YXIoLS1uZy1kb2MtdG9jLWluZGVudCkgKiAnICsgbGV2ZWwgKyAnKSdcIj5cblx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9hPlxuIl19
@@ -69,7 +69,7 @@ let NgDocTocComponent = class NgDocTocComponent {
69
69
  this.activeItem.set(item);
70
70
  }
71
71
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocTocComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: NgDocTocComponent, isStandalone: true, selector: "ng-doc-toc", inputs: { tableOfContent: "tableOfContent" }, viewQueries: [{ propertyName: "selection", first: true, predicate: ["selection"], descendants: true, read: ElementRef }, { propertyName: "elements", predicate: NgDocTocElementComponent, descendants: true }], ngImport: i0, template: "<div class=\"ng-doc-toc-wrapper\">\n\t<div class=\"ng-doc-toc-container\">\n\t\t<div class=\"ng-doc-toc-selection\" #selection></div>\n\t\t<ul class=\"ng-doc-toc\">\n\t\t\t@for (item of tableOfContent; track item) {\n\t\t\t<li\n\t\t\t\tng-doc-toc-element\n\t\t\t\t[href]=\"item.path\"\n\t\t\t\t[level]=\"item.level\"\n\t\t\t\t[selected]=\"item === activeItem()\">\n\t\t\t\t{{ item.title }}\n\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t</div>\n</div>\n", styles: [":host .ng-doc-toc-wrapper{position:relative;width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-container{position:fixed;overflow-y:auto;height:calc(100% - var(--ng-doc-navbar-height) - var(--ng-doc-base-gutter) * 5);width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-selection{position:absolute;transform:translate(-50%);width:calc(var(--ng-doc-base-gutter) / 2);border-radius:calc(var(--ng-doc-base-gutter) / 2);background-color:var(--ng-doc-primary);left:calc(var(--ng-doc-toc-margin) + 1px);transition:var(--ng-doc-transition)}:host .ng-doc-toc-wrapper .ng-doc-toc{list-style:none;margin:0 0 0 var(--ng-doc-toc-margin);border-left:1px solid var(--ng-doc-base-3);padding:0 0 0 var(--ng-doc-base-gutter)}@media (max-width: 1200px){:host .ng-doc-toc-wrapper{display:none}}\n"], dependencies: [{ kind: "component", type: NgDocTocElementComponent, selector: "li[ng-doc-toc-element]", inputs: ["href", "selected", "level"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: NgDocTocComponent, isStandalone: true, selector: "ng-doc-toc", inputs: { tableOfContent: "tableOfContent" }, viewQueries: [{ propertyName: "selection", first: true, predicate: ["selection"], descendants: true, read: ElementRef }, { propertyName: "elements", predicate: NgDocTocElementComponent, descendants: true }], ngImport: i0, template: "<div class=\"ng-doc-toc-wrapper\">\n\t<div class=\"ng-doc-toc-container\">\n\t\t<div class=\"ng-doc-toc-selection\" #selection></div>\n\t\t<ul class=\"ng-doc-toc\">\n\t\t\t@for (item of tableOfContent; track item) {\n\t\t\t\t<li\n\t\t\t\t\tng-doc-toc-element\n\t\t\t\t\t[path]=\"item.path\"\n\t\t\t\t\t[hash]=\"item.hash\"\n\t\t\t\t\t[level]=\"item.level\"\n\t\t\t\t\t[selected]=\"item === activeItem()\">\n\t\t\t\t\t{{ item.title }}\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t</div>\n</div>\n", styles: [":host .ng-doc-toc-wrapper{position:relative;width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-container{position:fixed;overflow-y:auto;height:calc(100% - var(--ng-doc-navbar-height) - var(--ng-doc-base-gutter) * 5);width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-selection{position:absolute;transform:translate(-50%);width:calc(var(--ng-doc-base-gutter) / 2);border-radius:calc(var(--ng-doc-base-gutter) / 2);background-color:var(--ng-doc-primary);left:calc(var(--ng-doc-toc-margin) + 1px);transition:var(--ng-doc-transition)}:host .ng-doc-toc-wrapper .ng-doc-toc{list-style:none;margin:0 0 0 var(--ng-doc-toc-margin);border-left:1px solid var(--ng-doc-base-3);padding:0 0 0 var(--ng-doc-base-gutter)}@media (max-width: 1200px){:host .ng-doc-toc-wrapper{display:none}}\n"], dependencies: [{ kind: "component", type: NgDocTocElementComponent, selector: "li[ng-doc-toc-element]", inputs: ["path", "hash", "selected", "level"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
73
  };
74
74
  NgDocTocComponent = __decorate([
75
75
  UntilDestroy(),
@@ -78,7 +78,7 @@ NgDocTocComponent = __decorate([
78
78
  export { NgDocTocComponent };
79
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocTocComponent, decorators: [{
80
80
  type: Component,
81
- args: [{ selector: 'ng-doc-toc', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgFor, NgDocTocElementComponent, NgDocMediaQueryDirective], template: "<div class=\"ng-doc-toc-wrapper\">\n\t<div class=\"ng-doc-toc-container\">\n\t\t<div class=\"ng-doc-toc-selection\" #selection></div>\n\t\t<ul class=\"ng-doc-toc\">\n\t\t\t@for (item of tableOfContent; track item) {\n\t\t\t<li\n\t\t\t\tng-doc-toc-element\n\t\t\t\t[href]=\"item.path\"\n\t\t\t\t[level]=\"item.level\"\n\t\t\t\t[selected]=\"item === activeItem()\">\n\t\t\t\t{{ item.title }}\n\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t</div>\n</div>\n", styles: [":host .ng-doc-toc-wrapper{position:relative;width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-container{position:fixed;overflow-y:auto;height:calc(100% - var(--ng-doc-navbar-height) - var(--ng-doc-base-gutter) * 5);width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-selection{position:absolute;transform:translate(-50%);width:calc(var(--ng-doc-base-gutter) / 2);border-radius:calc(var(--ng-doc-base-gutter) / 2);background-color:var(--ng-doc-primary);left:calc(var(--ng-doc-toc-margin) + 1px);transition:var(--ng-doc-transition)}:host .ng-doc-toc-wrapper .ng-doc-toc{list-style:none;margin:0 0 0 var(--ng-doc-toc-margin);border-left:1px solid var(--ng-doc-base-3);padding:0 0 0 var(--ng-doc-base-gutter)}@media (max-width: 1200px){:host .ng-doc-toc-wrapper{display:none}}\n"] }]
81
+ args: [{ selector: 'ng-doc-toc', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgFor, NgDocTocElementComponent, NgDocMediaQueryDirective], template: "<div class=\"ng-doc-toc-wrapper\">\n\t<div class=\"ng-doc-toc-container\">\n\t\t<div class=\"ng-doc-toc-selection\" #selection></div>\n\t\t<ul class=\"ng-doc-toc\">\n\t\t\t@for (item of tableOfContent; track item) {\n\t\t\t\t<li\n\t\t\t\t\tng-doc-toc-element\n\t\t\t\t\t[path]=\"item.path\"\n\t\t\t\t\t[hash]=\"item.hash\"\n\t\t\t\t\t[level]=\"item.level\"\n\t\t\t\t\t[selected]=\"item === activeItem()\">\n\t\t\t\t\t{{ item.title }}\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t</div>\n</div>\n", styles: [":host .ng-doc-toc-wrapper{position:relative;width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-container{position:fixed;overflow-y:auto;height:calc(100% - var(--ng-doc-navbar-height) - var(--ng-doc-base-gutter) * 5);width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-selection{position:absolute;transform:translate(-50%);width:calc(var(--ng-doc-base-gutter) / 2);border-radius:calc(var(--ng-doc-base-gutter) / 2);background-color:var(--ng-doc-primary);left:calc(var(--ng-doc-toc-margin) + 1px);transition:var(--ng-doc-transition)}:host .ng-doc-toc-wrapper .ng-doc-toc{list-style:none;margin:0 0 0 var(--ng-doc-toc-margin);border-left:1px solid var(--ng-doc-base-3);padding:0 0 0 var(--ng-doc-base-gutter)}@media (max-width: 1200px){:host .ng-doc-toc-wrapper{display:none}}\n"] }]
82
82
  }], ctorParameters: () => [], propDecorators: { tableOfContent: [{
83
83
  type: Input
84
84
  }], selection: [{
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
88
88
  type: ViewChildren,
89
89
  args: [NgDocTocElementComponent]
90
90
  }] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvdG9jL3RvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3RvYy90b2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUNOLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEdBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQVd4RSxJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFpQjtJQWtCN0I7UUFoQkEsbUJBQWMsR0FBbUIsRUFB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QUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDO2dCQUN0RixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQztnQkFFNUYsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLENBQUM7UUFDRixDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs4R0F0R1csaUJBQWlCO2tHQUFqQixpQkFBaUIsdU1BSUcsVUFBVSwyQ0FHNUIsd0JBQXdCLGdEQzdDdkMsNGJBZ0JBLGsyQkRtQmtCLHdCQUF3Qjs7QUFHN0IsaUJBQWlCO0lBRDdCLFlBQVksRUFBRTs7R0FDRixpQkFBaUIsQ0F1RzdCOzsyRkF2R1ksaUJBQWlCO2tCQVQ3QixTQUFTOytCQUNDLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLENBQUM7d0RBS3BFLGNBQWM7c0JBRGIsS0FBSztnQkFJTixTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJNUMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRhZnRlck5leHRSZW5kZXIsXG5cdEFmdGVyUmVuZGVyUGhhc2UsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdElucHV0LFxuXHROZ1pvbmUsXG5cdE9uSW5pdCxcblx0UXVlcnlMaXN0LFxuXHRSZW5kZXJlcjIsXG5cdHNpZ25hbCxcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q2hpbGRyZW4sXG5cdFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50IGFzIFJFdmVudCwgUm91dGVyLCBTY3JvbGwgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmdEb2NQYWdlVG9jLCBOZ0RvY1RvY0l0ZW0gfSBmcm9tICdAbmctZG9jL2FwcC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGlzUHJlc2VudCB9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL2lzLXByZXNlbnQnO1xuaW1wb3J0IHsgTmdEb2NNZWRpYVF1ZXJ5RGlyZWN0aXZlLCBuZ0RvY1pvbmVPcHRpbWl6ZSB9IGZyb20gJ0BuZy1kb2MvdWkta2l0JztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTmdEb2NUb2NFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi90b2MtZWxlbWVudC90b2MtZWxlbWVudC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZy1kb2MtdG9jJyxcblx0dGVtcGxhdGVVcmw6ICcuL3RvYy5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3RvYy5jb21wb25lbnQuc2NzcyddLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW05nRm9yLCBOZ0RvY1RvY0VsZW1lbnRDb21wb25lbnQsIE5nRG9jTWVkaWFRdWVyeURpcmVjdGl2ZV0sXG59KVxuQFVudGlsRGVzdHJveSgpXG5leHBvcnQgY2xhc3MgTmdEb2NUb2NDb21wb25lbnQgaW1wbGVtZW50cyBOZ0RvY1BhZ2VUb2MsIE9uSW5pdCB7XG5cdEBJbnB1dCgpXG5cdHRhYmxlT2ZDb250ZW50OiBOZ0RvY1RvY0l0ZW1bXSA9IFtdO1xuXG5cdEBWaWV3Q2hpbGQoJ3NlbGVjdGlvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuXHRzZWxlY3Rpb24/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuXHRAVmlld0NoaWxkcmVuKE5nRG9jVG9jRWxlbWVudENvbXBvbmVudClcblx0ZWxlbWVudHM6IFF1ZXJ5TGlzdDxOZ0RvY1RvY0VsZW1lbnRDb21wb25lbnQ+ID0gbmV3IFF1ZXJ5TGlzdDxOZ0RvY1RvY0VsZW1lbnRDb21wb25lbnQ+KCk7XG5cblx0YWN0aXZlSXRlbTogV3JpdGFibGVTaWduYWw8TmdEb2NUb2NJdGVtIHwgdW5kZWZpbmVkPiA9IHNpZ25hbCh1bmRlZmluZWQpO1xuXG5cdHByb3RlY3RlZCByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cdHByb3RlY3RlZCByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cdHByb3RlY3RlZCByZWFkb25seSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcihcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3Qgc2Nyb2xsU2VsZWN0aW9uOiBPYnNlcnZhYmxlPE5nRG9jVG9jSXRlbT4gPSBmcm9tRXZlbnQodGhpcy5kb2N1bWVudCwgJ3Njcm9sbCcpLnBpcGUoXG5cdFx0XHRcdFx0ZmlsdGVyKCgpID0+ICEhdGhpcy50YWJsZU9mQ29udGVudC5sZW5ndGgpLFxuXHRcdFx0XHRcdG1hcCgoZXZlbnQ6IEV2ZW50KSA9PiAoZXZlbnQudGFyZ2V0IGFzIERvY3VtZW50KS5zY3JvbGxpbmdFbGVtZW50IGFzIEhUTUxFbGVtZW50KSxcblx0XHRcdFx0XHRzdGFydFdpdGgodGhpcy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50IGFzIEhUTUxFbGVtZW50KSxcblx0XHRcdFx0XHRtYXAoKHRhcmdldDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IHBlcmNlbnRhZ2U6IG51bWJlciA9XG5cdFx0XHRcdFx0XHRcdCh0YXJnZXQuc2Nyb2xsVG9wICogMTAwKSAvICh0YXJnZXQuc2Nyb2xsSGVpZ2h0IC0gdGFyZ2V0Lm9mZnNldEhlaWdodCk7XG5cdFx0XHRcdFx0XHRjb25zdCBzZWxlY3Rpb25MaW5lOiBudW1iZXIgPVxuXHRcdFx0XHRcdFx0XHR0YXJnZXQuc2Nyb2xsVG9wICsgKHRhcmdldC5vZmZzZXRIZWlnaHQgKiBwZXJjZW50YWdlKSAvIDEwMDtcblxuXHRcdFx0XHRcdFx0aWYgKCF0aGlzLnRhYmxlT2ZDb250ZW50Lmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMudGFibGVPZkNvbnRlbnQucmVkdWNlKChwVGFyZ2V0OiBOZ0RvY1RvY0l0ZW0sIGNUYXJnZXQ6IE5nRG9jVG9jSXRlbSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBwVG9wOiBudW1iZXIgPSBwVGFyZ2V0LmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgdGFyZ2V0LnNjcm9sbFRvcDtcblx0XHRcdFx0XHRcdFx0Y29uc3QgY1RvcDogbnVtYmVyID0gY1RhcmdldC5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHRhcmdldC5zY3JvbGxUb3A7XG5cblx0XHRcdFx0XHRcdFx0cmV0dXJuIE1hdGguYWJzKGNUb3AgLSBzZWxlY3Rpb25MaW5lKSA8IE1hdGguYWJzKHBUb3AgLSBzZWxlY3Rpb25MaW5lKVxuXHRcdFx0XHRcdFx0XHRcdD8gY1RhcmdldFxuXHRcdFx0XHRcdFx0XHRcdDogcFRhcmdldDtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdGZpbHRlcihpc1ByZXNlbnQpLFxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdGNvbnN0IHJvdXRlclNlbGVjdGlvbjogT2JzZXJ2YWJsZTxOZ0RvY1RvY0l0ZW0+ID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG5cdFx0XHRcdFx0bWFwKChldmVudDogUkV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoZXZlbnQgaW5zdGFuY2VvZiBTY3JvbGwpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgaXRlbTogTmdEb2NUb2NJdGVtIHwgdW5kZWZpbmVkID0gdGhpcy50YWJsZU9mQ29udGVudC5maW5kKFxuXHRcdFx0XHRcdFx0XHRcdChpdGVtOiBOZ0RvY1RvY0l0ZW0pID0+IGl0ZW0ucGF0aC5pbmNsdWRlcyhldmVudC5yb3V0ZXJFdmVudC51cmwpLFxuXHRcdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHRcdGlmIChpdGVtKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGl0ZW07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0ZmlsdGVyKGlzUHJlc2VudCksXG5cdFx0XHRcdFx0ZGVib3VuY2VUaW1lKDIwKSxcblx0XHRcdFx0KTtcblxuXHRcdFx0XHRjb25zdCBlbGVtZW50c0NoYW5nZXMgPSB0aGlzLmVsZW1lbnRzLmNoYW5nZXMucGlwZShcblx0XHRcdFx0XHRtYXAoKCkgPT4gdGhpcy5hY3RpdmVJdGVtKCkpLFxuXHRcdFx0XHRcdGZpbHRlcihpc1ByZXNlbnQpLFxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdG1lcmdlKG1lcmdlKHNjcm9sbFNlbGVjdGlvbiwgcm91dGVyU2VsZWN0aW9uKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLCBlbGVtZW50c0NoYW5nZXMpXG5cdFx0XHRcdFx0LnBpcGUoZGVib3VuY2VUaW1lKDApLCBuZ0RvY1pvbmVPcHRpbWl6ZSh0aGlzLm5nWm9uZSksIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuXHRcdFx0XHRcdC5zdWJzY3JpYmUodGhpcy5zZWxlY3QuYmluZCh0aGlzKSk7XG5cdFx0XHR9LFxuXHRcdFx0eyBwaGFzZTogQWZ0ZXJSZW5kZXJQaGFzZS5Xcml0ZSB9LFxuXHRcdCk7XG5cdH1cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLmFjdGl2ZUl0ZW0uc2V0KHRoaXMudGFibGVPZkNvbnRlbnRbMF0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNlbGVjdHMgdGhlIGl0ZW0gaW4gdGhlIHRhYmxlIG9mIGNvbnRlbnQuXG5cdCAqIEBwYXJhbSBpdGVtIC0gSXRlbSB0byBzZWxlY3QuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgc2VsZWN0KGl0ZW06IE5nRG9jVG9jSXRlbSk6IHZvaWQge1xuXHRcdGNvbnN0IGluZGV4OiBudW1iZXIgPSB0aGlzLnRhYmxlT2ZDb250ZW50LmluZGV4T2YoaXRlbSk7XG5cblx0XHRpZiAodGhpcy5zZWxlY3Rpb24pIHtcblx0XHRcdGNvbnN0IGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID1cblx0XHRcdFx0dGhpcy5lbGVtZW50cy50b0FycmF5KClbaW5kZXhdPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cblx0XHRcdGlmIChlbGVtZW50KSB7XG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5zZWxlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ3RvcCcsIGAke2VsZW1lbnQub2Zmc2V0VG9wfXB4YCk7XG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5zZWxlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2VsZW1lbnQub2Zmc2V0SGVpZ2h0fXB4YCk7XG5cblx0XHRcdFx0ZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dGhpcy5hY3RpdmVJdGVtLnNldChpdGVtKTtcblx0fVxufVxuIiwiPGRpdiBjbGFzcz1cIm5nLWRvYy10b2Mtd3JhcHBlclwiPlxuXHQ8ZGl2IGNsYXNzPVwibmctZG9jLXRvYy1jb250YWluZXJcIj5cblx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLXRvYy1zZWxlY3Rpb25cIiAjc2VsZWN0aW9uPjwvZGl2PlxuXHRcdDx1bCBjbGFzcz1cIm5nLWRvYy10b2NcIj5cblx0XHRcdEBmb3IgKGl0ZW0gb2YgdGFibGVPZkNvbnRlbnQ7IHRyYWNrIGl0ZW0pIHtcblx0XHRcdDxsaVxuXHRcdFx0XHRuZy1kb2MtdG9jLWVsZW1lbnRcblx0XHRcdFx0W2hyZWZdPVwiaXRlbS5wYXRoXCJcblx0XHRcdFx0W2xldmVsXT1cIml0ZW0ubGV2ZWxcIlxuXHRcdFx0XHRbc2VsZWN0ZWRdPVwiaXRlbSA9PT0gYWN0aXZlSXRlbSgpXCI+XG5cdFx0XHRcdHt7IGl0ZW0udGl0bGUgfX1cblx0XHRcdDwvbGk+XG5cdFx0XHR9XG5cdFx0PC91bD5cblx0PC9kaXY+XG48L2Rpdj5cbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvdG9jL3RvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3RvYy90b2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUNOLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEdBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQVd4RSxJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFpQjtJQWtCN0I7UUFoQkEsbUJBQWMsR0FBbUIsRUFB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QUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDO2dCQUN0RixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQztnQkFFNUYsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLENBQUM7UUFDRixDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs4R0F0R1csaUJBQWlCO2tHQUFqQixpQkFBaUIsdU1BSUcsVUFBVSwyQ0FHNUIsd0JBQXdCLGdEQzdDdkMsMGVBaUJBLGsyQkRrQmtCLHdCQUF3Qjs7QUFHN0IsaUJBQWlCO0lBRDdCLFlBQVksRUFBRTs7R0FDRixpQkFBaUIsQ0F1RzdCOzsyRkF2R1ksaUJBQWlCO2tCQVQ3QixTQUFTOytCQUNDLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLENBQUM7d0RBS3BFLGNBQWM7c0JBRGIsS0FBSztnQkFJTixTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJNUMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRhZnRlck5leHRSZW5kZXIsXG5cdEFmdGVyUmVuZGVyUGhhc2UsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdElucHV0LFxuXHROZ1pvbmUsXG5cdE9uSW5pdCxcblx0UXVlcnlMaXN0LFxuXHRSZW5kZXJlcjIsXG5cdHNpZ25hbCxcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q2hpbGRyZW4sXG5cdFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50IGFzIFJFdmVudCwgUm91dGVyLCBTY3JvbGwgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmdEb2NQYWdlVG9jLCBOZ0RvY1RvY0l0ZW0gfSBmcm9tICdAbmctZG9jL2FwcC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGlzUHJlc2VudCB9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL2lzLXByZXNlbnQnO1xuaW1wb3J0IHsgTmdEb2NNZWRpYVF1ZXJ5RGlyZWN0aXZlLCBuZ0RvY1pvbmVPcHRpbWl6ZSB9IGZyb20gJ0BuZy1kb2MvdWkta2l0JztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTmdEb2NUb2NFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi90b2MtZWxlbWVudC90b2MtZWxlbWVudC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZy1kb2MtdG9jJyxcblx0dGVtcGxhdGVVcmw6ICcuL3RvYy5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3RvYy5jb21wb25lbnQuc2NzcyddLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW05nRm9yLCBOZ0RvY1RvY0VsZW1lbnRDb21wb25lbnQsIE5nRG9jTWVkaWFRdWVyeURpcmVjdGl2ZV0sXG59KVxuQFVudGlsRGVzdHJveSgpXG5leHBvcnQgY2xhc3MgTmdEb2NUb2NDb21wb25lbnQgaW1wbGVtZW50cyBOZ0RvY1BhZ2VUb2MsIE9uSW5pdCB7XG5cdEBJbnB1dCgpXG5cdHRhYmxlT2ZDb250ZW50OiBOZ0RvY1RvY0l0ZW1bXSA9IFtdO1xuXG5cdEBWaWV3Q2hpbGQoJ3NlbGVjdGlvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuXHRzZWxlY3Rpb24/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuXHRAVmlld0NoaWxkcmVuKE5nRG9jVG9jRWxlbWVudENvbXBvbmVudClcblx0ZWxlbWVudHM6IFF1ZXJ5TGlzdDxOZ0RvY1RvY0VsZW1lbnRDb21wb25lbnQ+ID0gbmV3IFF1ZXJ5TGlzdDxOZ0RvY1RvY0VsZW1lbnRDb21wb25lbnQ+KCk7XG5cblx0YWN0aXZlSXRlbTogV3JpdGFibGVTaWduYWw8TmdEb2NUb2NJdGVtIHwgdW5kZWZpbmVkPiA9IHNpZ25hbCh1bmRlZmluZWQpO1xuXG5cdHByb3RlY3RlZCByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cdHByb3RlY3RlZCByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cdHByb3RlY3RlZCByZWFkb25seSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcihcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3Qgc2Nyb2xsU2VsZWN0aW9uOiBPYnNlcnZhYmxlPE5nRG9jVG9jSXRlbT4gPSBmcm9tRXZlbnQodGhpcy5kb2N1bWVudCwgJ3Njcm9sbCcpLnBpcGUoXG5cdFx0XHRcdFx0ZmlsdGVyKCgpID0+ICEhdGhpcy50YWJsZU9mQ29udGVudC5sZW5ndGgpLFxuXHRcdFx0XHRcdG1hcCgoZXZlbnQ6IEV2ZW50KSA9PiAoZXZlbnQudGFyZ2V0IGFzIERvY3VtZW50KS5zY3JvbGxpbmdFbGVtZW50IGFzIEhUTUxFbGVtZW50KSxcblx0XHRcdFx0XHRzdGFydFdpdGgodGhpcy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50IGFzIEhUTUxFbGVtZW50KSxcblx0XHRcdFx0XHRtYXAoKHRhcmdldDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IHBlcmNlbnRhZ2U6IG51bWJlciA9XG5cdFx0XHRcdFx0XHRcdCh0YXJnZXQuc2Nyb2xsVG9wICogMTAwKSAvICh0YXJnZXQuc2Nyb2xsSGVpZ2h0IC0gdGFyZ2V0Lm9mZnNldEhlaWdodCk7XG5cdFx0XHRcdFx0XHRjb25zdCBzZWxlY3Rpb25MaW5lOiBudW1iZXIgPVxuXHRcdFx0XHRcdFx0XHR0YXJnZXQuc2Nyb2xsVG9wICsgKHRhcmdldC5vZmZzZXRIZWlnaHQgKiBwZXJjZW50YWdlKSAvIDEwMDtcblxuXHRcdFx0XHRcdFx0aWYgKCF0aGlzLnRhYmxlT2ZDb250ZW50Lmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMudGFibGVPZkNvbnRlbnQucmVkdWNlKChwVGFyZ2V0OiBOZ0RvY1RvY0l0ZW0sIGNUYXJnZXQ6IE5nRG9jVG9jSXRlbSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBwVG9wOiBudW1iZXIgPSBwVGFyZ2V0LmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgdGFyZ2V0LnNjcm9sbFRvcDtcblx0XHRcdFx0XHRcdFx0Y29uc3QgY1RvcDogbnVtYmVyID0gY1RhcmdldC5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHRhcmdldC5zY3JvbGxUb3A7XG5cblx0XHRcdFx0XHRcdFx0cmV0dXJuIE1hdGguYWJzKGNUb3AgLSBzZWxlY3Rpb25MaW5lKSA8IE1hdGguYWJzKHBUb3AgLSBzZWxlY3Rpb25MaW5lKVxuXHRcdFx0XHRcdFx0XHRcdD8gY1RhcmdldFxuXHRcdFx0XHRcdFx0XHRcdDogcFRhcmdldDtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdGZpbHRlcihpc1ByZXNlbnQpLFxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdGNvbnN0IHJvdXRlclNlbGVjdGlvbjogT2JzZXJ2YWJsZTxOZ0RvY1RvY0l0ZW0+ID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG5cdFx0XHRcdFx0bWFwKChldmVudDogUkV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoZXZlbnQgaW5zdGFuY2VvZiBTY3JvbGwpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgaXRlbTogTmdEb2NUb2NJdGVtIHwgdW5kZWZpbmVkID0gdGhpcy50YWJsZU9mQ29udGVudC5maW5kKFxuXHRcdFx0XHRcdFx0XHRcdChpdGVtOiBOZ0RvY1RvY0l0ZW0pID0+IGl0ZW0ucGF0aC5pbmNsdWRlcyhldmVudC5yb3V0ZXJFdmVudC51cmwpLFxuXHRcdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHRcdGlmIChpdGVtKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGl0ZW07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0ZmlsdGVyKGlzUHJlc2VudCksXG5cdFx0XHRcdFx0ZGVib3VuY2VUaW1lKDIwKSxcblx0XHRcdFx0KTtcblxuXHRcdFx0XHRjb25zdCBlbGVtZW50c0NoYW5nZXMgPSB0aGlzLmVsZW1lbnRzLmNoYW5nZXMucGlwZShcblx0XHRcdFx0XHRtYXAoKCkgPT4gdGhpcy5hY3RpdmVJdGVtKCkpLFxuXHRcdFx0XHRcdGZpbHRlcihpc1ByZXNlbnQpLFxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdG1lcmdlKG1lcmdlKHNjcm9sbFNlbGVjdGlvbiwgcm91dGVyU2VsZWN0aW9uKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLCBlbGVtZW50c0NoYW5nZXMpXG5cdFx0XHRcdFx0LnBpcGUoZGVib3VuY2VUaW1lKDApLCBuZ0RvY1pvbmVPcHRpbWl6ZSh0aGlzLm5nWm9uZSksIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuXHRcdFx0XHRcdC5zdWJzY3JpYmUodGhpcy5zZWxlY3QuYmluZCh0aGlzKSk7XG5cdFx0XHR9LFxuXHRcdFx0eyBwaGFzZTogQWZ0ZXJSZW5kZXJQaGFzZS5Xcml0ZSB9LFxuXHRcdCk7XG5cdH1cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLmFjdGl2ZUl0ZW0uc2V0KHRoaXMudGFibGVPZkNvbnRlbnRbMF0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNlbGVjdHMgdGhlIGl0ZW0gaW4gdGhlIHRhYmxlIG9mIGNvbnRlbnQuXG5cdCAqIEBwYXJhbSBpdGVtIC0gSXRlbSB0byBzZWxlY3QuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgc2VsZWN0KGl0ZW06IE5nRG9jVG9jSXRlbSk6IHZvaWQge1xuXHRcdGNvbnN0IGluZGV4OiBudW1iZXIgPSB0aGlzLnRhYmxlT2ZDb250ZW50LmluZGV4T2YoaXRlbSk7XG5cblx0XHRpZiAodGhpcy5zZWxlY3Rpb24pIHtcblx0XHRcdGNvbnN0IGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID1cblx0XHRcdFx0dGhpcy5lbGVtZW50cy50b0FycmF5KClbaW5kZXhdPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cblx0XHRcdGlmIChlbGVtZW50KSB7XG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5zZWxlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ3RvcCcsIGAke2VsZW1lbnQub2Zmc2V0VG9wfXB4YCk7XG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5zZWxlY3Rpb24ubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2VsZW1lbnQub2Zmc2V0SGVpZ2h0fXB4YCk7XG5cblx0XHRcdFx0ZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dGhpcy5hY3RpdmVJdGVtLnNldChpdGVtKTtcblx0fVxufVxuIiwiPGRpdiBjbGFzcz1cIm5nLWRvYy10b2Mtd3JhcHBlclwiPlxuXHQ8ZGl2IGNsYXNzPVwibmctZG9jLXRvYy1jb250YWluZXJcIj5cblx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLXRvYy1zZWxlY3Rpb25cIiAjc2VsZWN0aW9uPjwvZGl2PlxuXHRcdDx1bCBjbGFzcz1cIm5nLWRvYy10b2NcIj5cblx0XHRcdEBmb3IgKGl0ZW0gb2YgdGFibGVPZkNvbnRlbnQ7IHRyYWNrIGl0ZW0pIHtcblx0XHRcdFx0PGxpXG5cdFx0XHRcdFx0bmctZG9jLXRvYy1lbGVtZW50XG5cdFx0XHRcdFx0W3BhdGhdPVwiaXRlbS5wYXRoXCJcblx0XHRcdFx0XHRbaGFzaF09XCJpdGVtLmhhc2hcIlxuXHRcdFx0XHRcdFtsZXZlbF09XCJpdGVtLmxldmVsXCJcblx0XHRcdFx0XHRbc2VsZWN0ZWRdPVwiaXRlbSA9PT0gYWN0aXZlSXRlbSgpXCI+XG5cdFx0XHRcdFx0e3sgaXRlbS50aXRsZSB9fVxuXHRcdFx0XHQ8L2xpPlxuXHRcdFx0fVxuXHRcdDwvdWw+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -15,7 +15,8 @@ export function generateToc(container) {
15
15
  map.push({
16
16
  title: heading.textContent?.trim() ?? '',
17
17
  element: heading,
18
- path: anchor.pathname + anchor.hash,
18
+ path: anchor.pathname,
19
+ hash: anchor.hash.replace('#', ''),
19
20
  level: levels.indexOf(headingLevel) + 1,
20
21
  });
21
22
  }
@@ -29,4 +30,4 @@ export function generateToc(container) {
29
30
  function levelFromTagName(heading) {
30
31
  return Number(heading.tagName.toLowerCase().replace(/[a-z]*/g, '') || 1);
31
32
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtdG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvaGVscGVycy9nZW5lcmF0ZS10b2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3hEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLFNBQXNCO0lBQ2pELE1BQU0sUUFBUSxHQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFdEUsTUFBTSxlQUFlLEdBQXlCLEtBQUssQ0FBQyxJQUFJLENBQ3ZELFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBcUIsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNuRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQTJCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV0RCxNQUFNLE1BQU0sR0FBYSxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV4RixPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFtQixFQUFFLE9BQTJCLEVBQUUsRUFBRTtRQUNsRixNQUFNLFlBQVksR0FBVyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxNQUFNLE1BQU0sR0FDWCxPQUFPLENBQUMsYUFBYSxDQUFvQixzQkFBc0IsQ0FBQyxDQUFDO1FBRWxFLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWixHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUNSLEtBQUssRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSTtnQkFDbkMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQzthQUN2QyxDQUFDLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDWixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDUixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxPQUEyQjtJQUNwRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRG9jVG9jSXRlbSB9IGZyb20gJ0BuZy1kb2MvYXBwL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNBcnJheSB9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL2FzLWFycmF5JztcbmltcG9ydCB7IE5nRG9jSGVhZGluZyB9IGZyb20gJ0BuZy1kb2MvY29yZS90eXBlcyc7XG5cbi8qKlxuICogR2VuZXJhdGUgdGFibGUgb2YgY29udGVudHMsIG9ubHkgZm9yIGhlYWRpbmdzIHdpdGggaWRcbiAqIEBwYXJhbSBjb250YWluZXJcbiAqIEBwYXJhbSBoZWFkaW5nc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVUb2MoY29udGFpbmVyOiBIVE1MRWxlbWVudCk6IE5nRG9jVG9jSXRlbVtdIHtcblx0Y29uc3QgaGVhZGluZ3M6IE5nRG9jSGVhZGluZ1tdID0gWydoMScsICdoMicsICdoMycsICdoNCcsICdoNScsICdoNiddO1xuXG5cdGNvbnN0IGhlYWRpbmdFbGVtZW50czogSFRNTEhlYWRpbmdFbGVtZW50W10gPSBBcnJheS5mcm9tKFxuXHRcdGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsPEhUTUxIZWFkaW5nRWxlbWVudD4oaGVhZGluZ3Muam9pbignLCAnKSksXG5cdCkuZmlsdGVyKChoZWFkaW5nOiBIVE1MSGVhZGluZ0VsZW1lbnQpID0+IGhlYWRpbmcuaWQpO1xuXG5cdGNvbnN0IGxldmVsczogbnVtYmVyW10gPSBhc0FycmF5KG5ldyBTZXQoaGVhZGluZ0VsZW1lbnRzLm1hcChsZXZlbEZyb21UYWdOYW1lKS5zb3J0KCkpKTtcblxuXHRyZXR1cm4gaGVhZGluZ0VsZW1lbnRzLnJlZHVjZSgobWFwOiBOZ0RvY1RvY0l0ZW1bXSwgaGVhZGluZzogSFRNTEhlYWRpbmdFbGVtZW50KSA9PiB7XG5cdFx0Y29uc3QgaGVhZGluZ0xldmVsOiBudW1iZXIgPSBsZXZlbEZyb21UYWdOYW1lKGhlYWRpbmcpO1xuXHRcdGNvbnN0IGFuY2hvcjogSFRNTEFuY2hvckVsZW1lbnQgfCBudWxsID1cblx0XHRcdGhlYWRpbmcucXVlcnlTZWxlY3RvcjxIVE1MQW5jaG9yRWxlbWVudD4oJ2EubmctZG9jLWhlYWRlci1saW5rJyk7XG5cblx0XHRpZiAoYW5jaG9yKSB7XG5cdFx0XHRtYXAucHVzaCh7XG5cdFx0XHRcdHRpdGxlOiBoZWFkaW5nLnRleHRDb250ZW50Py50cmltKCkgPz8gJycsXG5cdFx0XHRcdGVsZW1lbnQ6IGhlYWRpbmcsXG5cdFx0XHRcdHBhdGg6IGFuY2hvci5wYXRobmFtZSArIGFuY2hvci5oYXNoLFxuXHRcdFx0XHRsZXZlbDogbGV2ZWxzLmluZGV4T2YoaGVhZGluZ0xldmVsKSArIDEsXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbWFwO1xuXHR9LCBbXSk7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkaW5nXG4gKi9cbmZ1bmN0aW9uIGxldmVsRnJvbVRhZ05hbWUoaGVhZGluZzogSFRNTEhlYWRpbmdFbGVtZW50KTogbnVtYmVyIHtcblx0cmV0dXJuIE51bWJlcihoZWFkaW5nLnRhZ05hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bYS16XSovZywgJycpIHx8IDEpO1xufVxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtdG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvaGVscGVycy9nZW5lcmF0ZS10b2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3hEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLFNBQXNCO0lBQ2pELE1BQU0sUUFBUSxHQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFdEUsTUFBTSxlQUFlLEdBQXlCLEtBQUssQ0FBQyxJQUFJLENBQ3ZELFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBcUIsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNuRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQTJCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV0RCxNQUFNLE1BQU0sR0FBYSxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV4RixPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFtQixFQUFFLE9BQTJCLEVBQUUsRUFBRTtRQUNsRixNQUFNLFlBQVksR0FBVyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxNQUFNLE1BQU0sR0FDWCxPQUFPLENBQUMsYUFBYSxDQUFvQixzQkFBc0IsQ0FBQyxDQUFDO1FBRWxFLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWixHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUNSLEtBQUssRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7Z0JBQ3hDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVE7Z0JBQ3JCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO2dCQUNsQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDO2FBQ3ZDLENBQUMsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNaLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNSLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGdCQUFnQixDQUFDLE9BQTJCO0lBQ3BELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdEb2NUb2NJdGVtIH0gZnJvbSAnQG5nLWRvYy9hcHAvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc0FycmF5IH0gZnJvbSAnQG5nLWRvYy9jb3JlL2hlbHBlcnMvYXMtYXJyYXknO1xuaW1wb3J0IHsgTmdEb2NIZWFkaW5nIH0gZnJvbSAnQG5nLWRvYy9jb3JlL3R5cGVzJztcblxuLyoqXG4gKiBHZW5lcmF0ZSB0YWJsZSBvZiBjb250ZW50cywgb25seSBmb3IgaGVhZGluZ3Mgd2l0aCBpZFxuICogQHBhcmFtIGNvbnRhaW5lclxuICogQHBhcmFtIGhlYWRpbmdzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVRvYyhjb250YWluZXI6IEhUTUxFbGVtZW50KTogTmdEb2NUb2NJdGVtW10ge1xuXHRjb25zdCBoZWFkaW5nczogTmdEb2NIZWFkaW5nW10gPSBbJ2gxJywgJ2gyJywgJ2gzJywgJ2g0JywgJ2g1JywgJ2g2J107XG5cblx0Y29uc3QgaGVhZGluZ0VsZW1lbnRzOiBIVE1MSGVhZGluZ0VsZW1lbnRbXSA9IEFycmF5LmZyb20oXG5cdFx0Y29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEhlYWRpbmdFbGVtZW50PihoZWFkaW5ncy5qb2luKCcsICcpKSxcblx0KS5maWx0ZXIoKGhlYWRpbmc6IEhUTUxIZWFkaW5nRWxlbWVudCkgPT4gaGVhZGluZy5pZCk7XG5cblx0Y29uc3QgbGV2ZWxzOiBudW1iZXJbXSA9IGFzQXJyYXkobmV3IFNldChoZWFkaW5nRWxlbWVudHMubWFwKGxldmVsRnJvbVRhZ05hbWUpLnNvcnQoKSkpO1xuXG5cdHJldHVybiBoZWFkaW5nRWxlbWVudHMucmVkdWNlKChtYXA6IE5nRG9jVG9jSXRlbVtdLCBoZWFkaW5nOiBIVE1MSGVhZGluZ0VsZW1lbnQpID0+IHtcblx0XHRjb25zdCBoZWFkaW5nTGV2ZWw6IG51bWJlciA9IGxldmVsRnJvbVRhZ05hbWUoaGVhZGluZyk7XG5cdFx0Y29uc3QgYW5jaG9yOiBIVE1MQW5jaG9yRWxlbWVudCB8IG51bGwgPVxuXHRcdFx0aGVhZGluZy5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYS5uZy1kb2MtaGVhZGVyLWxpbmsnKTtcblxuXHRcdGlmIChhbmNob3IpIHtcblx0XHRcdG1hcC5wdXNoKHtcblx0XHRcdFx0dGl0bGU6IGhlYWRpbmcudGV4dENvbnRlbnQ/LnRyaW0oKSA/PyAnJyxcblx0XHRcdFx0ZWxlbWVudDogaGVhZGluZyxcblx0XHRcdFx0cGF0aDogYW5jaG9yLnBhdGhuYW1lLFxuXHRcdFx0XHRoYXNoOiBhbmNob3IuaGFzaC5yZXBsYWNlKCcjJywgJycpLFxuXHRcdFx0XHRsZXZlbDogbGV2ZWxzLmluZGV4T2YoaGVhZGluZ0xldmVsKSArIDEsXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbWFwO1xuXHR9LCBbXSk7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkaW5nXG4gKi9cbmZ1bmN0aW9uIGxldmVsRnJvbVRhZ05hbWUoaGVhZGluZzogSFRNTEhlYWRpbmdFbGVtZW50KTogbnVtYmVyIHtcblx0cmV0dXJuIE51bWJlcihoZWFkaW5nLnRhZ05hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bYS16XSovZywgJycpIHx8IDEpO1xufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9pbnRlcmZhY2VzL3RvYy1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE5nRG9jVG9jSXRlbSB7XG5cdHRpdGxlOiBzdHJpbmc7XG5cdHBhdGg6IHN0cmluZztcblx0ZWxlbWVudDogSFRNTEhlYWRpbmdFbGVtZW50O1xuXHRsZXZlbDogbnVtYmVyO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9pbnRlcmZhY2VzL3RvYy1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE5nRG9jVG9jSXRlbSB7XG5cdHRpdGxlOiBzdHJpbmc7XG5cdHBhdGg6IHN0cmluZztcblx0aGFzaDogc3RyaW5nO1xuXHRlbGVtZW50OiBIVE1MSGVhZGluZ0VsZW1lbnQ7XG5cdGxldmVsOiBudW1iZXI7XG59XG4iXX0=
@@ -2,7 +2,7 @@ import { __metadata, __decorate } from 'tslib';
2
2
  import { DOCUMENT, NgFor } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
4
  import { ElementRef, inject, Component, ChangeDetectionStrategy, Input, HostBinding, QueryList, signal, NgZone, ChangeDetectorRef, Renderer2, AfterRenderPhase, afterNextRender, ViewChild, ViewChildren } from '@angular/core';
5
- import { Router, Scroll } from '@angular/router';
5
+ import { RouterLink, Router, Scroll } from '@angular/router';
6
6
  import { isPresent } from '@ng-doc/core/helpers/is-present';
7
7
  import { ngDocZoneOptimize, NgDocMediaQueryDirective } from '@ng-doc/ui-kit';
8
8
  import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
@@ -11,18 +11,21 @@ import { filter, map, startWith, debounceTime, distinctUntilChanged } from 'rxjs
11
11
 
12
12
  class NgDocTocElementComponent {
13
13
  constructor() {
14
- this.href = '';
14
+ this.path = '';
15
+ this.hash = '';
15
16
  this.selected = false;
16
17
  this.level = 1;
17
18
  this.elementRef = inject(ElementRef);
18
19
  }
19
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocTocElementComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: NgDocTocElementComponent, isStandalone: true, selector: "li[ng-doc-toc-element]", inputs: { href: "href", selected: "selected", level: "level" }, host: { properties: { "attr.data-ng-doc-selected": "this.selected", "attr.data-ng-doc-level": "this.level" } }, ngImport: i0, template: "<a [href]=\"href\" [style.padding-left]=\"'calc(var(--ng-doc-toc-indent) * ' + level + ')'\">\n\t<ng-content></ng-content>\n</a>\n", styles: [":host{display:flex;margin:0;color:var(--ng-doc-text)}:host[data-ng-doc-level=\"1\"] a{padding-left:var(--ng-doc-base-gutter)}:host[data-ng-doc-selected=true]{color:var(--ng-doc-primary)}:host:hover{cursor:pointer;color:var(--ng-doc-primary)}:host a{font-family:var(--ng-doc-font-family);font-variant:no-contextual;color:var(--ng-doc-text);line-height:var(--ng-doc-line-height);font-size:var(--ng-doc-font-size);font-weight:var(--ng-doc-font-weight);padding:calc(var(--ng-doc-base-gutter) / 2);color:inherit;width:100%;text-decoration:none;word-break:break-word;--ng-doc-font-size: 14px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: NgDocTocElementComponent, isStandalone: true, selector: "li[ng-doc-toc-element]", inputs: { path: "path", hash: "hash", selected: "selected", level: "level" }, host: { properties: { "attr.data-ng-doc-selected": "this.selected", "attr.data-ng-doc-level": "this.level" } }, ngImport: i0, template: "<a\n\t[routerLink]=\"[path]\"\n\t[fragment]=\"hash\"\n\t[style.padding-left]=\"'calc(var(--ng-doc-toc-indent) * ' + level + ')'\">\n\t<ng-content></ng-content>\n</a>\n", styles: [":host{display:flex;margin:0;color:var(--ng-doc-text)}:host[data-ng-doc-level=\"1\"] a{padding-left:var(--ng-doc-base-gutter)}:host[data-ng-doc-selected=true]{color:var(--ng-doc-primary)}:host:hover{cursor:pointer;color:var(--ng-doc-primary)}:host a{font-family:var(--ng-doc-font-family);font-variant:no-contextual;color:var(--ng-doc-text);line-height:var(--ng-doc-line-height);font-size:var(--ng-doc-font-size);font-weight:var(--ng-doc-font-weight);padding:calc(var(--ng-doc-base-gutter) / 2);color:inherit;width:100%;text-decoration:none;word-break:break-word;--ng-doc-font-size: 14px}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
22
  }
22
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocTocElementComponent, decorators: [{
23
24
  type: Component,
24
- args: [{ selector: 'li[ng-doc-toc-element]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<a [href]=\"href\" [style.padding-left]=\"'calc(var(--ng-doc-toc-indent) * ' + level + ')'\">\n\t<ng-content></ng-content>\n</a>\n", styles: [":host{display:flex;margin:0;color:var(--ng-doc-text)}:host[data-ng-doc-level=\"1\"] a{padding-left:var(--ng-doc-base-gutter)}:host[data-ng-doc-selected=true]{color:var(--ng-doc-primary)}:host:hover{cursor:pointer;color:var(--ng-doc-primary)}:host a{font-family:var(--ng-doc-font-family);font-variant:no-contextual;color:var(--ng-doc-text);line-height:var(--ng-doc-line-height);font-size:var(--ng-doc-font-size);font-weight:var(--ng-doc-font-weight);padding:calc(var(--ng-doc-base-gutter) / 2);color:inherit;width:100%;text-decoration:none;word-break:break-word;--ng-doc-font-size: 14px}\n"] }]
25
- }], propDecorators: { href: [{
25
+ args: [{ selector: 'li[ng-doc-toc-element]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [RouterLink], template: "<a\n\t[routerLink]=\"[path]\"\n\t[fragment]=\"hash\"\n\t[style.padding-left]=\"'calc(var(--ng-doc-toc-indent) * ' + level + ')'\">\n\t<ng-content></ng-content>\n</a>\n", styles: [":host{display:flex;margin:0;color:var(--ng-doc-text)}:host[data-ng-doc-level=\"1\"] a{padding-left:var(--ng-doc-base-gutter)}:host[data-ng-doc-selected=true]{color:var(--ng-doc-primary)}:host:hover{cursor:pointer;color:var(--ng-doc-primary)}:host a{font-family:var(--ng-doc-font-family);font-variant:no-contextual;color:var(--ng-doc-text);line-height:var(--ng-doc-line-height);font-size:var(--ng-doc-font-size);font-weight:var(--ng-doc-font-weight);padding:calc(var(--ng-doc-base-gutter) / 2);color:inherit;width:100%;text-decoration:none;word-break:break-word;--ng-doc-font-size: 14px}\n"] }]
26
+ }], propDecorators: { path: [{
27
+ type: Input
28
+ }], hash: [{
26
29
  type: Input
27
30
  }], selected: [{
28
31
  type: Input
@@ -96,7 +99,7 @@ let NgDocTocComponent = class NgDocTocComponent {
96
99
  this.activeItem.set(item);
97
100
  }
98
101
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocTocComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
99
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: NgDocTocComponent, isStandalone: true, selector: "ng-doc-toc", inputs: { tableOfContent: "tableOfContent" }, viewQueries: [{ propertyName: "selection", first: true, predicate: ["selection"], descendants: true, read: ElementRef }, { propertyName: "elements", predicate: NgDocTocElementComponent, descendants: true }], ngImport: i0, template: "<div class=\"ng-doc-toc-wrapper\">\n\t<div class=\"ng-doc-toc-container\">\n\t\t<div class=\"ng-doc-toc-selection\" #selection></div>\n\t\t<ul class=\"ng-doc-toc\">\n\t\t\t@for (item of tableOfContent; track item) {\n\t\t\t<li\n\t\t\t\tng-doc-toc-element\n\t\t\t\t[href]=\"item.path\"\n\t\t\t\t[level]=\"item.level\"\n\t\t\t\t[selected]=\"item === activeItem()\">\n\t\t\t\t{{ item.title }}\n\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t</div>\n</div>\n", styles: [":host .ng-doc-toc-wrapper{position:relative;width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-container{position:fixed;overflow-y:auto;height:calc(100% - var(--ng-doc-navbar-height) - var(--ng-doc-base-gutter) * 5);width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-selection{position:absolute;transform:translate(-50%);width:calc(var(--ng-doc-base-gutter) / 2);border-radius:calc(var(--ng-doc-base-gutter) / 2);background-color:var(--ng-doc-primary);left:calc(var(--ng-doc-toc-margin) + 1px);transition:var(--ng-doc-transition)}:host .ng-doc-toc-wrapper .ng-doc-toc{list-style:none;margin:0 0 0 var(--ng-doc-toc-margin);border-left:1px solid var(--ng-doc-base-3);padding:0 0 0 var(--ng-doc-base-gutter)}@media (max-width: 1200px){:host .ng-doc-toc-wrapper{display:none}}\n"], dependencies: [{ kind: "component", type: NgDocTocElementComponent, selector: "li[ng-doc-toc-element]", inputs: ["href", "selected", "level"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: NgDocTocComponent, isStandalone: true, selector: "ng-doc-toc", inputs: { tableOfContent: "tableOfContent" }, viewQueries: [{ propertyName: "selection", first: true, predicate: ["selection"], descendants: true, read: ElementRef }, { propertyName: "elements", predicate: NgDocTocElementComponent, descendants: true }], ngImport: i0, template: "<div class=\"ng-doc-toc-wrapper\">\n\t<div class=\"ng-doc-toc-container\">\n\t\t<div class=\"ng-doc-toc-selection\" #selection></div>\n\t\t<ul class=\"ng-doc-toc\">\n\t\t\t@for (item of tableOfContent; track item) {\n\t\t\t\t<li\n\t\t\t\t\tng-doc-toc-element\n\t\t\t\t\t[path]=\"item.path\"\n\t\t\t\t\t[hash]=\"item.hash\"\n\t\t\t\t\t[level]=\"item.level\"\n\t\t\t\t\t[selected]=\"item === activeItem()\">\n\t\t\t\t\t{{ item.title }}\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t</div>\n</div>\n", styles: [":host .ng-doc-toc-wrapper{position:relative;width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-container{position:fixed;overflow-y:auto;height:calc(100% - var(--ng-doc-navbar-height) - var(--ng-doc-base-gutter) * 5);width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-selection{position:absolute;transform:translate(-50%);width:calc(var(--ng-doc-base-gutter) / 2);border-radius:calc(var(--ng-doc-base-gutter) / 2);background-color:var(--ng-doc-primary);left:calc(var(--ng-doc-toc-margin) + 1px);transition:var(--ng-doc-transition)}:host .ng-doc-toc-wrapper .ng-doc-toc{list-style:none;margin:0 0 0 var(--ng-doc-toc-margin);border-left:1px solid var(--ng-doc-base-3);padding:0 0 0 var(--ng-doc-base-gutter)}@media (max-width: 1200px){:host .ng-doc-toc-wrapper{display:none}}\n"], dependencies: [{ kind: "component", type: NgDocTocElementComponent, selector: "li[ng-doc-toc-element]", inputs: ["path", "hash", "selected", "level"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
100
103
  };
101
104
  NgDocTocComponent = __decorate([
102
105
  UntilDestroy(),
@@ -104,7 +107,7 @@ NgDocTocComponent = __decorate([
104
107
  ], NgDocTocComponent);
105
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NgDocTocComponent, decorators: [{
106
109
  type: Component,
107
- args: [{ selector: 'ng-doc-toc', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgFor, NgDocTocElementComponent, NgDocMediaQueryDirective], template: "<div class=\"ng-doc-toc-wrapper\">\n\t<div class=\"ng-doc-toc-container\">\n\t\t<div class=\"ng-doc-toc-selection\" #selection></div>\n\t\t<ul class=\"ng-doc-toc\">\n\t\t\t@for (item of tableOfContent; track item) {\n\t\t\t<li\n\t\t\t\tng-doc-toc-element\n\t\t\t\t[href]=\"item.path\"\n\t\t\t\t[level]=\"item.level\"\n\t\t\t\t[selected]=\"item === activeItem()\">\n\t\t\t\t{{ item.title }}\n\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t</div>\n</div>\n", styles: [":host .ng-doc-toc-wrapper{position:relative;width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-container{position:fixed;overflow-y:auto;height:calc(100% - var(--ng-doc-navbar-height) - var(--ng-doc-base-gutter) * 5);width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-selection{position:absolute;transform:translate(-50%);width:calc(var(--ng-doc-base-gutter) / 2);border-radius:calc(var(--ng-doc-base-gutter) / 2);background-color:var(--ng-doc-primary);left:calc(var(--ng-doc-toc-margin) + 1px);transition:var(--ng-doc-transition)}:host .ng-doc-toc-wrapper .ng-doc-toc{list-style:none;margin:0 0 0 var(--ng-doc-toc-margin);border-left:1px solid var(--ng-doc-base-3);padding:0 0 0 var(--ng-doc-base-gutter)}@media (max-width: 1200px){:host .ng-doc-toc-wrapper{display:none}}\n"] }]
110
+ args: [{ selector: 'ng-doc-toc', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgFor, NgDocTocElementComponent, NgDocMediaQueryDirective], template: "<div class=\"ng-doc-toc-wrapper\">\n\t<div class=\"ng-doc-toc-container\">\n\t\t<div class=\"ng-doc-toc-selection\" #selection></div>\n\t\t<ul class=\"ng-doc-toc\">\n\t\t\t@for (item of tableOfContent; track item) {\n\t\t\t\t<li\n\t\t\t\t\tng-doc-toc-element\n\t\t\t\t\t[path]=\"item.path\"\n\t\t\t\t\t[hash]=\"item.hash\"\n\t\t\t\t\t[level]=\"item.level\"\n\t\t\t\t\t[selected]=\"item === activeItem()\">\n\t\t\t\t\t{{ item.title }}\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t</div>\n</div>\n", styles: [":host .ng-doc-toc-wrapper{position:relative;width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-container{position:fixed;overflow-y:auto;height:calc(100% - var(--ng-doc-navbar-height) - var(--ng-doc-base-gutter) * 5);width:var(--ng-doc-toc-width)}:host .ng-doc-toc-wrapper .ng-doc-toc-selection{position:absolute;transform:translate(-50%);width:calc(var(--ng-doc-base-gutter) / 2);border-radius:calc(var(--ng-doc-base-gutter) / 2);background-color:var(--ng-doc-primary);left:calc(var(--ng-doc-toc-margin) + 1px);transition:var(--ng-doc-transition)}:host .ng-doc-toc-wrapper .ng-doc-toc{list-style:none;margin:0 0 0 var(--ng-doc-toc-margin);border-left:1px solid var(--ng-doc-base-3);padding:0 0 0 var(--ng-doc-base-gutter)}@media (max-width: 1200px){:host .ng-doc-toc-wrapper{display:none}}\n"] }]
108
111
  }], ctorParameters: () => [], propDecorators: { tableOfContent: [{
109
112
  type: Input
110
113
  }], selection: [{
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-components-toc.mjs","sources":["../../../../libs/app/components/toc/toc-element/toc-element.component.ts","../../../../libs/app/components/toc/toc-element/toc-element.component.html","../../../../libs/app/components/toc/toc.component.ts","../../../../libs/app/components/toc/toc.component.html","../../../../libs/app/components/toc/ng-doc-app-components-toc.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tHostBinding,\n\tinject,\n\tInput,\n} from '@angular/core';\n\n@Component({\n\tselector: 'li[ng-doc-toc-element]',\n\ttemplateUrl: './toc-element.component.html',\n\tstyleUrls: ['./toc-element.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n})\nexport class NgDocTocElementComponent {\n\t@Input()\n\thref: string = '';\n\n\t@Input()\n\t@HostBinding('attr.data-ng-doc-selected')\n\tselected: boolean = false;\n\n\t@Input()\n\t@HostBinding('attr.data-ng-doc-level')\n\tlevel: number = 1;\n\n\treadonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n}\n","<a [href]=\"href\" [style.padding-left]=\"'calc(var(--ng-doc-toc-indent) * ' + level + ')'\">\n\t<ng-content></ng-content>\n</a>\n","import { DOCUMENT, NgFor } from '@angular/common';\nimport {\n\tafterNextRender,\n\tAfterRenderPhase,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tinject,\n\tInput,\n\tNgZone,\n\tOnInit,\n\tQueryList,\n\tRenderer2,\n\tsignal,\n\tViewChild,\n\tViewChildren,\n\tWritableSignal,\n} from '@angular/core';\nimport { Event as REvent, Router, Scroll } from '@angular/router';\nimport { NgDocPageToc, NgDocTocItem } from '@ng-doc/app/interfaces';\nimport { isPresent } from '@ng-doc/core/helpers/is-present';\nimport { NgDocMediaQueryDirective, ngDocZoneOptimize } from '@ng-doc/ui-kit';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { fromEvent, merge, Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, map, startWith } from 'rxjs/operators';\n\nimport { NgDocTocElementComponent } from './toc-element/toc-element.component';\n\n@Component({\n\tselector: 'ng-doc-toc',\n\ttemplateUrl: './toc.component.html',\n\tstyleUrls: ['./toc.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [NgFor, NgDocTocElementComponent, NgDocMediaQueryDirective],\n})\n@UntilDestroy()\nexport class NgDocTocComponent implements NgDocPageToc, OnInit {\n\t@Input()\n\ttableOfContent: NgDocTocItem[] = [];\n\n\t@ViewChild('selection', { read: ElementRef })\n\tselection?: ElementRef<HTMLElement>;\n\n\t@ViewChildren(NgDocTocElementComponent)\n\telements: QueryList<NgDocTocElementComponent> = new QueryList<NgDocTocElementComponent>();\n\n\tactiveItem: WritableSignal<NgDocTocItem | undefined> = signal(undefined);\n\n\tprotected readonly document: Document = inject(DOCUMENT);\n\tprotected readonly ngZone: NgZone = inject(NgZone);\n\tprotected readonly changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n\tprotected readonly renderer: Renderer2 = inject(Renderer2);\n\tprotected readonly router: Router = inject(Router);\n\n\tconstructor() {\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tconst scrollSelection: Observable<NgDocTocItem> = fromEvent(this.document, 'scroll').pipe(\n\t\t\t\t\tfilter(() => !!this.tableOfContent.length),\n\t\t\t\t\tmap((event: Event) => (event.target as Document).scrollingElement as HTMLElement),\n\t\t\t\t\tstartWith(this.document.scrollingElement as HTMLElement),\n\t\t\t\t\tmap((target: HTMLElement) => {\n\t\t\t\t\t\tconst percentage: number =\n\t\t\t\t\t\t\t(target.scrollTop * 100) / (target.scrollHeight - target.offsetHeight);\n\t\t\t\t\t\tconst selectionLine: number =\n\t\t\t\t\t\t\ttarget.scrollTop + (target.offsetHeight * percentage) / 100;\n\n\t\t\t\t\t\tif (!this.tableOfContent.length) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn this.tableOfContent.reduce((pTarget: NgDocTocItem, cTarget: NgDocTocItem) => {\n\t\t\t\t\t\t\tconst pTop: number = pTarget.element.getBoundingClientRect().top + target.scrollTop;\n\t\t\t\t\t\t\tconst cTop: number = cTarget.element.getBoundingClientRect().top + target.scrollTop;\n\n\t\t\t\t\t\t\treturn Math.abs(cTop - selectionLine) < Math.abs(pTop - selectionLine)\n\t\t\t\t\t\t\t\t? cTarget\n\t\t\t\t\t\t\t\t: pTarget;\n\t\t\t\t\t\t});\n\t\t\t\t\t}),\n\t\t\t\t\tfilter(isPresent),\n\t\t\t\t);\n\n\t\t\t\tconst routerSelection: Observable<NgDocTocItem> = this.router.events.pipe(\n\t\t\t\t\tmap((event: REvent) => {\n\t\t\t\t\t\tif (event instanceof Scroll) {\n\t\t\t\t\t\t\tconst item: NgDocTocItem | undefined = this.tableOfContent.find(\n\t\t\t\t\t\t\t\t(item: NgDocTocItem) => item.path.includes(event.routerEvent.url),\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif (item) {\n\t\t\t\t\t\t\t\treturn item;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}),\n\t\t\t\t\tfilter(isPresent),\n\t\t\t\t\tdebounceTime(20),\n\t\t\t\t);\n\n\t\t\t\tconst elementsChanges = this.elements.changes.pipe(\n\t\t\t\t\tmap(() => this.activeItem()),\n\t\t\t\t\tfilter(isPresent),\n\t\t\t\t);\n\n\t\t\t\tmerge(merge(scrollSelection, routerSelection).pipe(distinctUntilChanged()), elementsChanges)\n\t\t\t\t\t.pipe(debounceTime(0), ngDocZoneOptimize(this.ngZone), untilDestroyed(this))\n\t\t\t\t\t.subscribe(this.select.bind(this));\n\t\t\t},\n\t\t\t{ phase: AfterRenderPhase.Write },\n\t\t);\n\t}\n\n\tngOnInit(): void {\n\t\tthis.activeItem.set(this.tableOfContent[0]);\n\t}\n\n\t/**\n\t * Selects the item in the table of content.\n\t * @param item - Item to select.\n\t */\n\tprotected select(item: NgDocTocItem): void {\n\t\tconst index: number = this.tableOfContent.indexOf(item);\n\n\t\tif (this.selection) {\n\t\t\tconst element: HTMLElement | undefined =\n\t\t\t\tthis.elements.toArray()[index]?.elementRef.nativeElement;\n\n\t\t\tif (element) {\n\t\t\t\tthis.renderer.setStyle(this.selection.nativeElement, 'top', `${element.offsetTop}px`);\n\t\t\t\tthis.renderer.setStyle(this.selection.nativeElement, 'height', `${element.offsetHeight}px`);\n\n\t\t\t\telement.scrollIntoView({ block: 'nearest' });\n\t\t\t}\n\t\t}\n\n\t\tthis.activeItem.set(item);\n\t}\n}\n","<div class=\"ng-doc-toc-wrapper\">\n\t<div class=\"ng-doc-toc-container\">\n\t\t<div class=\"ng-doc-toc-selection\" #selection></div>\n\t\t<ul class=\"ng-doc-toc\">\n\t\t\t@for (item of tableOfContent; track item) {\n\t\t\t<li\n\t\t\t\tng-doc-toc-element\n\t\t\t\t[href]=\"item.path\"\n\t\t\t\t[level]=\"item.level\"\n\t\t\t\t[selected]=\"item === activeItem()\">\n\t\t\t\t{{ item.title }}\n\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t</div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;MAgBa,wBAAwB,CAAA;AAPrC,IAAA,WAAA,GAAA;QASC,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAIlB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAI1B,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;AAET,QAAA,IAAA,CAAA,UAAU,GAA4B,MAAM,CAAC,UAAU,CAAC,CAAC;AAClE,KAAA;8GAbY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,kQChBrC,oIAGA,EAAA,MAAA,EAAA,CAAA,8kBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDaa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAGjB,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,oIAAA,EAAA,MAAA,EAAA,CAAA,8kBAAA,CAAA,EAAA,CAAA;8BAIhB,IAAI,EAAA,CAAA;sBADH,KAAK;gBAKN,QAAQ,EAAA,CAAA;sBAFP,KAAK;;sBACL,WAAW;uBAAC,2BAA2B,CAAA;gBAKxC,KAAK,EAAA,CAAA;sBAFJ,KAAK;;sBACL,WAAW;uBAAC,wBAAwB,CAAA;;;AEazB,IAAA,iBAAiB,GAAvB,MAAM,iBAAiB,CAAA;AAkB7B,IAAA,WAAA,GAAA;QAhBA,IAAc,CAAA,cAAA,GAAmB,EAAE,CAAC;AAMpC,QAAA,IAAA,CAAA,QAAQ,GAAwC,IAAI,SAAS,EAA4B,CAAC;AAE1F,QAAA,IAAA,CAAA,UAAU,GAA6C,MAAM,CAAC,SAAS,CAAC,CAAC;AAEtD,QAAA,IAAA,CAAA,QAAQ,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,iBAAiB,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACjE,QAAA,IAAA,CAAA,QAAQ,GAAc,MAAM,CAAC,SAAS,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC;QAGlD,eAAe,CACd,MAAK;YACJ,MAAM,eAAe,GAA6B,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CACxF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAC1C,GAAG,CAAC,CAAC,KAAY,KAAM,KAAK,CAAC,MAAmB,CAAC,gBAA+B,CAAC,EACjF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAA+B,CAAC,EACxD,GAAG,CAAC,CAAC,MAAmB,KAAI;AAC3B,gBAAA,MAAM,UAAU,GACf,CAAC,MAAM,CAAC,SAAS,GAAG,GAAG,KAAK,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACxE,gBAAA,MAAM,aAAa,GAClB,MAAM,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,UAAU,IAAI,GAAG,CAAC;AAE7D,gBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AAChC,oBAAA,OAAO,IAAI,CAAC;iBACZ;gBAED,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAqB,EAAE,OAAqB,KAAI;AAClF,oBAAA,MAAM,IAAI,GAAW,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AACpF,oBAAA,MAAM,IAAI,GAAW,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAEpF,oBAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC;AACrE,0BAAE,OAAO;0BACP,OAAO,CAAC;AACZ,iBAAC,CAAC,CAAC;AACJ,aAAC,CAAC,EACF,MAAM,CAAC,SAAS,CAAC,CACjB,CAAC;AAEF,YAAA,MAAM,eAAe,GAA6B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACxE,GAAG,CAAC,CAAC,KAAa,KAAI;AACrB,gBAAA,IAAI,KAAK,YAAY,MAAM,EAAE;oBAC5B,MAAM,IAAI,GAA6B,IAAI,CAAC,cAAc,CAAC,IAAI,CAC9D,CAAC,IAAkB,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CACjE,CAAC;oBAEF,IAAI,IAAI,EAAE;AACT,wBAAA,OAAO,IAAI,CAAC;qBACZ;iBACD;AAED,gBAAA,OAAO,IAAI,CAAC;AACb,aAAC,CAAC,EACF,MAAM,CAAC,SAAS,CAAC,EACjB,YAAY,CAAC,EAAE,CAAC,CAChB,CAAC;YAEF,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CACjD,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,EAC5B,MAAM,CAAC,SAAS,CAAC,CACjB,CAAC;AAEF,YAAA,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAAE,eAAe,CAAC;AAC1F,iBAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;iBAC3E,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACpC,EACD,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,CACjC,CAAC;KACF;IAED,QAAQ,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5C;AAED;;;AAGG;AACO,IAAA,MAAM,CAAC,IAAkB,EAAA;QAClC,MAAM,KAAK,GAAW,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAExD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,MAAM,OAAO,GACZ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC;YAE1D,IAAI,OAAO,EAAE;AACZ,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,CAAG,EAAA,OAAO,CAAC,SAAS,CAAA,EAAA,CAAI,CAAC,CAAC;AACtF,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAG,EAAA,OAAO,CAAC,YAAY,CAAA,EAAA,CAAI,CAAC,CAAC;gBAE5F,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;aAC7C;SACD;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAC1B;8GAtGW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,uMAIG,UAAU,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAG5B,wBAAwB,EC7CvC,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,4bAgBA,k2BDmBkB,wBAAwB,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;AAG7B,iBAAiB,GAAA,UAAA,CAAA;AAD7B,IAAA,YAAY,EAAE;;AACF,CAAA,EAAA,iBAAiB,CAuG7B,CAAA;2FAvGY,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAGL,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,KAAK,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,EAAA,QAAA,EAAA,4bAAA,EAAA,MAAA,EAAA,CAAA,0yBAAA,CAAA,EAAA,CAAA;wDAKpE,cAAc,EAAA,CAAA;sBADb,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBAI5C,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,wBAAwB,CAAA;;;AE7CvC;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-doc-app-components-toc.mjs","sources":["../../../../libs/app/components/toc/toc-element/toc-element.component.ts","../../../../libs/app/components/toc/toc-element/toc-element.component.html","../../../../libs/app/components/toc/toc.component.ts","../../../../libs/app/components/toc/toc.component.html","../../../../libs/app/components/toc/ng-doc-app-components-toc.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tHostBinding,\n\tinject,\n\tInput,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n\tselector: 'li[ng-doc-toc-element]',\n\ttemplateUrl: './toc-element.component.html',\n\tstyleUrls: ['./toc-element.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [RouterLink],\n})\nexport class NgDocTocElementComponent {\n\t@Input()\n\tpath: string = '';\n\n\t@Input()\n\thash: string = '';\n\n\t@Input()\n\t@HostBinding('attr.data-ng-doc-selected')\n\tselected: boolean = false;\n\n\t@Input()\n\t@HostBinding('attr.data-ng-doc-level')\n\tlevel: number = 1;\n\n\treadonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n}\n","<a\n\t[routerLink]=\"[path]\"\n\t[fragment]=\"hash\"\n\t[style.padding-left]=\"'calc(var(--ng-doc-toc-indent) * ' + level + ')'\">\n\t<ng-content></ng-content>\n</a>\n","import { DOCUMENT, NgFor } from '@angular/common';\nimport {\n\tafterNextRender,\n\tAfterRenderPhase,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tinject,\n\tInput,\n\tNgZone,\n\tOnInit,\n\tQueryList,\n\tRenderer2,\n\tsignal,\n\tViewChild,\n\tViewChildren,\n\tWritableSignal,\n} from '@angular/core';\nimport { Event as REvent, Router, Scroll } from '@angular/router';\nimport { NgDocPageToc, NgDocTocItem } from '@ng-doc/app/interfaces';\nimport { isPresent } from '@ng-doc/core/helpers/is-present';\nimport { NgDocMediaQueryDirective, ngDocZoneOptimize } from '@ng-doc/ui-kit';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { fromEvent, merge, Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, map, startWith } from 'rxjs/operators';\n\nimport { NgDocTocElementComponent } from './toc-element/toc-element.component';\n\n@Component({\n\tselector: 'ng-doc-toc',\n\ttemplateUrl: './toc.component.html',\n\tstyleUrls: ['./toc.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [NgFor, NgDocTocElementComponent, NgDocMediaQueryDirective],\n})\n@UntilDestroy()\nexport class NgDocTocComponent implements NgDocPageToc, OnInit {\n\t@Input()\n\ttableOfContent: NgDocTocItem[] = [];\n\n\t@ViewChild('selection', { read: ElementRef })\n\tselection?: ElementRef<HTMLElement>;\n\n\t@ViewChildren(NgDocTocElementComponent)\n\telements: QueryList<NgDocTocElementComponent> = new QueryList<NgDocTocElementComponent>();\n\n\tactiveItem: WritableSignal<NgDocTocItem | undefined> = signal(undefined);\n\n\tprotected readonly document: Document = inject(DOCUMENT);\n\tprotected readonly ngZone: NgZone = inject(NgZone);\n\tprotected readonly changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n\tprotected readonly renderer: Renderer2 = inject(Renderer2);\n\tprotected readonly router: Router = inject(Router);\n\n\tconstructor() {\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tconst scrollSelection: Observable<NgDocTocItem> = fromEvent(this.document, 'scroll').pipe(\n\t\t\t\t\tfilter(() => !!this.tableOfContent.length),\n\t\t\t\t\tmap((event: Event) => (event.target as Document).scrollingElement as HTMLElement),\n\t\t\t\t\tstartWith(this.document.scrollingElement as HTMLElement),\n\t\t\t\t\tmap((target: HTMLElement) => {\n\t\t\t\t\t\tconst percentage: number =\n\t\t\t\t\t\t\t(target.scrollTop * 100) / (target.scrollHeight - target.offsetHeight);\n\t\t\t\t\t\tconst selectionLine: number =\n\t\t\t\t\t\t\ttarget.scrollTop + (target.offsetHeight * percentage) / 100;\n\n\t\t\t\t\t\tif (!this.tableOfContent.length) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn this.tableOfContent.reduce((pTarget: NgDocTocItem, cTarget: NgDocTocItem) => {\n\t\t\t\t\t\t\tconst pTop: number = pTarget.element.getBoundingClientRect().top + target.scrollTop;\n\t\t\t\t\t\t\tconst cTop: number = cTarget.element.getBoundingClientRect().top + target.scrollTop;\n\n\t\t\t\t\t\t\treturn Math.abs(cTop - selectionLine) < Math.abs(pTop - selectionLine)\n\t\t\t\t\t\t\t\t? cTarget\n\t\t\t\t\t\t\t\t: pTarget;\n\t\t\t\t\t\t});\n\t\t\t\t\t}),\n\t\t\t\t\tfilter(isPresent),\n\t\t\t\t);\n\n\t\t\t\tconst routerSelection: Observable<NgDocTocItem> = this.router.events.pipe(\n\t\t\t\t\tmap((event: REvent) => {\n\t\t\t\t\t\tif (event instanceof Scroll) {\n\t\t\t\t\t\t\tconst item: NgDocTocItem | undefined = this.tableOfContent.find(\n\t\t\t\t\t\t\t\t(item: NgDocTocItem) => item.path.includes(event.routerEvent.url),\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif (item) {\n\t\t\t\t\t\t\t\treturn item;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}),\n\t\t\t\t\tfilter(isPresent),\n\t\t\t\t\tdebounceTime(20),\n\t\t\t\t);\n\n\t\t\t\tconst elementsChanges = this.elements.changes.pipe(\n\t\t\t\t\tmap(() => this.activeItem()),\n\t\t\t\t\tfilter(isPresent),\n\t\t\t\t);\n\n\t\t\t\tmerge(merge(scrollSelection, routerSelection).pipe(distinctUntilChanged()), elementsChanges)\n\t\t\t\t\t.pipe(debounceTime(0), ngDocZoneOptimize(this.ngZone), untilDestroyed(this))\n\t\t\t\t\t.subscribe(this.select.bind(this));\n\t\t\t},\n\t\t\t{ phase: AfterRenderPhase.Write },\n\t\t);\n\t}\n\n\tngOnInit(): void {\n\t\tthis.activeItem.set(this.tableOfContent[0]);\n\t}\n\n\t/**\n\t * Selects the item in the table of content.\n\t * @param item - Item to select.\n\t */\n\tprotected select(item: NgDocTocItem): void {\n\t\tconst index: number = this.tableOfContent.indexOf(item);\n\n\t\tif (this.selection) {\n\t\t\tconst element: HTMLElement | undefined =\n\t\t\t\tthis.elements.toArray()[index]?.elementRef.nativeElement;\n\n\t\t\tif (element) {\n\t\t\t\tthis.renderer.setStyle(this.selection.nativeElement, 'top', `${element.offsetTop}px`);\n\t\t\t\tthis.renderer.setStyle(this.selection.nativeElement, 'height', `${element.offsetHeight}px`);\n\n\t\t\t\telement.scrollIntoView({ block: 'nearest' });\n\t\t\t}\n\t\t}\n\n\t\tthis.activeItem.set(item);\n\t}\n}\n","<div class=\"ng-doc-toc-wrapper\">\n\t<div class=\"ng-doc-toc-container\">\n\t\t<div class=\"ng-doc-toc-selection\" #selection></div>\n\t\t<ul class=\"ng-doc-toc\">\n\t\t\t@for (item of tableOfContent; track item) {\n\t\t\t\t<li\n\t\t\t\t\tng-doc-toc-element\n\t\t\t\t\t[path]=\"item.path\"\n\t\t\t\t\t[hash]=\"item.hash\"\n\t\t\t\t\t[level]=\"item.level\"\n\t\t\t\t\t[selected]=\"item === activeItem()\">\n\t\t\t\t\t{{ item.title }}\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t</div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -64,7 +64,8 @@ function generateToc(container) {
64
64
  map.push({
65
65
  title: heading.textContent?.trim() ?? '',
66
66
  element: heading,
67
- path: anchor.pathname + anchor.hash,
67
+ path: anchor.pathname,
68
+ hash: anchor.hash.replace('#', ''),
68
69
  level: levels.indexOf(headingLevel) + 1,
69
70
  });
70
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ng-doc-app-helpers.mjs","sources":["../../../../libs/app/helpers/as-boolean.ts","../../../../libs/app/helpers/create-component.ts","../../../../libs/app/helpers/format-html.ts","../../../../libs/app/helpers/generate-toc.ts","../../../../libs/app/helpers/is-dark-os-theme.ts","../../../../libs/app/helpers/is-external-link.ts","../../../../libs/app/helpers/is-playground-property.ts","../../../../libs/app/helpers/ng-doc-app-helpers.ts"],"sourcesContent":["/**\n *\n * @param value\n */\nexport function asBoolean(value: unknown): boolean {\n\tif (typeof value === 'string') {\n\t\treturn value.toLowerCase() === 'true'\n\t\t\t? true\n\t\t\t: value.toLowerCase() === 'false'\n\t\t\t? false\n\t\t\t: !!value;\n\t}\n\treturn !!value;\n}\n","import { Type, ViewContainerRef } from '@angular/core';\n\n/**\n *\n * @param viewContainer\n * @param component\n * @param inputs\n */\nexport function createComponent<T>(\n\tviewContainer: ViewContainerRef,\n\tcomponent: Type<T>,\n\tinputs?: object,\n): void {\n\tviewContainer.clear();\n\n\tconst componentRef = viewContainer.createComponent(component);\n\n\tif (inputs) {\n\t\tObject.entries(inputs).forEach(([key, value]) => {\n\t\t\tcomponentRef.setInput(key, value);\n\t\t});\n\t}\n}\n","/**\n *\n * @param html\n */\nexport async function formatHtml(html: string): Promise<string> {\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\tconst formatter = await import('esthetic');\n\n\treturn formatter.default.html(html.trim(), {\n\t\twrap: 50,\n\t\tmarkup: {\n\t\t\tforceIndent: true,\n\t\t},\n\t});\n}\n","import { NgDocTocItem } from '@ng-doc/app/interfaces';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { NgDocHeading } from '@ng-doc/core/types';\n\n/**\n * Generate table of contents, only for headings with id\n * @param container\n * @param headings\n */\nexport function generateToc(container: HTMLElement): NgDocTocItem[] {\n\tconst headings: NgDocHeading[] = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n\n\tconst headingElements: HTMLHeadingElement[] = Array.from(\n\t\tcontainer.querySelectorAll<HTMLHeadingElement>(headings.join(', ')),\n\t).filter((heading: HTMLHeadingElement) => heading.id);\n\n\tconst levels: number[] = asArray(new Set(headingElements.map(levelFromTagName).sort()));\n\n\treturn headingElements.reduce((map: NgDocTocItem[], heading: HTMLHeadingElement) => {\n\t\tconst headingLevel: number = levelFromTagName(heading);\n\t\tconst anchor: HTMLAnchorElement | null =\n\t\t\theading.querySelector<HTMLAnchorElement>('a.ng-doc-header-link');\n\n\t\tif (anchor) {\n\t\t\tmap.push({\n\t\t\t\ttitle: heading.textContent?.trim() ?? '',\n\t\t\t\telement: heading,\n\t\t\t\tpath: anchor.pathname + anchor.hash,\n\t\t\t\tlevel: levels.indexOf(headingLevel) + 1,\n\t\t\t});\n\t\t}\n\n\t\treturn map;\n\t}, []);\n}\n\n/**\n *\n * @param heading\n */\nfunction levelFromTagName(heading: HTMLHeadingElement): number {\n\treturn Number(heading.tagName.toLowerCase().replace(/[a-z]*/g, '') || 1);\n}\n","/**\n * Check if the OS theme is dark\n */\nexport function isDarkOsTheme(): boolean {\n\treturn window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n","/**\n *\n * @param url\n */\nexport function isExternalLink(url: string): boolean {\n\tconst anchorElement: HTMLAnchorElement = document.createElement('a');\n\n\tanchorElement.href = url;\n\n\treturn anchorElement.host !== window.location.host;\n}\n","import {objectKeys} from '@ng-doc/core/helpers/object-keys';\nimport {NgDocPlaygroundProperty} from '@ng-doc/core/interfaces';\n\n/**\n *\n * @param obj\n */\nexport function isPlaygroundProperty(obj: Record<string, any>): obj is NgDocPlaygroundProperty {\n\treturn objectKeys(obj).includes('type');\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-doc-app-helpers.mjs","sources":["../../../../libs/app/helpers/as-boolean.ts","../../../../libs/app/helpers/create-component.ts","../../../../libs/app/helpers/format-html.ts","../../../../libs/app/helpers/generate-toc.ts","../../../../libs/app/helpers/is-dark-os-theme.ts","../../../../libs/app/helpers/is-external-link.ts","../../../../libs/app/helpers/is-playground-property.ts","../../../../libs/app/helpers/ng-doc-app-helpers.ts"],"sourcesContent":["/**\n *\n * @param value\n */\nexport function asBoolean(value: unknown): boolean {\n\tif (typeof value === 'string') {\n\t\treturn value.toLowerCase() === 'true'\n\t\t\t? true\n\t\t\t: value.toLowerCase() === 'false'\n\t\t\t? false\n\t\t\t: !!value;\n\t}\n\treturn !!value;\n}\n","import { Type, ViewContainerRef } from '@angular/core';\n\n/**\n *\n * @param viewContainer\n * @param component\n * @param inputs\n */\nexport function createComponent<T>(\n\tviewContainer: ViewContainerRef,\n\tcomponent: Type<T>,\n\tinputs?: object,\n): void {\n\tviewContainer.clear();\n\n\tconst componentRef = viewContainer.createComponent(component);\n\n\tif (inputs) {\n\t\tObject.entries(inputs).forEach(([key, value]) => {\n\t\t\tcomponentRef.setInput(key, value);\n\t\t});\n\t}\n}\n","/**\n *\n * @param html\n */\nexport async function formatHtml(html: string): Promise<string> {\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore\n\tconst formatter = await import('esthetic');\n\n\treturn formatter.default.html(html.trim(), {\n\t\twrap: 50,\n\t\tmarkup: {\n\t\t\tforceIndent: true,\n\t\t},\n\t});\n}\n","import { NgDocTocItem } from '@ng-doc/app/interfaces';\nimport { asArray } from '@ng-doc/core/helpers/as-array';\nimport { NgDocHeading } from '@ng-doc/core/types';\n\n/**\n * Generate table of contents, only for headings with id\n * @param container\n * @param headings\n */\nexport function generateToc(container: HTMLElement): NgDocTocItem[] {\n\tconst headings: NgDocHeading[] = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n\n\tconst headingElements: HTMLHeadingElement[] = Array.from(\n\t\tcontainer.querySelectorAll<HTMLHeadingElement>(headings.join(', ')),\n\t).filter((heading: HTMLHeadingElement) => heading.id);\n\n\tconst levels: number[] = asArray(new Set(headingElements.map(levelFromTagName).sort()));\n\n\treturn headingElements.reduce((map: NgDocTocItem[], heading: HTMLHeadingElement) => {\n\t\tconst headingLevel: number = levelFromTagName(heading);\n\t\tconst anchor: HTMLAnchorElement | null =\n\t\t\theading.querySelector<HTMLAnchorElement>('a.ng-doc-header-link');\n\n\t\tif (anchor) {\n\t\t\tmap.push({\n\t\t\t\ttitle: heading.textContent?.trim() ?? '',\n\t\t\t\telement: heading,\n\t\t\t\tpath: anchor.pathname,\n\t\t\t\thash: anchor.hash.replace('#', ''),\n\t\t\t\tlevel: levels.indexOf(headingLevel) + 1,\n\t\t\t});\n\t\t}\n\n\t\treturn map;\n\t}, []);\n}\n\n/**\n *\n * @param heading\n */\nfunction levelFromTagName(heading: HTMLHeadingElement): number {\n\treturn Number(heading.tagName.toLowerCase().replace(/[a-z]*/g, '') || 1);\n}\n","/**\n * Check if the OS theme is dark\n */\nexport function isDarkOsTheme(): boolean {\n\treturn window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n","/**\n *\n * @param url\n */\nexport function isExternalLink(url: string): boolean {\n\tconst anchorElement: HTMLAnchorElement = document.createElement('a');\n\n\tanchorElement.href = url;\n\n\treturn anchorElement.host !== window.location.host;\n}\n","import {objectKeys} from '@ng-doc/core/helpers/object-keys';\nimport {NgDocPlaygroundProperty} from '@ng-doc/core/interfaces';\n\n/**\n *\n * @param obj\n */\nexport function isPlaygroundProperty(obj: Record<string, any>): obj is NgDocPlaygroundProperty {\n\treturn objectKeys(obj).includes('type');\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export interface NgDocTocItem {
2
2
  title: string;
3
3
  path: string;
4
+ hash: string;
4
5
  element: HTMLHeadingElement;
5
6
  level: number;
6
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-doc/app",
3
- "version": "17.6.7",
3
+ "version": "17.6.8",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=17.0.0",
6
6
  "@angular/core": ">=17.0.0",
@@ -12,8 +12,8 @@
12
12
  },
13
13
  "dependencies": {
14
14
  "tslib": "^2.6.2",
15
- "@ng-doc/core": "17.6.7",
16
- "@ng-doc/ui-kit": "17.6.7",
15
+ "@ng-doc/core": "17.6.8",
16
+ "@ng-doc/ui-kit": "17.6.8",
17
17
  "@orama/plugin-match-highlight": "1.0.2",
18
18
  "@orama/stemmers": "1.0.2",
19
19
  "highlight.js": "11.5.1"