@ng-doc/app 17.2.1 → 17.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/page/page.component.d.ts +1 -0
- package/esm2022/components/code/code.component.mjs +1 -1
- package/esm2022/components/page/page.component.mjs +5 -3
- package/esm2022/components/toc/toc.component.mjs +2 -2
- package/esm2022/helpers/create-component.mjs +2 -1
- package/esm2022/processors/page-processor/page-processor.directive.mjs +12 -4
- package/fesm2022/ng-doc-app-components-code.mjs +1 -1
- package/fesm2022/ng-doc-app-components-code.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-page.mjs +4 -2
- package/fesm2022/ng-doc-app-components-page.mjs.map +1 -1
- package/fesm2022/ng-doc-app-components-toc.mjs +1 -1
- package/fesm2022/ng-doc-app-components-toc.mjs.map +1 -1
- package/fesm2022/ng-doc-app-helpers.mjs +1 -0
- package/fesm2022/ng-doc-app-helpers.mjs.map +1 -1
- package/fesm2022/ng-doc-app-processors-page-processor.mjs +11 -3
- package/fesm2022/ng-doc-app-processors-page-processor.mjs.map +1 -1
- package/package.json +3 -3
- package/processors/page-processor/page-processor.directive.d.ts +5 -3
|
@@ -16,6 +16,7 @@ export declare class NgDocPageComponent implements OnInit {
|
|
|
16
16
|
protected router: Router;
|
|
17
17
|
private breadcrumbs;
|
|
18
18
|
ngOnInit(): void;
|
|
19
|
+
createToc(): void;
|
|
19
20
|
private navigationInputs;
|
|
20
21
|
private get url();
|
|
21
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocPageComponent, never>;
|
|
@@ -24,7 +24,7 @@ export class NgDocCodeComponent {
|
|
|
24
24
|
this.clipboard.copy(this.codeElement?.textContent ?? '');
|
|
25
25
|
}
|
|
26
26
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: NgDocCodeComponent, deps: [{ token: i0.ElementRef }, { token: i1.Clipboard }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.7", type: NgDocCodeComponent, isStandalone: true, selector: "ng-doc-code", inputs: { html: "html", copyButton: "copyButton", name: "name", icon: "icon", lineNumbers: "lineNumbers" }, host: { properties: { "attr.data-ng-doc-has-header": "this.hasHeader" } }, ngImport: i0, template: "<div class=\"ng-doc-code-header\" *ngIf=\"hasHeader\">\n\t<span class=\"ng-doc-code-file-name\" ng-doc-text>\n\t\t<ng-doc-icon [customIcon]=\"icon\" *ngIf=\"icon\"></ng-doc-icon>\n\t\t{{ name }}\n\t</span>\n</div>\n<div class=\"ng-doc-code-body\">\n\t@if (html) {\n\t<div class=\"ng-doc-code-wrapper\" [ngDocPageProcessor]=\"html\"></div>\n\t} @else {\n\t<div class=\"ng-doc-code-wrapper\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t}\n\n\t<button\n\t\tclass=\"ng-doc-copy-button\"\n\t\tng-doc-button-icon\n\t\t*ngIf=\"copyButton\"\n\t\t(click)=\"copyCode(); tooltipText = 'Copied!'\"\n\t\t[ngDocTooltip]=\"tooltipContent\"\n\t\t(mouseenter)=\"tooltipText = 'Copy to clipboard'\">\n\t\t<ng-template #tooltipContent>\n\t\t\t<ng-doc-smooth-resize [trigger]=\"tooltipText\">\n\t\t\t\t{{ tooltipText }}\n\t\t\t</ng-doc-smooth-resize>\n\t\t</ng-template>\n\t\t<ng-doc-icon icon=\"copy\"></ng-doc-icon>\n\t</button>\n</div>\n", styles: [":host{position:relative;display:block;margin:var(--ng-doc-code-margin)}:host:hover .ng-doc-copy-button{opacity:1}:host[data-ng-doc-has-header=true]{--ng-doc-code-border-radius: 0 0 var(--ng-doc-base-gutter) var(--ng-doc-base-gutter);--ng-doc-code-shadow: none}:host .ng-doc-code-wrapper{--ng-doc-code-margin: 0;--ng-doc-code-border: none}:host .ng-doc-code-header{display:flex;align-items:center;padding:var(--ng-doc-base-gutter) calc(var(--ng-doc-base-gutter) * 2);background:var(--ng-doc-code-header-background, var(--ng-doc-base-2));border-radius:var(--ng-doc-base-gutter) var(--ng-doc-base-gutter) 0 0;border-top:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color));border-left:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color));border-right:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color))}:host .ng-doc-code-header .ng-doc-code-file-name{--ng-doc-text: var(--ng-doc-code-header-color);--ng-doc-font-weight: 600;--ng-doc-font-size: 13px}:host .ng-doc-code-header .ng-doc-code-file-name ng-doc-icon{margin-right:calc(var(--ng-doc-base-gutter) / 2)}:host .ng-doc-code-body{position:relative;height:100%;border-radius:var(--ng-doc-code-border-radius, var(--ng-doc-base-gutter));border:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color))}:host .ng-doc-copy-button{position:absolute;top:var(--ng-doc-base-gutter);right:var(--ng-doc-base-gutter);transition:var(--ng-doc-transition);opacity:0;--ng-doc-icon-color: var(--ng-doc-text-muted);--ng-doc-button-background: transparent;--ng-doc-button-hover-background: var( --ng-doc-code-copy-button-hover-background, var(--ng-doc-base-2) );--ng-doc-button-active-background: var( --ng-doc-code-copy-button-active-background, var(--ng-doc-base-3) )}:host .ng-doc-code-wrapper{height:100%}:host ::ng-deep pre{display:flex;margin:var(--ng-doc-code-margin);border-radius:var(--ng-doc-code-border-radius, var(--ng-doc-base-gutter));border:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color));overflow:hidden;height:100%}:host ::ng-deep pre code{display:block;padding:calc(var(--ng-doc-base-gutter) * 2);width:100%;font-family:var(--ng-doc-code-font);font-size:var(--ng-doc-code-font-size);line-height:var(--ng-doc-code-line-height);max-height:var(--ng-doc-code-max-height);overflow:auto;height:100%}:host ::ng-deep pre code.code-lines{display:grid;padding:calc(var(--ng-doc-base-gutter) * 2) 0}:host ::ng-deep pre code .line{padding:0 calc(var(--ng-doc-base-gutter) * 2)}:host ::ng-deep pre code .line.highlighted{position:relative}:host ::ng-deep pre code .line.highlighted:before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--ng-doc-code-highlight-color);opacity:.05;border-radius:inherit;overflow:hidden;pointer-events:none}:host ::ng-deep pre code .line.highlighted:after{content:\"\";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--ng-doc-code-highlight-color);opacity:.8}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "component", type: NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocSmoothResizeComponent, selector: "ng-doc-smooth-resize", inputs: ["trigger", "animateOpacity"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "directive", type: NgDocPageProcessorDirective, selector: "[ngDocPageProcessor]", inputs: ["ngDocPageProcessor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.7", type: NgDocCodeComponent, isStandalone: true, selector: "ng-doc-code", inputs: { html: "html", copyButton: "copyButton", name: "name", icon: "icon", lineNumbers: "lineNumbers" }, host: { properties: { "attr.data-ng-doc-has-header": "this.hasHeader" } }, ngImport: i0, template: "<div class=\"ng-doc-code-header\" *ngIf=\"hasHeader\">\n\t<span class=\"ng-doc-code-file-name\" ng-doc-text>\n\t\t<ng-doc-icon [customIcon]=\"icon\" *ngIf=\"icon\"></ng-doc-icon>\n\t\t{{ name }}\n\t</span>\n</div>\n<div class=\"ng-doc-code-body\">\n\t@if (html) {\n\t<div class=\"ng-doc-code-wrapper\" [ngDocPageProcessor]=\"html\"></div>\n\t} @else {\n\t<div class=\"ng-doc-code-wrapper\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t}\n\n\t<button\n\t\tclass=\"ng-doc-copy-button\"\n\t\tng-doc-button-icon\n\t\t*ngIf=\"copyButton\"\n\t\t(click)=\"copyCode(); tooltipText = 'Copied!'\"\n\t\t[ngDocTooltip]=\"tooltipContent\"\n\t\t(mouseenter)=\"tooltipText = 'Copy to clipboard'\">\n\t\t<ng-template #tooltipContent>\n\t\t\t<ng-doc-smooth-resize [trigger]=\"tooltipText\">\n\t\t\t\t{{ tooltipText }}\n\t\t\t</ng-doc-smooth-resize>\n\t\t</ng-template>\n\t\t<ng-doc-icon icon=\"copy\"></ng-doc-icon>\n\t</button>\n</div>\n", styles: [":host{position:relative;display:block;margin:var(--ng-doc-code-margin)}:host:hover .ng-doc-copy-button{opacity:1}:host[data-ng-doc-has-header=true]{--ng-doc-code-border-radius: 0 0 var(--ng-doc-base-gutter) var(--ng-doc-base-gutter);--ng-doc-code-shadow: none}:host .ng-doc-code-wrapper{--ng-doc-code-margin: 0;--ng-doc-code-border: none}:host .ng-doc-code-header{display:flex;align-items:center;padding:var(--ng-doc-base-gutter) calc(var(--ng-doc-base-gutter) * 2);background:var(--ng-doc-code-header-background, var(--ng-doc-base-2));border-radius:var(--ng-doc-base-gutter) var(--ng-doc-base-gutter) 0 0;border-top:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color));border-left:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color));border-right:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color))}:host .ng-doc-code-header .ng-doc-code-file-name{--ng-doc-text: var(--ng-doc-code-header-color);--ng-doc-font-weight: 600;--ng-doc-font-size: 13px}:host .ng-doc-code-header .ng-doc-code-file-name ng-doc-icon{margin-right:calc(var(--ng-doc-base-gutter) / 2)}:host .ng-doc-code-body{position:relative;height:100%;border-radius:var(--ng-doc-code-border-radius, var(--ng-doc-base-gutter));border:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color))}:host .ng-doc-copy-button{position:absolute;top:var(--ng-doc-base-gutter);right:var(--ng-doc-base-gutter);transition:var(--ng-doc-transition);opacity:0;--ng-doc-icon-color: var(--ng-doc-text-muted);--ng-doc-button-background: transparent;--ng-doc-button-hover-background: var( --ng-doc-code-copy-button-hover-background, var(--ng-doc-base-2) );--ng-doc-button-active-background: var( --ng-doc-code-copy-button-active-background, var(--ng-doc-base-3) )}:host .ng-doc-code-wrapper{height:100%}:host ::ng-deep pre{display:flex;margin:var(--ng-doc-code-margin);border-radius:var(--ng-doc-code-border-radius, var(--ng-doc-base-gutter));border:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color));overflow:hidden;height:100%}:host ::ng-deep pre code{display:block;padding:calc(var(--ng-doc-base-gutter) * 2);width:100%;font-family:var(--ng-doc-code-font);font-size:var(--ng-doc-code-font-size);line-height:var(--ng-doc-code-line-height);max-height:var(--ng-doc-code-max-height);overflow:auto;height:100%}:host ::ng-deep pre code.code-lines{display:grid;padding:calc(var(--ng-doc-base-gutter) * 2) 0}:host ::ng-deep pre code .line{padding:0 calc(var(--ng-doc-base-gutter) * 2)}:host ::ng-deep pre code .line.highlighted{position:relative}:host ::ng-deep pre code .line.highlighted:before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--ng-doc-code-highlight-color);opacity:.05;border-radius:inherit;overflow:hidden;pointer-events:none}:host ::ng-deep pre code .line.highlighted:after{content:\"\";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--ng-doc-code-highlight-color);opacity:.8}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "component", type: NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocSmoothResizeComponent, selector: "ng-doc-smooth-resize", inputs: ["trigger", "animateOpacity"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "directive", type: NgDocPageProcessorDirective, selector: "[ngDocPageProcessor]", inputs: ["ngDocPageProcessor"], outputs: ["afterRender"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28
28
|
}
|
|
29
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: NgDocCodeComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
@@ -37,6 +37,8 @@ let NgDocPageComponent = class NgDocPageComponent {
|
|
|
37
37
|
createComponent(this.pageNavigation, this.skeleton.navigation, this.navigationInputs());
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
+
}
|
|
41
|
+
createToc() {
|
|
40
42
|
if (this.pageToc && this.skeleton.toc) {
|
|
41
43
|
createComponent(this.pageToc, this.skeleton.toc, {
|
|
42
44
|
tableOfContent: generateToc(this.pageContainer.nativeElement) ?? [],
|
|
@@ -65,7 +67,7 @@ let NgDocPageComponent = class NgDocPageComponent {
|
|
|
65
67
|
provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
|
|
66
68
|
provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
|
|
67
69
|
provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
|
|
68
|
-
], viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, read: ElementRef, static: true }, { propertyName: "pageBreadcrumbs", first: true, predicate: ["pageBreadcrumbs"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageNavigation", first: true, predicate: ["pageNavigation"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageToc", first: true, predicate: ["pageToc"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "childOutlet", first: true, predicate: ["childOutlet"], descendants: true }], ngImport: i0, template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div
|
|
70
|
+
], viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, read: ElementRef, static: true }, { propertyName: "pageBreadcrumbs", first: true, predicate: ["pageBreadcrumbs"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageNavigation", first: true, predicate: ["pageNavigation"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageToc", first: true, predicate: ["pageToc"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "childOutlet", first: true, predicate: ["childOutlet"], descendants: true }], ngImport: i0, template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[ngDocPageProcessor]=\"rootPage.pageContent\"\n\t\t(afterRender)=\"createToc()\"\n\t\t#pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-doc-dialog-outlet\n\t*ngIf=\"!rootPage.page?.disableFullscreenRoutes\"\n\t[config]=\"{ width: '100vw', height: '100vh' }\">\n\t<div class=\"ng-doc-fullscreen-wrapper\">\n\t\t<router-outlet></router-outlet>\n\t</div>\n</ng-doc-dialog-outlet>\n\n<ng-container #pageToc></ng-container>\n", styles: [":host{display:flex;--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 5)}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;overflow:hidden}:host article .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}.ng-doc-fullscreen-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "directive", type: NgDocPageProcessorDirective, selector: "[ngDocPageProcessor]", inputs: ["ngDocPageProcessor"], outputs: ["afterRender"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: DialogOutletComponent, selector: "ng-doc-dialog-outlet", inputs: ["config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
69
71
|
};
|
|
70
72
|
NgDocPageComponent = __decorate([
|
|
71
73
|
UntilDestroy()
|
|
@@ -93,7 +95,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
93
95
|
provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
|
|
94
96
|
provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
|
|
95
97
|
provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
|
|
96
|
-
], host: { ngSkipHydration: 'true' }, template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div
|
|
98
|
+
], host: { ngSkipHydration: 'true' }, template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[ngDocPageProcessor]=\"rootPage.pageContent\"\n\t\t(afterRender)=\"createToc()\"\n\t\t#pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-doc-dialog-outlet\n\t*ngIf=\"!rootPage.page?.disableFullscreenRoutes\"\n\t[config]=\"{ width: '100vw', height: '100vh' }\">\n\t<div class=\"ng-doc-fullscreen-wrapper\">\n\t\t<router-outlet></router-outlet>\n\t</div>\n</ng-doc-dialog-outlet>\n\n<ng-container #pageToc></ng-container>\n", styles: [":host{display:flex;--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 5)}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;overflow:hidden}:host article .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}.ng-doc-fullscreen-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"] }]
|
|
97
99
|
}], propDecorators: { pageContainer: [{
|
|
98
100
|
type: ViewChild,
|
|
99
101
|
args: ['pageContainer', { read: ElementRef, static: true }]
|
|
@@ -110,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
110
112
|
type: ViewChild,
|
|
111
113
|
args: ['childOutlet']
|
|
112
114
|
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBRU4sU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBT25FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRSxPQUFPLEVBQ04sNEJBQTRCLEVBQzVCLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDM0IsOEJBQThCLEdBQzlCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFN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TSxFQUFFLElBQUksRUFBRTtnQkFJOUQsV0FBVztzQkFEVixTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NvbXBvbmVudE91dGxldCwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdE9uSW5pdCxcblx0UmVuZGVyZXIyLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIsIFJvdXRlck91dGxldCwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOZ0RvY1Jvb3RQYWdlIH0gZnJvbSAnQG5nLWRvYy9hcHAvY2xhc3Nlcy9yb290LXBhZ2UnO1xuaW1wb3J0IHsgTmdEb2NCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnQG5nLWRvYy9hcHAvY29tcG9uZW50cy9icmVhZGNydW1iJztcbmltcG9ydCB7IE5nRG9jVG9jQ29tcG9uZW50IH0gZnJvbSAnQG5nLWRvYy9hcHAvY29tcG9uZW50cy90b2MnO1xuaW1wb3J0IHsgY3JlYXRlQ29tcG9uZW50LCBnZW5lcmF0ZVRvYyB9IGZyb20gJ0BuZy1kb2MvYXBwL2hlbHBlcnMnO1xuaW1wb3J0IHtcblx0TmdEb2NDb250ZXh0LFxuXHROZ0RvY05hdmlnYXRpb24sXG5cdE5nRG9jUGFnZU5hdmlnYXRpb24sXG5cdE5nRG9jUGFnZVNrZWxldG9uLFxufSBmcm9tICdAbmctZG9jL2FwcC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE5nRG9jUGFnZVByb2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJ0BuZy1kb2MvYXBwL3Byb2Nlc3NvcnMnO1xuaW1wb3J0IHsgcHJvdmlkZVR5cGVDb250cm9sIH0gZnJvbSAnQG5nLWRvYy9hcHAvcHJvdmlkZXJzL3R5cGUtY29udHJvbCc7XG5pbXBvcnQgeyBOR19ET0NfQ09OVEVYVCwgTkdfRE9DX1BBR0VfU0tFTEVUT04gfSBmcm9tICdAbmctZG9jL2FwcC90b2tlbnMnO1xuaW1wb3J0IHtcblx0TmdEb2NCb29sZWFuQ29udHJvbENvbXBvbmVudCxcblx0TmdEb2NOdW1iZXJDb250cm9sQ29tcG9uZW50LFxuXHROZ0RvY1N0cmluZ0NvbnRyb2xDb21wb25lbnQsXG5cdE5nRG9jVHlwZUFsaWFzQ29udHJvbENvbXBvbmVudCxcbn0gZnJvbSAnQG5nLWRvYy9hcHAvdHlwZS1jb250cm9scyc7XG5pbXBvcnQgeyBpc1ByZXNlbnQgfSBmcm9tICdAbmctZG9jL2NvcmUnO1xuaW1wb3J0IHtcblx0RGlhbG9nT3V0bGV0Q29tcG9uZW50LFxuXHROZ0RvY0J1dHRvbkljb25Db21wb25lbnQsXG5cdE5nRG9jSWNvbkNvbXBvbmVudCxcblx0TmdEb2NNZWRpYVF1ZXJ5RGlyZWN0aXZlLFxuXHROZ0RvY1RleHRDb21wb25lbnQsXG5cdE5nRG9jVGV4dExlZnREaXJlY3RpdmUsXG5cdE5nRG9jVGV4dFJpZ2h0RGlyZWN0aXZlLFxuXHROZ0RvY1Rvb2x0aXBEaXJlY3RpdmUsXG59IGZyb20gJ0BuZy1kb2MvdWkta2l0JztcbmltcG9ydCB7IFVudGlsRGVzdHJveSB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25nLWRvYy1wYWdlJyxcblx0dGVtcGxhdGVVcmw6ICcuL3BhZ2UuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbXG5cdFx0TmdJZixcblx0XHROZ0RvY0JyZWFkY3J1bWJDb21wb25lbnQsXG5cdFx0TmdEb2NCdXR0b25JY29uQ29tcG9uZW50LFxuXHRcdE5nRG9jVG9vbHRpcERpcmVjdGl2ZSxcblx0XHROZ0RvY0ljb25Db21wb25lbnQsXG5cdFx0TmdEb2NUZXh0Q29tcG9uZW50LFxuXHRcdE5nRG9jVGV4dExlZnREaXJlY3RpdmUsXG5cdFx0TmdEb2NUZXh0UmlnaHREaXJlY3RpdmUsXG5cdFx0TmdEb2NNZWRpYVF1ZXJ5RGlyZWN0aXZlLFxuXHRcdE5nRG9jVG9jQ29tcG9uZW50LFxuXHRcdE5nRG9jUGFnZVByb2Nlc3NvckRpcmVjdGl2ZSxcblx0XHROZ0NvbXBvbmVudE91dGxldCxcblx0XHRSb3V0ZXJPdXRsZXQsXG5cdFx0RGlhbG9nT3V0bGV0Q29tcG9uZW50LFxuXHRdLFxuXHRwcm92aWRlcnM6IFtcblx0XHRwcm92aWRlVHlwZUNvbnRyb2woJ05nRG9jVHlwZUFsaWFzJywgTmdEb2NUeXBlQWxpYXNDb250cm9sQ29tcG9uZW50LCB7IG9yZGVyOiAxMCB9KSxcblx0XHRwcm92aWRlVHlwZUNvbnRyb2woJ3N0cmluZycsIE5nRG9jU3RyaW5nQ29udHJvbENvbXBvbmVudCwgeyBvcmRlcjogMjAgfSksXG5cdFx0cHJvdmlkZVR5cGVDb250cm9sKCdudW1iZXInLCBOZ0RvY051bWJlckNvbnRyb2xDb21wb25lbnQsIHsgb3JkZXI6IDMwIH0pLFxuXHRcdHByb3ZpZGVUeXBlQ29udHJvbCgnYm9vbGVhbicsIE5nRG9jQm9vbGVhbkNvbnRyb2xDb21wb25lbnQsIHsgaGlkZUxhYmVsOiB0cnVlLCBvcmRlcjogNDAgfSksXG5cdF0sXG5cdGhvc3Q6IHsgbmdTa2lwSHlkcmF0aW9uOiAndHJ1ZScgfSxcbn0pXG5AVW50aWxEZXN0cm95KClcbmV4cG9ydCBjbGFzcyBOZ0RvY1BhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXHRAVmlld0NoaWxkKCdwYWdlQ29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcblx0cGFnZUNvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG5cdEBWaWV3Q2hpbGQoJ3BhZ2VCcmVhZGNydW1icycsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG5cdHBhZ2VCcmVhZGNydW1icyE6IFZpZXdDb250YWluZXJSZWY7XG5cblx0QFZpZXdDaGlsZCgncGFnZU5hdmlnYXRpb24nLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuXHRwYWdlTmF2aWdhdGlvbiE6IFZpZXdDb250YWluZXJSZWY7XG5cblx0QFZpZXdDaGlsZCgncGFnZVRvYycsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG5cdHBhZ2VUb2M/OiBWaWV3Q29udGFpbmVyUmVmO1xuXG5cdEBWaWV3Q2hpbGQoJ2NoaWxkT3V0bGV0Jylcblx0Y2hpbGRPdXRsZXQ/OiBUZW1wbGF0ZVJlZjxuZXZlcj47XG5cblx0cHJvdGVjdGVkIHJvb3RQYWdlOiBOZ0RvY1Jvb3RQYWdlID0gaW5qZWN0KE5nRG9jUm9vdFBhZ2UpO1xuXHRwcm90ZWN0ZWQgc2tlbGV0b246IE5nRG9jUGFnZVNrZWxldG9uID0gaW5qZWN0KE5HX0RPQ19QQUdFX1NLRUxFVE9OKTtcblx0cHJvdGVjdGVkIGNvbnRleHQ6IE5nRG9jQ29udGV4dCA9IGluamVjdChOR19ET0NfQ09OVEVYVCk7XG5cdHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cdHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG5cdHByaXZhdGUgYnJlYWRjcnVtYnM6IHN0cmluZ1tdID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKVxuXHRcdC5wYXRoRnJvbVJvb3QuZmlsdGVyKChyb3V0ZTogQWN0aXZhdGVkUm91dGUpID0+ICFyb3V0ZS5zbmFwc2hvdC51cmwubGVuZ3RoKVxuXHRcdC5tYXAoKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkgPT4gcm91dGUuc25hcHNob3QudGl0bGUpXG5cdFx0LmZpbHRlcihpc1ByZXNlbnQpO1xuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLnJvb3RQYWdlLnBhZ2VUeXBlID09PSAnZ3VpZGUnKSB7XG5cdFx0XHRpZiAodGhpcy5za2VsZXRvbi5icmVhZGNydW1icykge1xuXHRcdFx0XHRjcmVhdGVDb21wb25lbnQodGhpcy5wYWdlQnJlYWRjcnVtYnMsIHRoaXMuc2tlbGV0b24uYnJlYWRjcnVtYnMsIHtcblx0XHRcdFx0XHRicmVhZGNydW1iczogdGhpcy5icmVhZGNydW1icyxcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0aGlzLnNrZWxldG9uLm5hdmlnYXRpb24pIHtcblx0XHRcdFx0Y3JlYXRlQ29tcG9uZW50KHRoaXMucGFnZU5hdmlnYXRpb24sIHRoaXMuc2tlbGV0b24ubmF2aWdhdGlvbiwgdGhpcy5uYXZpZ2F0aW9uSW5wdXRzKCkpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICh0aGlzLnBhZ2VUb2MgJiYgdGhpcy5za2VsZXRvbi50b2MpIHtcblx0XHRcdGNyZWF0ZUNvbXBvbmVudCh0aGlzLnBhZ2VUb2MsIHRoaXMuc2tlbGV0b24udG9jLCB7XG5cdFx0XHRcdHRhYmxlT2ZDb250ZW50OiBnZW5lcmF0ZVRvYyh0aGlzLnBhZ2VDb250YWluZXIubmF0aXZlRWxlbWVudCkgPz8gW10sXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIG5hdmlnYXRpb25JbnB1dHMoKTogTmdEb2NQYWdlTmF2aWdhdGlvbiB7XG5cdFx0Y29uc3QgZmxhdEl0ZW1zID0gKGl0ZW1zOiBOZ0RvY05hdmlnYXRpb25bXSk6IE5nRG9jTmF2aWdhdGlvbltdID0+XG5cdFx0XHRpdGVtc1xuXHRcdFx0XHQubWFwKChpdGVtOiBOZ0RvY05hdmlnYXRpb24pID0+IFtpdGVtLmNoaWxkcmVuPy5sZW5ndGggPyBmbGF0SXRlbXMoaXRlbS5jaGlsZHJlbikgOiBpdGVtXSlcblx0XHRcdFx0LmZsYXQoMik7XG5cdFx0Y29uc3QgZmxhdFBhZ2VzOiBOZ0RvY05hdmlnYXRpb25bXSA9IGZsYXRJdGVtcyh0aGlzLmNvbnRleHQubmF2aWdhdGlvbik7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0cHJldlBhZ2U6XG5cdFx0XHRcdGZsYXRQYWdlc1tmbGF0UGFnZXMuZmluZEluZGV4KChpdGVtOiBOZ0RvY05hdmlnYXRpb24pID0+IHRoaXMudXJsID09PSBpdGVtLnJvdXRlKSAtIDFdLFxuXHRcdFx0bmV4dFBhZ2U6XG5cdFx0XHRcdGZsYXRQYWdlc1tmbGF0UGFnZXMuZmluZEluZGV4KChpdGVtOiBOZ0RvY05hdmlnYXRpb24pID0+IHRoaXMudXJsID09PSBpdGVtLnJvdXRlKSArIDFdLFxuXHRcdH07XG5cdH1cblxuXHRwcml2YXRlIGdldCB1cmwoKTogc3RyaW5nIHtcblx0XHRjb25zdCB1cmxUcmVlOiBVcmxUcmVlID0gdGhpcy5yb3V0ZXIucGFyc2VVcmwodGhpcy5yb3V0ZXIudXJsKTtcblxuXHRcdHVybFRyZWUucXVlcnlQYXJhbXMgPSB7fTtcblx0XHR1cmxUcmVlLmZyYWdtZW50ID0gbnVsbDtcblxuXHRcdHJldHVybiB1cmxUcmVlLnRvU3RyaW5nKCk7XG5cdH1cbn1cbiIsIjxhcnRpY2xlPlxuXHQ8bmctY29udGFpbmVyICNwYWdlQnJlYWRjcnVtYnM+PC9uZy1jb250YWluZXI+XG5cblx0PGRpdiBjbGFzcz1cIm5nLWRvYy1wYWdlLWNvbnRyb2xzXCI+XG5cdFx0PGFcblx0XHRcdG5nLWRvYy1idXR0b24taWNvblxuXHRcdFx0Km5nSWY9XCJyb290UGFnZS5lZGl0U291cmNlRmlsZVVybFwiXG5cdFx0XHRbaHJlZl09XCJyb290UGFnZS5lZGl0U291cmNlRmlsZVVybFwiXG5cdFx0XHR0YXJnZXQ9XCJfYmxhbmtcIlxuXHRcdFx0bmdEb2NUb29sdGlwPVwiU3VnZ2VzdCBFZGl0c1wiPlxuXHRcdFx0PG5nLWRvYy1pY29uIGljb249XCJlZGl0LTJcIj48L25nLWRvYy1pY29uPlxuXHRcdDwvYT5cblx0XHQ8YVxuXHRcdFx0bmctZG9jLWJ1dHRvbi1pY29uXG5cdFx0XHQqbmdJZj1cInJvb3RQYWdlLnZpZXdTb3VyY2VGaWxlVXJsXCJcblx0XHRcdFtocmVmXT1cInJvb3RQYWdlLnZpZXdTb3VyY2VGaWxlVXJsXCJcblx0XHRcdHRhcmdldD1cIl9ibGFua1wiXG5cdFx0XHRuZ0RvY1Rvb2x0aXA9XCJWaWV3IFNvdXJjZVwiPlxuXHRcdFx0PG5nLWRvYy1pY29uIGljb249XCJjb2RlXCI+PC9uZy1kb2MtaWNvbj5cblx0XHQ8L2E+XG5cdDwvZGl2PlxuXG5cdDxkaXYgY2xhc3M9XCJuZy1kb2MtcGFnZS13cmFwcGVyXCIgW25nRG9jUGFnZVByb2Nlc3Nvcl09XCJyb290UGFnZS5wYWdlQ29udGVudFwiICNwYWdlQ29udGFpbmVyPjwvZGl2PlxuXG5cdDxuZy1jb250YWluZXIgI3BhZ2VOYXZpZ2F0aW9uPjwvbmctY29udGFpbmVyPlxuPC9hcnRpY2xlPlxuXG48bmctZG9jLWRpYWxvZy1vdXRsZXRcblx0Km5nSWY9XCIhcm9vdFBhZ2UucGFnZT8uZGlzYWJsZUZ1bGxzY3JlZW5Sb3V0ZXNcIlxuXHRbY29uZmlnXT1cInsgd2lkdGg6ICcxMDB2dycsIGhlaWdodDogJzEwMHZoJyB9XCI+XG5cdDxkaXYgY2xhc3M9XCJuZy1kb2MtZnVsbHNjcmVlbi13cmFwcGVyXCI+XG5cdFx0PHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuXHQ8L2Rpdj5cbjwvbmctZG9jLWRpYWxvZy1vdXRsZXQ+XG5cbjxuZy1jb250YWluZXIgI3BhZ2VUb2M+PC9uZy1jb250YWluZXI+XG4iXX0=
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBRU4sU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBT25FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRSxPQUFPLEVBQ04sNEJBQTRCLEVBQzVCLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDM0IsOEJBQThCLEdBQzlCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFN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QUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTlELFdBQVc7c0JBRFYsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDb21wb25lbnRPdXRsZXQsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0aW5qZWN0LFxuXHRPbkluaXQsXG5cdFJlbmRlcmVyMixcblx0VGVtcGxhdGVSZWYsXG5cdFZpZXdDaGlsZCxcblx0Vmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJPdXRsZXQsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmdEb2NSb290UGFnZSB9IGZyb20gJ0BuZy1kb2MvYXBwL2NsYXNzZXMvcm9vdC1wYWdlJztcbmltcG9ydCB7IE5nRG9jQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJ0BuZy1kb2MvYXBwL2NvbXBvbmVudHMvYnJlYWRjcnVtYic7XG5pbXBvcnQgeyBOZ0RvY1RvY0NvbXBvbmVudCB9IGZyb20gJ0BuZy1kb2MvYXBwL2NvbXBvbmVudHMvdG9jJztcbmltcG9ydCB7IGNyZWF0ZUNvbXBvbmVudCwgZ2VuZXJhdGVUb2MgfSBmcm9tICdAbmctZG9jL2FwcC9oZWxwZXJzJztcbmltcG9ydCB7XG5cdE5nRG9jQ29udGV4dCxcblx0TmdEb2NOYXZpZ2F0aW9uLFxuXHROZ0RvY1BhZ2VOYXZpZ2F0aW9uLFxuXHROZ0RvY1BhZ2VTa2VsZXRvbixcbn0gZnJvbSAnQG5nLWRvYy9hcHAvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOZ0RvY1BhZ2VQcm9jZXNzb3JEaXJlY3RpdmUgfSBmcm9tICdAbmctZG9jL2FwcC9wcm9jZXNzb3JzJztcbmltcG9ydCB7IHByb3ZpZGVUeXBlQ29udHJvbCB9IGZyb20gJ0BuZy1kb2MvYXBwL3Byb3ZpZGVycy90eXBlLWNvbnRyb2wnO1xuaW1wb3J0IHsgTkdfRE9DX0NPTlRFWFQsIE5HX0RPQ19QQUdFX1NLRUxFVE9OIH0gZnJvbSAnQG5nLWRvYy9hcHAvdG9rZW5zJztcbmltcG9ydCB7XG5cdE5nRG9jQm9vbGVhbkNvbnRyb2xDb21wb25lbnQsXG5cdE5nRG9jTnVtYmVyQ29udHJvbENvbXBvbmVudCxcblx0TmdEb2NTdHJpbmdDb250cm9sQ29tcG9uZW50LFxuXHROZ0RvY1R5cGVBbGlhc0NvbnRyb2xDb21wb25lbnQsXG59IGZyb20gJ0BuZy1kb2MvYXBwL3R5cGUtY29udHJvbHMnO1xuaW1wb3J0IHsgaXNQcmVzZW50IH0gZnJvbSAnQG5nLWRvYy9jb3JlJztcbmltcG9ydCB7XG5cdERpYWxvZ091dGxldENvbXBvbmVudCxcblx0TmdEb2NCdXR0b25JY29uQ29tcG9uZW50LFxuXHROZ0RvY0ljb25Db21wb25lbnQsXG5cdE5nRG9jTWVkaWFRdWVyeURpcmVjdGl2ZSxcblx0TmdEb2NUZXh0Q29tcG9uZW50LFxuXHROZ0RvY1RleHRMZWZ0RGlyZWN0aXZlLFxuXHROZ0RvY1RleHRSaWdodERpcmVjdGl2ZSxcblx0TmdEb2NUb29sdGlwRGlyZWN0aXZlLFxufSBmcm9tICdAbmctZG9jL3VpLWtpdCc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3kgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZy1kb2MtcGFnZScsXG5cdHRlbXBsYXRlVXJsOiAnLi9wYWdlLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vcGFnZS5jb21wb25lbnQuc2NzcyddLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW1xuXHRcdE5nSWYsXG5cdFx0TmdEb2NCcmVhZGNydW1iQ29tcG9uZW50LFxuXHRcdE5nRG9jQnV0dG9uSWNvbkNvbXBvbmVudCxcblx0XHROZ0RvY1Rvb2x0aXBEaXJlY3RpdmUsXG5cdFx0TmdEb2NJY29uQ29tcG9uZW50LFxuXHRcdE5nRG9jVGV4dENvbXBvbmVudCxcblx0XHROZ0RvY1RleHRMZWZ0RGlyZWN0aXZlLFxuXHRcdE5nRG9jVGV4dFJpZ2h0RGlyZWN0aXZlLFxuXHRcdE5nRG9jTWVkaWFRdWVyeURpcmVjdGl2ZSxcblx0XHROZ0RvY1RvY0NvbXBvbmVudCxcblx0XHROZ0RvY1BhZ2VQcm9jZXNzb3JEaXJlY3RpdmUsXG5cdFx0TmdDb21wb25lbnRPdXRsZXQsXG5cdFx0Um91dGVyT3V0bGV0LFxuXHRcdERpYWxvZ091dGxldENvbXBvbmVudCxcblx0XSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0cHJvdmlkZVR5cGVDb250cm9sKCdOZ0RvY1R5cGVBbGlhcycsIE5nRG9jVHlwZUFsaWFzQ29udHJvbENvbXBvbmVudCwgeyBvcmRlcjogMTAgfSksXG5cdFx0cHJvdmlkZVR5cGVDb250cm9sKCdzdHJpbmcnLCBOZ0RvY1N0cmluZ0NvbnRyb2xDb21wb25lbnQsIHsgb3JkZXI6IDIwIH0pLFxuXHRcdHByb3ZpZGVUeXBlQ29udHJvbCgnbnVtYmVyJywgTmdEb2NOdW1iZXJDb250cm9sQ29tcG9uZW50LCB7IG9yZGVyOiAzMCB9KSxcblx0XHRwcm92aWRlVHlwZUNvbnRyb2woJ2Jvb2xlYW4nLCBOZ0RvY0Jvb2xlYW5Db250cm9sQ29tcG9uZW50LCB7IGhpZGVMYWJlbDogdHJ1ZSwgb3JkZXI6IDQwIH0pLFxuXHRdLFxuXHRob3N0OiB7IG5nU2tpcEh5ZHJhdGlvbjogJ3RydWUnIH0sXG59KVxuQFVudGlsRGVzdHJveSgpXG5leHBvcnQgY2xhc3MgTmdEb2NQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblx0QFZpZXdDaGlsZCgncGFnZUNvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG5cdHBhZ2VDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuXHRAVmlld0NoaWxkKCdwYWdlQnJlYWRjcnVtYnMnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuXHRwYWdlQnJlYWRjcnVtYnMhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG5cdEBWaWV3Q2hpbGQoJ3BhZ2VOYXZpZ2F0aW9uJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcblx0cGFnZU5hdmlnYXRpb24hOiBWaWV3Q29udGFpbmVyUmVmO1xuXG5cdEBWaWV3Q2hpbGQoJ3BhZ2VUb2MnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuXHRwYWdlVG9jPzogVmlld0NvbnRhaW5lclJlZjtcblxuXHRAVmlld0NoaWxkKCdjaGlsZE91dGxldCcpXG5cdGNoaWxkT3V0bGV0PzogVGVtcGxhdGVSZWY8bmV2ZXI+O1xuXG5cdHByb3RlY3RlZCByb290UGFnZTogTmdEb2NSb290UGFnZSA9IGluamVjdChOZ0RvY1Jvb3RQYWdlKTtcblx0cHJvdGVjdGVkIHNrZWxldG9uOiBOZ0RvY1BhZ2VTa2VsZXRvbiA9IGluamVjdChOR19ET0NfUEFHRV9TS0VMRVRPTik7XG5cdHByb3RlY3RlZCBjb250ZXh0OiBOZ0RvY0NvbnRleHQgPSBpbmplY3QoTkdfRE9DX0NPTlRFWFQpO1xuXHRwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMiA9IGluamVjdChSZW5kZXJlcjIpO1xuXHRwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuXHRwcml2YXRlIGJyZWFkY3J1bWJzOiBzdHJpbmdbXSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSlcblx0XHQucGF0aEZyb21Sb290LmZpbHRlcigocm91dGU6IEFjdGl2YXRlZFJvdXRlKSA9PiAhcm91dGUuc25hcHNob3QudXJsLmxlbmd0aClcblx0XHQubWFwKChyb3V0ZTogQWN0aXZhdGVkUm91dGUpID0+IHJvdXRlLnNuYXBzaG90LnRpdGxlKVxuXHRcdC5maWx0ZXIoaXNQcmVzZW50KTtcblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5yb290UGFnZS5wYWdlVHlwZSA9PT0gJ2d1aWRlJykge1xuXHRcdFx0aWYgKHRoaXMuc2tlbGV0b24uYnJlYWRjcnVtYnMpIHtcblx0XHRcdFx0Y3JlYXRlQ29tcG9uZW50KHRoaXMucGFnZUJyZWFkY3J1bWJzLCB0aGlzLnNrZWxldG9uLmJyZWFkY3J1bWJzLCB7XG5cdFx0XHRcdFx0YnJlYWRjcnVtYnM6IHRoaXMuYnJlYWRjcnVtYnMsXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodGhpcy5za2VsZXRvbi5uYXZpZ2F0aW9uKSB7XG5cdFx0XHRcdGNyZWF0ZUNvbXBvbmVudCh0aGlzLnBhZ2VOYXZpZ2F0aW9uLCB0aGlzLnNrZWxldG9uLm5hdmlnYXRpb24sIHRoaXMubmF2aWdhdGlvbklucHV0cygpKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRjcmVhdGVUb2MoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMucGFnZVRvYyAmJiB0aGlzLnNrZWxldG9uLnRvYykge1xuXHRcdFx0Y3JlYXRlQ29tcG9uZW50KHRoaXMucGFnZVRvYywgdGhpcy5za2VsZXRvbi50b2MsIHtcblx0XHRcdFx0dGFibGVPZkNvbnRlbnQ6IGdlbmVyYXRlVG9jKHRoaXMucGFnZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50KSA/PyBbXSxcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgbmF2aWdhdGlvbklucHV0cygpOiBOZ0RvY1BhZ2VOYXZpZ2F0aW9uIHtcblx0XHRjb25zdCBmbGF0SXRlbXMgPSAoaXRlbXM6IE5nRG9jTmF2aWdhdGlvbltdKTogTmdEb2NOYXZpZ2F0aW9uW10gPT5cblx0XHRcdGl0ZW1zXG5cdFx0XHRcdC5tYXAoKGl0ZW06IE5nRG9jTmF2aWdhdGlvbikgPT4gW2l0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA/IGZsYXRJdGVtcyhpdGVtLmNoaWxkcmVuKSA6IGl0ZW1dKVxuXHRcdFx0XHQuZmxhdCgyKTtcblx0XHRjb25zdCBmbGF0UGFnZXM6IE5nRG9jTmF2aWdhdGlvbltdID0gZmxhdEl0ZW1zKHRoaXMuY29udGV4dC5uYXZpZ2F0aW9uKTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRwcmV2UGFnZTpcblx0XHRcdFx0ZmxhdFBhZ2VzW2ZsYXRQYWdlcy5maW5kSW5kZXgoKGl0ZW06IE5nRG9jTmF2aWdhdGlvbikgPT4gdGhpcy51cmwgPT09IGl0ZW0ucm91dGUpIC0gMV0sXG5cdFx0XHRuZXh0UGFnZTpcblx0XHRcdFx0ZmxhdFBhZ2VzW2ZsYXRQYWdlcy5maW5kSW5kZXgoKGl0ZW06IE5nRG9jTmF2aWdhdGlvbikgPT4gdGhpcy51cmwgPT09IGl0ZW0ucm91dGUpICsgMV0sXG5cdFx0fTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0IHVybCgpOiBzdHJpbmcge1xuXHRcdGNvbnN0IHVybFRyZWU6IFVybFRyZWUgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJvdXRlci51cmwpO1xuXG5cdFx0dXJsVHJlZS5xdWVyeVBhcmFtcyA9IHt9O1xuXHRcdHVybFRyZWUuZnJhZ21lbnQgPSBudWxsO1xuXG5cdFx0cmV0dXJuIHVybFRyZWUudG9TdHJpbmcoKTtcblx0fVxufVxuIiwiPGFydGljbGU+XG5cdDxuZy1jb250YWluZXIgI3BhZ2VCcmVhZGNydW1icz48L25nLWNvbnRhaW5lcj5cblxuXHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBhZ2UtY29udHJvbHNcIj5cblx0XHQ8YVxuXHRcdFx0bmctZG9jLWJ1dHRvbi1pY29uXG5cdFx0XHQqbmdJZj1cInJvb3RQYWdlLmVkaXRTb3VyY2VGaWxlVXJsXCJcblx0XHRcdFtocmVmXT1cInJvb3RQYWdlLmVkaXRTb3VyY2VGaWxlVXJsXCJcblx0XHRcdHRhcmdldD1cIl9ibGFua1wiXG5cdFx0XHRuZ0RvY1Rvb2x0aXA9XCJTdWdnZXN0IEVkaXRzXCI+XG5cdFx0XHQ8bmctZG9jLWljb24gaWNvbj1cImVkaXQtMlwiPjwvbmctZG9jLWljb24+XG5cdFx0PC9hPlxuXHRcdDxhXG5cdFx0XHRuZy1kb2MtYnV0dG9uLWljb25cblx0XHRcdCpuZ0lmPVwicm9vdFBhZ2Uudmlld1NvdXJjZUZpbGVVcmxcIlxuXHRcdFx0W2hyZWZdPVwicm9vdFBhZ2Uudmlld1NvdXJjZUZpbGVVcmxcIlxuXHRcdFx0dGFyZ2V0PVwiX2JsYW5rXCJcblx0XHRcdG5nRG9jVG9vbHRpcD1cIlZpZXcgU291cmNlXCI+XG5cdFx0XHQ8bmctZG9jLWljb24gaWNvbj1cImNvZGVcIj48L25nLWRvYy1pY29uPlxuXHRcdDwvYT5cblx0PC9kaXY+XG5cblx0PGRpdlxuXHRcdGNsYXNzPVwibmctZG9jLXBhZ2Utd3JhcHBlclwiXG5cdFx0W25nRG9jUGFnZVByb2Nlc3Nvcl09XCJyb290UGFnZS5wYWdlQ29udGVudFwiXG5cdFx0KGFmdGVyUmVuZGVyKT1cImNyZWF0ZVRvYygpXCJcblx0XHQjcGFnZUNvbnRhaW5lcj48L2Rpdj5cblxuXHQ8bmctY29udGFpbmVyICNwYWdlTmF2aWdhdGlvbj48L25nLWNvbnRhaW5lcj5cbjwvYXJ0aWNsZT5cblxuPG5nLWRvYy1kaWFsb2ctb3V0bGV0XG5cdCpuZ0lmPVwiIXJvb3RQYWdlLnBhZ2U/LmRpc2FibGVGdWxsc2NyZWVuUm91dGVzXCJcblx0W2NvbmZpZ109XCJ7IHdpZHRoOiAnMTAwdncnLCBoZWlnaHQ6ICcxMDB2aCcgfVwiPlxuXHQ8ZGl2IGNsYXNzPVwibmctZG9jLWZ1bGxzY3JlZW4td3JhcHBlclwiPlxuXHRcdDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cblx0PC9kaXY+XG48L25nLWRvYy1kaWFsb2ctb3V0bGV0PlxuXG48bmctY29udGFpbmVyICNwYWdlVG9jPjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -45,7 +45,7 @@ let NgDocTocComponent = class NgDocTocComponent {
|
|
|
45
45
|
}), filter(isPresent), debounceTime(20));
|
|
46
46
|
const elementsChanges = this.elements.changes.pipe(map(() => this.activeItem()), filter(isPresent));
|
|
47
47
|
merge(merge(scrollSelection, routerSelection).pipe(distinctUntilChanged()), elementsChanges)
|
|
48
|
-
.pipe(ngDocZoneOptimize(this.ngZone), untilDestroyed(this))
|
|
48
|
+
.pipe(debounceTime(0), ngDocZoneOptimize(this.ngZone), untilDestroyed(this))
|
|
49
49
|
.subscribe(this.select.bind(this));
|
|
50
50
|
}, { phase: AfterRenderPhase.Write });
|
|
51
51
|
}
|
|
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
88
88
|
type: ViewChildren,
|
|
89
89
|
args: [NgDocTocElementComponent]
|
|
90
90
|
}] } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvdG9jL3RvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3RvYy90b2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUNOLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEdBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQVd4RSxJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFpQjtJQWtCN0I7UUFoQkEsbUJBQWMsR0FBbUIsRUFB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QUMsQ0FBQztnQkFDdEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7Z0JBRTVGLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQzthQUM3QztTQUNEO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs4R0F0R1csaUJBQWlCO2tHQUFqQixpQkFBaUIsdU1BSUcsVUFBVSwyQ0FHNUIsd0JBQXdCLGdEQzdDdkMsNGJBZ0JBLGsyQkRtQmtCLHdCQUF3Qjs7QUFHN0IsaUJBQWlCO0lBRDdCLFlBQVksRUFBRTs7R0FDRixpQkFBaUIsQ0F1RzdCOzsyRkF2R1ksaUJBQWlCO2tCQVQ3QixTQUFTOytCQUNDLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLENBQUM7d0RBS3BFLGNBQWM7c0JBRGIsS0FBSztnQkFJTixTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJNUMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRhZnRlck5leHRSZW5kZXIsXG5cdEFmdGVyUmVuZGVyUGhhc2UsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdElucHV0LFxuXHROZ1pvbmUsXG5cdE9uSW5pdCxcblx0UXVlcnlMaXN0LFxuXHRSZW5kZXJlcjIsXG5cdHNpZ25hbCxcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q2hpbGRyZW4sXG5cdFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50IGFzIFJFdmVudCwgUm91dGVyLCBTY3JvbGwgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmdEb2NQYWdlVG9jLCBOZ0RvY1RvY0l0ZW0gfSBmcm9tICdAbmctZG9jL2FwcC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGlzUHJlc2VudCB9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL2lzLXByZXNlbnQnO1xuaW1wb3J0IHsgTmdEb2NNZWRpYVF1ZXJ5RGlyZWN0aXZlLCBuZ0RvY1pvbmVPcHRpbWl6ZSB9IGZyb20gJ0BuZy1kb2MvdWkta2l0JztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTmdEb2NUb2NFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi90b2MtZWxlbWVudC90b2MtZWxlbWVudC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZy1kb2MtdG9jJyxcblx0dGVtcGxhdGVVcmw6ICcuL3RvYy5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3RvYy5jb21wb25lbnQuc2NzcyddLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW05nRm9yLCBOZ0RvY1RvY0VsZW1lbnRDb21wb25lbnQsIE5nRG9jTWVkaWFRdWVyeURpcmVjdGl2ZV0sXG59KVxuQFVudGlsRGVzdHJveSgpXG5leHBvcnQgY2xhc3MgTmdEb2NUb2NDb21wb25lbnQgaW1wbGVtZW50cyBOZ0RvY1BhZ2VUb2MsIE9uSW5pdCB7XG5cdEBJbnB1dCgpXG5cdHRhYmxlT2ZDb250ZW50OiBOZ0RvY1RvY0l0ZW1bXSA9IFtdO1xuXG5cdEBWaWV3Q2hpbGQoJ3NlbGVjdGlvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuXHRzZWxlY3Rpb24/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuXHRAVmlld0NoaWxkcmVuKE5nRG9jVG9jRWxlbWVudENvbXBvbmVudClcblx0ZWxlbWVudHM6IFF1ZXJ5TGlzdDxOZ0RvY1RvY0VsZW1lbnRDb21wb25lbnQ+ID0gbmV3IFF1ZXJ5TGlzdDxOZ0RvY1RvY0VsZW1lbnRDb21wb25lbnQ+KCk7XG5cblx0YWN0aXZlSXRlbTogV3JpdGFibGVTaWduYWw8TmdEb2NUb2NJdGVtIHwgdW5kZWZpbmVkPiA9IHNpZ25hbCh1bmRlZmluZWQpO1xuXG5cdHByb3RlY3RlZCByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cdHByb3RlY3RlZCByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cdHByb3RlY3RlZCByZWFkb25seSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcihcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3Qgc2Nyb2xsU2VsZWN0aW9uOiBPYnNlcnZhYmxlPE5nRG9jVG9jSXRlbT4gPSBmcm9tRXZlbnQodGhpcy5kb2N1bWVudCwgJ3Njcm9sbCcpLnBpcGUoXG5cdFx0XHRcdFx0ZmlsdGVyKCgpID0+ICEhdGhpcy50YWJsZU9mQ29udGVudC5sZW5ndGgpLFxuXHRcdFx0XHRcdG1hcCgoZXZlbnQ6IEV2ZW50KSA9PiAoZXZlbnQudGFyZ2V0IGFzIERvY3VtZW50KS5zY3JvbGxpbmdFbGVtZW50IGFzIEhUTUxFbGVtZW50KSxcblx0XHRcdFx0XHRzdGFydFdpdGgodGhpcy5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50IGFzIEhUTUxFbGVtZW50KSxcblx0XHRcdFx0XHRtYXAoKHRhcmdldDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IHBlcmNlbnRhZ2U6IG51bWJlciA9XG5cdFx0XHRcdFx0XHRcdCh0YXJnZXQuc2Nyb2xsVG9wICogMTAwKSAvICh0YXJnZXQuc2Nyb2xsSGVpZ2h0IC0gdGFyZ2V0Lm9mZnNldEhlaWdodCk7XG5cdFx0XHRcdFx0XHRjb25zdCBzZWxlY3Rpb25MaW5lOiBudW1iZXIgPVxuXHRcdFx0XHRcdFx0XHR0YXJnZXQuc2Nyb2xsVG9wICsgKHRhcmdldC5vZmZzZXRIZWlnaHQgKiBwZXJjZW50YWdlKSAvIDEwMDtcblxuXHRcdFx0XHRcdFx0aWYgKCF0aGlzLnRhYmxlT2ZDb250ZW50Lmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMudGFibGVPZkNvbnRlbnQucmVkdWNlKChwVGFyZ2V0OiBOZ0RvY1RvY0l0ZW0sIGNUYXJnZXQ6IE5nRG9jVG9jSXRlbSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBwVG9wOiBudW1iZXIgPSBwVGFyZ2V0LmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgdGFyZ2V0LnNjcm9sbFRvcDtcblx0XHRcdFx0XHRcdFx0Y29uc3QgY1RvcDogbnVtYmVyID0gY1RhcmdldC5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHRhcmdldC5zY3JvbGxUb3A7XG5cblx0XHRcdFx0XHRcdFx0cmV0dXJuIE1hdGguYWJzKGNUb3AgLSBzZWxlY3Rpb25MaW5lKSA8IE1hdGguYWJzKHBUb3AgLSBzZWxlY3Rpb25MaW5lKVxuXHRcdFx0XHRcdFx0XHRcdD8gY1RhcmdldFxuXHRcdFx0XHRcdFx0XHRcdDogcFRhcmdldDtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdGZpbHRlcihpc1ByZXNlbnQpLFxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdGNvbnN0IHJvdXRlclNlbGVjdGlvbjogT2JzZXJ2YWJsZTxOZ0RvY1RvY0l0ZW0+ID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG5cdFx0XHRcdFx0bWFwKChldmVudDogUkV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoZXZlbnQgaW5zdGFuY2VvZiBTY3JvbGwpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgaXRlbTogTmdEb2NUb2NJdGVtIHwgdW5kZWZpbmVkID0gdGhpcy50YWJsZU9mQ29udGVudC5maW5kKFxuXHRcdFx0XHRcdFx0XHRcdChpdGVtOiBOZ0RvY1RvY0l0ZW0pID0+IGl0ZW0ucGF0aC5pbmNsdWRlcyhldmVudC5yb3V0ZXJFdmVudC51cmwpLFxuXHRcdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHRcdGlmIChpdGVtKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGl0ZW07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdFx0ZmlsdGVyKGlzUHJlc2VudCksXG5cdFx0XHRcdFx0ZGVib3VuY2VUaW1lKDIwKSxcblx0XHRcdFx0KTtcblxuXHRcdFx0XHRjb25zdCBlbGVtZW50c0NoYW5nZXMgPSB0aGlzLmVsZW1lbnRzLmNoYW5nZXMucGlwZShcblx0XHRcdFx0XHRtYXAoKCkgPT4gdGhpcy5hY3RpdmVJdGVtKCkpLFxuXHRcdFx0XHRcdGZpbHRlcihpc1ByZXNlbnQpLFxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdG1lcmdlKG1lcmdlKHNjcm9sbFNlbGVjdGlvbiwgcm91dGVyU2VsZWN0aW9uKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLCBlbGVtZW50c0NoYW5nZXMpXG5cdFx0XHRcdFx0LnBpcGUobmdEb2Nab25lT3B0aW1pemUodGhpcy5uZ1pvbmUpLCB1bnRpbERlc3Ryb3llZCh0aGlzKSlcblx0XHRcdFx0XHQuc3Vic2NyaWJlKHRoaXMuc2VsZWN0LmJpbmQodGhpcykpO1xuXHRcdFx0fSxcblx0XHRcdHsgcGhhc2U6IEFmdGVyUmVuZGVyUGhhc2UuV3JpdGUgfSxcblx0XHQpO1xuXHR9XG5cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy5hY3RpdmVJdGVtLnNldCh0aGlzLnRhYmxlT2ZDb250ZW50WzBdKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZWxlY3RzIHRoZSBpdGVtIGluIHRoZSB0YWJsZSBvZiBjb250ZW50LlxuXHQgKiBAcGFyYW0gaXRlbSAtIEl0ZW0gdG8gc2VsZWN0LlxuXHQgKi9cblx0cHJvdGVjdGVkIHNlbGVjdChpdGVtOiBOZ0RvY1RvY0l0ZW0pOiB2b2lkIHtcblx0XHRjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy50YWJsZU9mQ29udGVudC5pbmRleE9mKGl0ZW0pO1xuXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uKSB7XG5cdFx0XHRjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9XG5cdFx0XHRcdHRoaXMuZWxlbWVudHMudG9BcnJheSgpW2luZGV4XT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG5cdFx0XHRpZiAoZWxlbWVudCkge1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc2VsZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHtlbGVtZW50Lm9mZnNldFRvcH1weGApO1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc2VsZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHtlbGVtZW50Lm9mZnNldEhlaWdodH1weGApO1xuXG5cdFx0XHRcdGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRoaXMuYWN0aXZlSXRlbS5zZXQoaXRlbSk7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJuZy1kb2MtdG9jLXdyYXBwZXJcIj5cblx0PGRpdiBjbGFzcz1cIm5nLWRvYy10b2MtY29udGFpbmVyXCI+XG5cdFx0PGRpdiBjbGFzcz1cIm5nLWRvYy10b2Mtc2VsZWN0aW9uXCIgI3NlbGVjdGlvbj48L2Rpdj5cblx0XHQ8dWwgY2xhc3M9XCJuZy1kb2MtdG9jXCI+XG5cdFx0XHRAZm9yIChpdGVtIG9mIHRhYmxlT2ZDb250ZW50OyB0cmFjayBpdGVtKSB7XG5cdFx0XHQ8bGlcblx0XHRcdFx0bmctZG9jLXRvYy1lbGVtZW50XG5cdFx0XHRcdFtocmVmXT1cIml0ZW0ucGF0aFwiXG5cdFx0XHRcdFtsZXZlbF09XCJpdGVtLmxldmVsXCJcblx0XHRcdFx0W3NlbGVjdGVkXT1cIml0ZW0gPT09IGFjdGl2ZUl0ZW0oKVwiPlxuXHRcdFx0XHR7eyBpdGVtLnRpdGxlIH19XG5cdFx0XHQ8L2xpPlxuXHRcdFx0fVxuXHRcdDwvdWw+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvdG9jL3RvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3RvYy90b2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUNOLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEdBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQVd4RSxJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFpQjtJQWtCN0I7UUFoQkEsbUJBQWMsR0FBbUIsRUFB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QUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO2dCQUU1RixPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7YUFDN0M7U0FDRDtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7OEdBdEdXLGlCQUFpQjtrR0FBakIsaUJBQWlCLHVNQUlHLFVBQVUsMkNBRzVCLHdCQUF3QixnREM3Q3ZDLDRiQWdCQSxrMkJEbUJrQix3QkFBd0I7O0FBRzdCLGlCQUFpQjtJQUQ3QixZQUFZLEVBQUU7O0dBQ0YsaUJBQWlCLENBdUc3Qjs7MkZBdkdZLGlCQUFpQjtrQkFUN0IsU0FBUzsrQkFDQyxZQUFZLG1CQUdMLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsS0FBSyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixDQUFDO3dEQUtwRSxjQUFjO3NCQURiLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSTVDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRBZnRlclJlbmRlclBoYXNlLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0aW5qZWN0LFxuXHRJbnB1dCxcblx0Tmdab25lLFxuXHRPbkluaXQsXG5cdFF1ZXJ5TGlzdCxcblx0UmVuZGVyZXIyLFxuXHRzaWduYWwsXG5cdFZpZXdDaGlsZCxcblx0Vmlld0NoaWxkcmVuLFxuXHRXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudCBhcyBSRXZlbnQsIFJvdXRlciwgU2Nyb2xsIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5nRG9jUGFnZVRvYywgTmdEb2NUb2NJdGVtIH0gZnJvbSAnQG5nLWRvYy9hcHAvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBpc1ByZXNlbnQgfSBmcm9tICdAbmctZG9jL2NvcmUvaGVscGVycy9pcy1wcmVzZW50JztcbmltcG9ydCB7IE5nRG9jTWVkaWFRdWVyeURpcmVjdGl2ZSwgbmdEb2Nab25lT3B0aW1pemUgfSBmcm9tICdAbmctZG9jL3VpLWtpdCc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE5nRG9jVG9jRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vdG9jLWVsZW1lbnQvdG9jLWVsZW1lbnQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmctZG9jLXRvYycsXG5cdHRlbXBsYXRlVXJsOiAnLi90b2MuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi90b2MuY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtOZ0ZvciwgTmdEb2NUb2NFbGVtZW50Q29tcG9uZW50LCBOZ0RvY01lZGlhUXVlcnlEaXJlY3RpdmVdLFxufSlcbkBVbnRpbERlc3Ryb3koKVxuZXhwb3J0IGNsYXNzIE5nRG9jVG9jQ29tcG9uZW50IGltcGxlbWVudHMgTmdEb2NQYWdlVG9jLCBPbkluaXQge1xuXHRASW5wdXQoKVxuXHR0YWJsZU9mQ29udGVudDogTmdEb2NUb2NJdGVtW10gPSBbXTtcblxuXHRAVmlld0NoaWxkKCdzZWxlY3Rpb24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcblx0c2VsZWN0aW9uPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cblx0QFZpZXdDaGlsZHJlbihOZ0RvY1RvY0VsZW1lbnRDb21wb25lbnQpXG5cdGVsZW1lbnRzOiBRdWVyeUxpc3Q8TmdEb2NUb2NFbGVtZW50Q29tcG9uZW50PiA9IG5ldyBRdWVyeUxpc3Q8TmdEb2NUb2NFbGVtZW50Q29tcG9uZW50PigpO1xuXG5cdGFjdGl2ZUl0ZW06IFdyaXRhYmxlU2lnbmFsPE5nRG9jVG9jSXRlbSB8IHVuZGVmaW5lZD4gPSBzaWduYWwodW5kZWZpbmVkKTtcblxuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IG5nWm9uZTogTmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cdHByb3RlY3RlZCByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMiA9IGluamVjdChSZW5kZXJlcjIpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHNjcm9sbFNlbGVjdGlvbjogT2JzZXJ2YWJsZTxOZ0RvY1RvY0l0ZW0+ID0gZnJvbUV2ZW50KHRoaXMuZG9jdW1lbnQsICdzY3JvbGwnKS5waXBlKFxuXHRcdFx0XHRcdGZpbHRlcigoKSA9PiAhIXRoaXMudGFibGVPZkNvbnRlbnQubGVuZ3RoKSxcblx0XHRcdFx0XHRtYXAoKGV2ZW50OiBFdmVudCkgPT4gKGV2ZW50LnRhcmdldCBhcyBEb2N1bWVudCkuc2Nyb2xsaW5nRWxlbWVudCBhcyBIVE1MRWxlbWVudCksXG5cdFx0XHRcdFx0c3RhcnRXaXRoKHRoaXMuZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCBhcyBIVE1MRWxlbWVudCksXG5cdFx0XHRcdFx0bWFwKCh0YXJnZXQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCBwZXJjZW50YWdlOiBudW1iZXIgPVxuXHRcdFx0XHRcdFx0XHQodGFyZ2V0LnNjcm9sbFRvcCAqIDEwMCkgLyAodGFyZ2V0LnNjcm9sbEhlaWdodCAtIHRhcmdldC5vZmZzZXRIZWlnaHQpO1xuXHRcdFx0XHRcdFx0Y29uc3Qgc2VsZWN0aW9uTGluZTogbnVtYmVyID1cblx0XHRcdFx0XHRcdFx0dGFyZ2V0LnNjcm9sbFRvcCArICh0YXJnZXQub2Zmc2V0SGVpZ2h0ICogcGVyY2VudGFnZSkgLyAxMDA7XG5cblx0XHRcdFx0XHRcdGlmICghdGhpcy50YWJsZU9mQ29udGVudC5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLnRhYmxlT2ZDb250ZW50LnJlZHVjZSgocFRhcmdldDogTmdEb2NUb2NJdGVtLCBjVGFyZ2V0OiBOZ0RvY1RvY0l0ZW0pID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgcFRvcDogbnVtYmVyID0gcFRhcmdldC5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHRhcmdldC5zY3JvbGxUb3A7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGNUb3A6IG51bWJlciA9IGNUYXJnZXQuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB0YXJnZXQuc2Nyb2xsVG9wO1xuXG5cdFx0XHRcdFx0XHRcdHJldHVybiBNYXRoLmFicyhjVG9wIC0gc2VsZWN0aW9uTGluZSkgPCBNYXRoLmFicyhwVG9wIC0gc2VsZWN0aW9uTGluZSlcblx0XHRcdFx0XHRcdFx0XHQ/IGNUYXJnZXRcblx0XHRcdFx0XHRcdFx0XHQ6IHBUYXJnZXQ7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHRmaWx0ZXIoaXNQcmVzZW50KSxcblx0XHRcdFx0KTtcblxuXHRcdFx0XHRjb25zdCByb3V0ZXJTZWxlY3Rpb246IE9ic2VydmFibGU8TmdEb2NUb2NJdGVtPiA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuXHRcdFx0XHRcdG1hcCgoZXZlbnQ6IFJFdmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKGV2ZW50IGluc3RhbmNlb2YgU2Nyb2xsKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGl0ZW06IE5nRG9jVG9jSXRlbSB8IHVuZGVmaW5lZCA9IHRoaXMudGFibGVPZkNvbnRlbnQuZmluZChcblx0XHRcdFx0XHRcdFx0XHQoaXRlbTogTmdEb2NUb2NJdGVtKSA9PiBpdGVtLnBhdGguaW5jbHVkZXMoZXZlbnQucm91dGVyRXZlbnQudXJsKSxcblx0XHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0XHRpZiAoaXRlbSkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBpdGVtO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdGZpbHRlcihpc1ByZXNlbnQpLFxuXHRcdFx0XHRcdGRlYm91bmNlVGltZSgyMCksXG5cdFx0XHRcdCk7XG5cblx0XHRcdFx0Y29uc3QgZWxlbWVudHNDaGFuZ2VzID0gdGhpcy5lbGVtZW50cy5jaGFuZ2VzLnBpcGUoXG5cdFx0XHRcdFx0bWFwKCgpID0+IHRoaXMuYWN0aXZlSXRlbSgpKSxcblx0XHRcdFx0XHRmaWx0ZXIoaXNQcmVzZW50KSxcblx0XHRcdFx0KTtcblxuXHRcdFx0XHRtZXJnZShtZXJnZShzY3JvbGxTZWxlY3Rpb24sIHJvdXRlclNlbGVjdGlvbikucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSwgZWxlbWVudHNDaGFuZ2VzKVxuXHRcdFx0XHRcdC5waXBlKGRlYm91bmNlVGltZSgwKSwgbmdEb2Nab25lT3B0aW1pemUodGhpcy5uZ1pvbmUpLCB1bnRpbERlc3Ryb3llZCh0aGlzKSlcblx0XHRcdFx0XHQuc3Vic2NyaWJlKHRoaXMuc2VsZWN0LmJpbmQodGhpcykpO1xuXHRcdFx0fSxcblx0XHRcdHsgcGhhc2U6IEFmdGVyUmVuZGVyUGhhc2UuV3JpdGUgfSxcblx0XHQpO1xuXHR9XG5cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy5hY3RpdmVJdGVtLnNldCh0aGlzLnRhYmxlT2ZDb250ZW50WzBdKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZWxlY3RzIHRoZSBpdGVtIGluIHRoZSB0YWJsZSBvZiBjb250ZW50LlxuXHQgKiBAcGFyYW0gaXRlbSAtIEl0ZW0gdG8gc2VsZWN0LlxuXHQgKi9cblx0cHJvdGVjdGVkIHNlbGVjdChpdGVtOiBOZ0RvY1RvY0l0ZW0pOiB2b2lkIHtcblx0XHRjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy50YWJsZU9mQ29udGVudC5pbmRleE9mKGl0ZW0pO1xuXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uKSB7XG5cdFx0XHRjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9XG5cdFx0XHRcdHRoaXMuZWxlbWVudHMudG9BcnJheSgpW2luZGV4XT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG5cdFx0XHRpZiAoZWxlbWVudCkge1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc2VsZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHtlbGVtZW50Lm9mZnNldFRvcH1weGApO1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuc2VsZWN0aW9uLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHtlbGVtZW50Lm9mZnNldEhlaWdodH1weGApO1xuXG5cdFx0XHRcdGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRoaXMuYWN0aXZlSXRlbS5zZXQoaXRlbSk7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJuZy1kb2MtdG9jLXdyYXBwZXJcIj5cblx0PGRpdiBjbGFzcz1cIm5nLWRvYy10b2MtY29udGFpbmVyXCI+XG5cdFx0PGRpdiBjbGFzcz1cIm5nLWRvYy10b2Mtc2VsZWN0aW9uXCIgI3NlbGVjdGlvbj48L2Rpdj5cblx0XHQ8dWwgY2xhc3M9XCJuZy1kb2MtdG9jXCI+XG5cdFx0XHRAZm9yIChpdGVtIG9mIHRhYmxlT2ZDb250ZW50OyB0cmFjayBpdGVtKSB7XG5cdFx0XHQ8bGlcblx0XHRcdFx0bmctZG9jLXRvYy1lbGVtZW50XG5cdFx0XHRcdFtocmVmXT1cIml0ZW0ucGF0aFwiXG5cdFx0XHRcdFtsZXZlbF09XCJpdGVtLmxldmVsXCJcblx0XHRcdFx0W3NlbGVjdGVkXT1cIml0ZW0gPT09IGFjdGl2ZUl0ZW0oKVwiPlxuXHRcdFx0XHR7eyBpdGVtLnRpdGxlIH19XG5cdFx0XHQ8L2xpPlxuXHRcdFx0fVxuXHRcdDwvdWw+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* @param inputs
|
|
6
6
|
*/
|
|
7
7
|
export function createComponent(viewContainer, component, inputs) {
|
|
8
|
+
viewContainer.clear();
|
|
8
9
|
const componentRef = viewContainer.createComponent(component);
|
|
9
10
|
if (inputs) {
|
|
10
11
|
Object.entries(inputs).forEach(([key, value]) => {
|
|
@@ -12,4 +13,4 @@ export function createComponent(viewContainer, component, inputs) {
|
|
|
12
13
|
});
|
|
13
14
|
}
|
|
14
15
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2hlbHBlcnMvY3JlYXRlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzlCLGFBQStCLEVBQy9CLFNBQWtCLEVBQ2xCLE1BQWU7SUFFZixhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFdEIsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU5RCxJQUFJLE1BQU0sRUFBRTtRQUNYLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUMvQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztLQUNIO0FBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKlxuICogQHBhcmFtIHZpZXdDb250YWluZXJcbiAqIEBwYXJhbSBjb21wb25lbnRcbiAqIEBwYXJhbSBpbnB1dHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudDxUPihcblx0dmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcblx0Y29tcG9uZW50OiBUeXBlPFQ+LFxuXHRpbnB1dHM/OiBvYmplY3QsXG4pOiB2b2lkIHtcblx0dmlld0NvbnRhaW5lci5jbGVhcigpO1xuXG5cdGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCk7XG5cblx0aWYgKGlucHV0cykge1xuXHRcdE9iamVjdC5lbnRyaWVzKGlucHV0cykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG5cdFx0XHRjb21wb25lbnRSZWYuc2V0SW5wdXQoa2V5LCB2YWx1ZSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Directive, ElementRef, inject, Injector, Input, Renderer2, ViewContainerRef, } from '@angular/core';
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, inject, Injector, Input, Output, Renderer2, ViewContainerRef, } from '@angular/core';
|
|
2
2
|
import { NG_DOC_PAGE_CUSTOM_PROCESSOR, NG_DOC_PAGE_PROCESSOR } from '@ng-doc/app/tokens';
|
|
3
3
|
import { asArray, objectKeys } from '@ng-doc/core';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -9,6 +9,7 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
export class NgDocPageProcessorDirective {
|
|
10
10
|
constructor() {
|
|
11
11
|
this.html = '';
|
|
12
|
+
this.afterRender = new EventEmitter();
|
|
12
13
|
this.processors = inject(NG_DOC_PAGE_PROCESSOR, { optional: true }) ?? [];
|
|
13
14
|
this.customProcessors = inject(NG_DOC_PAGE_CUSTOM_PROCESSOR, { optional: true }) ??
|
|
14
15
|
[];
|
|
@@ -17,8 +18,13 @@ export class NgDocPageProcessorDirective {
|
|
|
17
18
|
this.injector = inject(Injector);
|
|
18
19
|
this.renderer = inject(Renderer2);
|
|
19
20
|
}
|
|
21
|
+
ngOnChanges({ html }) {
|
|
22
|
+
if (html) {
|
|
23
|
+
this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', this.html);
|
|
24
|
+
this.afterRender.emit();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
20
27
|
ngOnInit() {
|
|
21
|
-
this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', this.html);
|
|
22
28
|
asArray(this.processors, this.customProcessors).forEach(this.process.bind(this));
|
|
23
29
|
}
|
|
24
30
|
process(processor) {
|
|
@@ -44,7 +50,7 @@ export class NgDocPageProcessorDirective {
|
|
|
44
50
|
});
|
|
45
51
|
}
|
|
46
52
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: NgDocPageProcessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
47
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: NgDocPageProcessorDirective, isStandalone: true, selector: "[ngDocPageProcessor]", inputs: { html: ["ngDocPageProcessor", "html"] }, host: { attributes: { "ngSkipHydration": "true" } }, ngImport: i0 }); }
|
|
53
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: NgDocPageProcessorDirective, isStandalone: true, selector: "[ngDocPageProcessor]", inputs: { html: ["ngDocPageProcessor", "html"] }, outputs: { afterRender: "afterRender" }, host: { attributes: { "ngSkipHydration": "true" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
48
54
|
}
|
|
49
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: NgDocPageProcessorDirective, decorators: [{
|
|
50
56
|
type: Directive,
|
|
@@ -56,5 +62,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
56
62
|
}], propDecorators: { html: [{
|
|
57
63
|
type: Input,
|
|
58
64
|
args: [{ required: true, alias: 'ngDocPageProcessor' }]
|
|
65
|
+
}], afterRender: [{
|
|
66
|
+
type: Output
|
|
59
67
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1wcm9jZXNzb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvcHJvY2Vzc29ycy9wYWdlLXByb2Nlc3Nvci9wYWdlLXByb2Nlc3Nvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBRVQsZ0JBQWdCLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUVuRDs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sMkJBQTJCO0lBTHhDO1FBT0MsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUdsQixnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTNELGVBQVUsR0FDVCxNQUFNLENBQXFDLHFCQUFxQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdGLHFCQUFnQixHQUNmLE1BQU0sQ0FBcUMsNEJBQTRCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDNUYsRUFBRSxDQUFDO1FBRWUsZUFBVSxHQUE0QixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQscUJBQWdCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlELGFBQVEsR0FBYSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFjLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQXNEM0Q7SUFwREEsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFpQjtRQUNsQyxJQUFJLElBQUksRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN4QjtJQUNGLENBQUM7SUFFRCxRQUFRO1FBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVPLE9BQU8sQ0FBSSxTQUFnQztRQUNsRCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDckYsQ0FBQyxXQUFvQixFQUFFLEVBQUU7WUFDeEIseUZBQXlGO1lBQ3pGLElBQUksV0FBVyxDQUFDLFVBQVUsRUFBRTtnQkFDM0IsTUFBTSxjQUFjLEdBQ25CLENBQUMsU0FBUyxDQUFDLGFBQWEsSUFBSSxTQUFTLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2hGLFdBQVcsQ0FBQztnQkFDYixNQUFNLE9BQU8sR0FBNkIsU0FBUyxDQUFDLGNBQWMsQ0FDakUsV0FBVyxFQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUM3QixDQUFDO2dCQUVGLG1CQUFtQjtnQkFDbkIsTUFBTSxZQUFZLEdBQW9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQzFFLFNBQVMsQ0FBQyxTQUFTLEVBQ25CO29CQUNDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxPQUFPO29CQUNqQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7aUJBQ3ZCLENBQ0QsQ0FBQztnQkFFRix3QkFBd0I7Z0JBQ3hCLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtvQkFDbkIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQ2pDLENBQUMsR0FBWSxFQUFFLEVBQUUsQ0FDaEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQWEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzVFLENBQUM7aUJBQ0Y7Z0JBRUQsMkNBQTJDO2dCQUMzQyxjQUFjLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FDdEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQ25DLGNBQWMsQ0FDZCxDQUFDO2dCQUVGLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUM5QztRQUNGLENBQUMsQ0FDRCxDQUFDO0lBQ0gsQ0FBQzs4R0FyRVcsMkJBQTJCO2tHQUEzQiwyQkFBMkI7OzJGQUEzQiwyQkFBMkI7a0JBTHZDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUU7aUJBQ2pDOzhCQUdBLElBQUk7c0JBREgsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFO2dCQUl0RCxXQUFXO3NCQURWLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDb21wb25lbnRSZWYsXG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRpbmplY3QsXG5cdEluamVjdG9yLFxuXHRJbnB1dCxcblx0T25DaGFuZ2VzLFxuXHRPbkluaXQsXG5cdE91dHB1dCxcblx0UmVuZGVyZXIyLFxuXHRTaW1wbGVDaGFuZ2VzLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRG9jUGFnZVByb2Nlc3NvciwgTmdEb2NQcm9jZXNzb3JPcHRpb25zIH0gZnJvbSAnQG5nLWRvYy9hcHAvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOR19ET0NfUEFHRV9DVVNUT01fUFJPQ0VTU09SLCBOR19ET0NfUEFHRV9QUk9DRVNTT1IgfSBmcm9tICdAbmctZG9jL2FwcC90b2tlbnMnO1xuaW1wb3J0IHsgYXNBcnJheSwgb2JqZWN0S2V5cyB9IGZyb20gJ0BuZy1kb2MvY29yZSc7XG5cbi8qKlxuICogQmFzZSBwcm9jZXNzb3IgY2xhc3MgdG8gY3JlYXRlIGEgcHJvY2Vzc29yIGRpcmVjdGl2ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byByZXBsYWNlXG4gKiBodG1sIG5vZGVzIHdpdGggYW4gQW5ndWxhciBjb21wb25lbnQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tuZ0RvY1BhZ2VQcm9jZXNzb3JdJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aG9zdDogeyBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZ0RvY1BhZ2VQcm9jZXNzb3JEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG5cdEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlLCBhbGlhczogJ25nRG9jUGFnZVByb2Nlc3NvcicgfSlcblx0aHRtbDogc3RyaW5nID0gJyc7XG5cblx0QE91dHB1dCgpXG5cdGFmdGVyUmVuZGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblx0cHJvY2Vzc29yczogQXJyYXk8TmdEb2NQYWdlUHJvY2Vzc29yPHVua25vd24+PiA9XG5cdFx0aW5qZWN0PEFycmF5PE5nRG9jUGFnZVByb2Nlc3Nvcjx1bmtub3duPj4+KE5HX0RPQ19QQUdFX1BST0NFU1NPUiwgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyBbXTtcblx0Y3VzdG9tUHJvY2Vzc29yczogQXJyYXk8TmdEb2NQYWdlUHJvY2Vzc29yPHVua25vd24+PiA9XG5cdFx0aW5qZWN0PEFycmF5PE5nRG9jUGFnZVByb2Nlc3Nvcjx1bmtub3duPj4+KE5HX0RPQ19QQUdFX0NVU1RPTV9QUk9DRVNTT1IsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz9cblx0XHRbXTtcblxuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG5cdHByb3RlY3RlZCByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuXHRuZ09uQ2hhbmdlcyh7IGh0bWwgfTogU2ltcGxlQ2hhbmdlcykge1xuXHRcdGlmIChodG1sKSB7XG5cdFx0XHR0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaW5uZXJIVE1MJywgdGhpcy5odG1sKTtcblx0XHRcdHRoaXMuYWZ0ZXJSZW5kZXIuZW1pdCgpO1xuXHRcdH1cblx0fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdGFzQXJyYXkodGhpcy5wcm9jZXNzb3JzLCB0aGlzLmN1c3RvbVByb2Nlc3NvcnMpLmZvckVhY2godGhpcy5wcm9jZXNzLmJpbmQodGhpcykpO1xuXHR9XG5cblx0cHJpdmF0ZSBwcm9jZXNzPFQ+KHByb2Nlc3NvcjogTmdEb2NQYWdlUHJvY2Vzc29yPFQ+KTogdm9pZCB7XG5cdFx0QXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHByb2Nlc3Nvci5zZWxlY3RvcikpLmZvckVhY2goXG5cdFx0XHQoZWxlbWVudE5vZGU6IEVsZW1lbnQpID0+IHtcblx0XHRcdFx0Ly8gY2hlY2sgaWYgZWxlbWVudCBub2RlIGhhcyBhIHBhcmVudCBub2RlIGJlY2F1c2UgaXQgY2FuIGJlIHJlbW92ZWQgYnkgYW5vdGhlciBwcm9jZXNzb3Jcblx0XHRcdFx0aWYgKGVsZW1lbnROb2RlLnBhcmVudE5vZGUpIHtcblx0XHRcdFx0XHRjb25zdCByZXBsYWNlRWxlbWVudDogRWxlbWVudCA9XG5cdFx0XHRcdFx0XHQocHJvY2Vzc29yLm5vZGVUb1JlcGxhY2UgJiYgcHJvY2Vzc29yLm5vZGVUb1JlcGxhY2UoZWxlbWVudE5vZGUsIHRoaXMuaW5qZWN0b3IpKSA/P1xuXHRcdFx0XHRcdFx0ZWxlbWVudE5vZGU7XG5cdFx0XHRcdFx0Y29uc3Qgb3B0aW9uczogTmdEb2NQcm9jZXNzb3JPcHRpb25zPFQ+ID0gcHJvY2Vzc29yLmV4dHJhY3RPcHRpb25zKFxuXHRcdFx0XHRcdFx0ZWxlbWVudE5vZGUsXG5cdFx0XHRcdFx0XHR0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcblx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0Ly8gY3JlYXRlIGNvbXBvbmVudFxuXHRcdFx0XHRcdGNvbnN0IGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChcblx0XHRcdFx0XHRcdHByb2Nlc3Nvci5jb21wb25lbnQsXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHByb2plY3RhYmxlTm9kZXM6IG9wdGlvbnMuY29udGVudCxcblx0XHRcdFx0XHRcdFx0aW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHQvLyBzZXQgY29tcG9uZW50IG9wdGlvbnNcblx0XHRcdFx0XHRpZiAob3B0aW9ucy5pbnB1dHMpIHtcblx0XHRcdFx0XHRcdG9iamVjdEtleXMob3B0aW9ucy5pbnB1dHMpLmZvckVhY2goXG5cdFx0XHRcdFx0XHRcdChrZXk6IGtleW9mIFQpID0+XG5cdFx0XHRcdFx0XHRcdFx0b3B0aW9ucy5pbnB1dHMgJiYgY29tcG9uZW50UmVmLnNldElucHV0KGtleSBhcyBzdHJpbmcsIG9wdGlvbnMuaW5wdXRzW2tleV0pLFxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyByZXBsYWNlIGVsZW1lbnQgbm9kZSB3aXRoIGNvbXBvbmVudCBub2RlXG5cdFx0XHRcdFx0cmVwbGFjZUVsZW1lbnQucGFyZW50Tm9kZT8ucmVwbGFjZUNoaWxkKFxuXHRcdFx0XHRcdFx0Y29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdFx0XHRyZXBsYWNlRWxlbWVudCxcblx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0Y29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -24,7 +24,7 @@ class NgDocCodeComponent {
|
|
|
24
24
|
this.clipboard.copy(this.codeElement?.textContent ?? '');
|
|
25
25
|
}
|
|
26
26
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: NgDocCodeComponent, deps: [{ token: i0.ElementRef }, { token: i1.Clipboard }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.7", type: NgDocCodeComponent, isStandalone: true, selector: "ng-doc-code", inputs: { html: "html", copyButton: "copyButton", name: "name", icon: "icon", lineNumbers: "lineNumbers" }, host: { properties: { "attr.data-ng-doc-has-header": "this.hasHeader" } }, ngImport: i0, template: "<div class=\"ng-doc-code-header\" *ngIf=\"hasHeader\">\n\t<span class=\"ng-doc-code-file-name\" ng-doc-text>\n\t\t<ng-doc-icon [customIcon]=\"icon\" *ngIf=\"icon\"></ng-doc-icon>\n\t\t{{ name }}\n\t</span>\n</div>\n<div class=\"ng-doc-code-body\">\n\t@if (html) {\n\t<div class=\"ng-doc-code-wrapper\" [ngDocPageProcessor]=\"html\"></div>\n\t} @else {\n\t<div class=\"ng-doc-code-wrapper\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t}\n\n\t<button\n\t\tclass=\"ng-doc-copy-button\"\n\t\tng-doc-button-icon\n\t\t*ngIf=\"copyButton\"\n\t\t(click)=\"copyCode(); tooltipText = 'Copied!'\"\n\t\t[ngDocTooltip]=\"tooltipContent\"\n\t\t(mouseenter)=\"tooltipText = 'Copy to clipboard'\">\n\t\t<ng-template #tooltipContent>\n\t\t\t<ng-doc-smooth-resize [trigger]=\"tooltipText\">\n\t\t\t\t{{ tooltipText }}\n\t\t\t</ng-doc-smooth-resize>\n\t\t</ng-template>\n\t\t<ng-doc-icon icon=\"copy\"></ng-doc-icon>\n\t</button>\n</div>\n", styles: [":host{position:relative;display:block;margin:var(--ng-doc-code-margin)}:host:hover .ng-doc-copy-button{opacity:1}:host[data-ng-doc-has-header=true]{--ng-doc-code-border-radius: 0 0 var(--ng-doc-base-gutter) var(--ng-doc-base-gutter);--ng-doc-code-shadow: none}:host .ng-doc-code-wrapper{--ng-doc-code-margin: 0;--ng-doc-code-border: none}:host .ng-doc-code-header{display:flex;align-items:center;padding:var(--ng-doc-base-gutter) calc(var(--ng-doc-base-gutter) * 2);background:var(--ng-doc-code-header-background, var(--ng-doc-base-2));border-radius:var(--ng-doc-base-gutter) var(--ng-doc-base-gutter) 0 0;border-top:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color));border-left:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color));border-right:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color))}:host .ng-doc-code-header .ng-doc-code-file-name{--ng-doc-text: var(--ng-doc-code-header-color);--ng-doc-font-weight: 600;--ng-doc-font-size: 13px}:host .ng-doc-code-header .ng-doc-code-file-name ng-doc-icon{margin-right:calc(var(--ng-doc-base-gutter) / 2)}:host .ng-doc-code-body{position:relative;height:100%;border-radius:var(--ng-doc-code-border-radius, var(--ng-doc-base-gutter));border:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color))}:host .ng-doc-copy-button{position:absolute;top:var(--ng-doc-base-gutter);right:var(--ng-doc-base-gutter);transition:var(--ng-doc-transition);opacity:0;--ng-doc-icon-color: var(--ng-doc-text-muted);--ng-doc-button-background: transparent;--ng-doc-button-hover-background: var( --ng-doc-code-copy-button-hover-background, var(--ng-doc-base-2) );--ng-doc-button-active-background: var( --ng-doc-code-copy-button-active-background, var(--ng-doc-base-3) )}:host .ng-doc-code-wrapper{height:100%}:host ::ng-deep pre{display:flex;margin:var(--ng-doc-code-margin);border-radius:var(--ng-doc-code-border-radius, var(--ng-doc-base-gutter));border:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color));overflow:hidden;height:100%}:host ::ng-deep pre code{display:block;padding:calc(var(--ng-doc-base-gutter) * 2);width:100%;font-family:var(--ng-doc-code-font);font-size:var(--ng-doc-code-font-size);line-height:var(--ng-doc-code-line-height);max-height:var(--ng-doc-code-max-height);overflow:auto;height:100%}:host ::ng-deep pre code.code-lines{display:grid;padding:calc(var(--ng-doc-base-gutter) * 2) 0}:host ::ng-deep pre code .line{padding:0 calc(var(--ng-doc-base-gutter) * 2)}:host ::ng-deep pre code .line.highlighted{position:relative}:host ::ng-deep pre code .line.highlighted:before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--ng-doc-code-highlight-color);opacity:.05;border-radius:inherit;overflow:hidden;pointer-events:none}:host ::ng-deep pre code .line.highlighted:after{content:\"\";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--ng-doc-code-highlight-color);opacity:.8}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "component", type: NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocSmoothResizeComponent, selector: "ng-doc-smooth-resize", inputs: ["trigger", "animateOpacity"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "directive", type: NgDocPageProcessorDirective, selector: "[ngDocPageProcessor]", inputs: ["ngDocPageProcessor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.7", type: NgDocCodeComponent, isStandalone: true, selector: "ng-doc-code", inputs: { html: "html", copyButton: "copyButton", name: "name", icon: "icon", lineNumbers: "lineNumbers" }, host: { properties: { "attr.data-ng-doc-has-header": "this.hasHeader" } }, ngImport: i0, template: "<div class=\"ng-doc-code-header\" *ngIf=\"hasHeader\">\n\t<span class=\"ng-doc-code-file-name\" ng-doc-text>\n\t\t<ng-doc-icon [customIcon]=\"icon\" *ngIf=\"icon\"></ng-doc-icon>\n\t\t{{ name }}\n\t</span>\n</div>\n<div class=\"ng-doc-code-body\">\n\t@if (html) {\n\t<div class=\"ng-doc-code-wrapper\" [ngDocPageProcessor]=\"html\"></div>\n\t} @else {\n\t<div class=\"ng-doc-code-wrapper\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t}\n\n\t<button\n\t\tclass=\"ng-doc-copy-button\"\n\t\tng-doc-button-icon\n\t\t*ngIf=\"copyButton\"\n\t\t(click)=\"copyCode(); tooltipText = 'Copied!'\"\n\t\t[ngDocTooltip]=\"tooltipContent\"\n\t\t(mouseenter)=\"tooltipText = 'Copy to clipboard'\">\n\t\t<ng-template #tooltipContent>\n\t\t\t<ng-doc-smooth-resize [trigger]=\"tooltipText\">\n\t\t\t\t{{ tooltipText }}\n\t\t\t</ng-doc-smooth-resize>\n\t\t</ng-template>\n\t\t<ng-doc-icon icon=\"copy\"></ng-doc-icon>\n\t</button>\n</div>\n", styles: [":host{position:relative;display:block;margin:var(--ng-doc-code-margin)}:host:hover .ng-doc-copy-button{opacity:1}:host[data-ng-doc-has-header=true]{--ng-doc-code-border-radius: 0 0 var(--ng-doc-base-gutter) var(--ng-doc-base-gutter);--ng-doc-code-shadow: none}:host .ng-doc-code-wrapper{--ng-doc-code-margin: 0;--ng-doc-code-border: none}:host .ng-doc-code-header{display:flex;align-items:center;padding:var(--ng-doc-base-gutter) calc(var(--ng-doc-base-gutter) * 2);background:var(--ng-doc-code-header-background, var(--ng-doc-base-2));border-radius:var(--ng-doc-base-gutter) var(--ng-doc-base-gutter) 0 0;border-top:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color));border-left:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color));border-right:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color))}:host .ng-doc-code-header .ng-doc-code-file-name{--ng-doc-text: var(--ng-doc-code-header-color);--ng-doc-font-weight: 600;--ng-doc-font-size: 13px}:host .ng-doc-code-header .ng-doc-code-file-name ng-doc-icon{margin-right:calc(var(--ng-doc-base-gutter) / 2)}:host .ng-doc-code-body{position:relative;height:100%;border-radius:var(--ng-doc-code-border-radius, var(--ng-doc-base-gutter));border:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color))}:host .ng-doc-copy-button{position:absolute;top:var(--ng-doc-base-gutter);right:var(--ng-doc-base-gutter);transition:var(--ng-doc-transition);opacity:0;--ng-doc-icon-color: var(--ng-doc-text-muted);--ng-doc-button-background: transparent;--ng-doc-button-hover-background: var( --ng-doc-code-copy-button-hover-background, var(--ng-doc-base-2) );--ng-doc-button-active-background: var( --ng-doc-code-copy-button-active-background, var(--ng-doc-base-3) )}:host .ng-doc-code-wrapper{height:100%}:host ::ng-deep pre{display:flex;margin:var(--ng-doc-code-margin);border-radius:var(--ng-doc-code-border-radius, var(--ng-doc-base-gutter));border:var(--ng-doc-code-border, 1px solid var(--ng-doc-border-color));overflow:hidden;height:100%}:host ::ng-deep pre code{display:block;padding:calc(var(--ng-doc-base-gutter) * 2);width:100%;font-family:var(--ng-doc-code-font);font-size:var(--ng-doc-code-font-size);line-height:var(--ng-doc-code-line-height);max-height:var(--ng-doc-code-max-height);overflow:auto;height:100%}:host ::ng-deep pre code.code-lines{display:grid;padding:calc(var(--ng-doc-base-gutter) * 2) 0}:host ::ng-deep pre code .line{padding:0 calc(var(--ng-doc-base-gutter) * 2)}:host ::ng-deep pre code .line.highlighted{position:relative}:host ::ng-deep pre code .line.highlighted:before{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--ng-doc-code-highlight-color);opacity:.05;border-radius:inherit;overflow:hidden;pointer-events:none}:host ::ng-deep pre code .line.highlighted:after{content:\"\";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--ng-doc-code-highlight-color);opacity:.8}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "component", type: NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocSmoothResizeComponent, selector: "ng-doc-smooth-resize", inputs: ["trigger", "animateOpacity"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "directive", type: NgDocPageProcessorDirective, selector: "[ngDocPageProcessor]", inputs: ["ngDocPageProcessor"], outputs: ["afterRender"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28
28
|
}
|
|
29
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: NgDocCodeComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-app-components-code.mjs","sources":["../../../../libs/app/components/code/code.component.ts","../../../../libs/app/components/code/code.component.html","../../../../libs/app/components/code/ng-doc-app-components-code.ts"],"sourcesContent":["import { Clipboard } from '@angular/cdk/clipboard';\nimport { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input } from '@angular/core';\nimport { NgDocPageProcessorDirective } from '@ng-doc/app/processors/page-processor';\nimport {\n\tNgDocButtonIconComponent,\n\tNgDocIconComponent,\n\tNgDocSmoothResizeComponent,\n\tNgDocTextComponent,\n\tNgDocTooltipDirective,\n} from '@ng-doc/ui-kit';\n\n@Component({\n\tselector: 'ng-doc-code',\n\ttemplateUrl: './code.component.html',\n\tstyleUrls: ['./code.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgIf,\n\t\tNgDocTextComponent,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocTooltipDirective,\n\t\tNgDocSmoothResizeComponent,\n\t\tNgDocIconComponent,\n\t\tNgDocPageProcessorDirective,\n\t],\n})\nexport class NgDocCodeComponent {\n\t@Input()\n\thtml: string = '';\n\n\t@Input()\n\tcopyButton: boolean = true;\n\n\t@Input()\n\tname?: string;\n\n\t@Input()\n\ticon?: string;\n\n\t@Input()\n\tlineNumbers: boolean = false;\n\n\ttooltipText: string = '';\n\n\tconstructor(private elementRef: ElementRef<HTMLElement>, private readonly clipboard: Clipboard) {}\n\n\t@HostBinding('attr.data-ng-doc-has-header')\n\tget hasHeader(): boolean {\n\t\treturn !!this.name || !!this.icon;\n\t}\n\n\tget codeElement(): HTMLElement | null {\n\t\treturn this.elementRef?.nativeElement.querySelector('code') ?? null;\n\t}\n\n\tcopyCode(): void {\n\t\tthis.clipboard.copy(this.codeElement?.textContent ?? '');\n\t}\n}\n","<div class=\"ng-doc-code-header\" *ngIf=\"hasHeader\">\n\t<span class=\"ng-doc-code-file-name\" ng-doc-text>\n\t\t<ng-doc-icon [customIcon]=\"icon\" *ngIf=\"icon\"></ng-doc-icon>\n\t\t{{ name }}\n\t</span>\n</div>\n<div class=\"ng-doc-code-body\">\n\t@if (html) {\n\t<div class=\"ng-doc-code-wrapper\" [ngDocPageProcessor]=\"html\"></div>\n\t} @else {\n\t<div class=\"ng-doc-code-wrapper\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t}\n\n\t<button\n\t\tclass=\"ng-doc-copy-button\"\n\t\tng-doc-button-icon\n\t\t*ngIf=\"copyButton\"\n\t\t(click)=\"copyCode(); tooltipText = 'Copied!'\"\n\t\t[ngDocTooltip]=\"tooltipContent\"\n\t\t(mouseenter)=\"tooltipText = 'Copy to clipboard'\">\n\t\t<ng-template #tooltipContent>\n\t\t\t<ng-doc-smooth-resize [trigger]=\"tooltipText\">\n\t\t\t\t{{ tooltipText }}\n\t\t\t</ng-doc-smooth-resize>\n\t\t</ng-template>\n\t\t<ng-doc-icon icon=\"copy\"></ng-doc-icon>\n\t</button>\n</div>\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-components-code.mjs","sources":["../../../../libs/app/components/code/code.component.ts","../../../../libs/app/components/code/code.component.html","../../../../libs/app/components/code/ng-doc-app-components-code.ts"],"sourcesContent":["import { Clipboard } from '@angular/cdk/clipboard';\nimport { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input } from '@angular/core';\nimport { NgDocPageProcessorDirective } from '@ng-doc/app/processors/page-processor';\nimport {\n\tNgDocButtonIconComponent,\n\tNgDocIconComponent,\n\tNgDocSmoothResizeComponent,\n\tNgDocTextComponent,\n\tNgDocTooltipDirective,\n} from '@ng-doc/ui-kit';\n\n@Component({\n\tselector: 'ng-doc-code',\n\ttemplateUrl: './code.component.html',\n\tstyleUrls: ['./code.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgIf,\n\t\tNgDocTextComponent,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocTooltipDirective,\n\t\tNgDocSmoothResizeComponent,\n\t\tNgDocIconComponent,\n\t\tNgDocPageProcessorDirective,\n\t],\n})\nexport class NgDocCodeComponent {\n\t@Input()\n\thtml: string = '';\n\n\t@Input()\n\tcopyButton: boolean = true;\n\n\t@Input()\n\tname?: string;\n\n\t@Input()\n\ticon?: string;\n\n\t@Input()\n\tlineNumbers: boolean = false;\n\n\ttooltipText: string = '';\n\n\tconstructor(private elementRef: ElementRef<HTMLElement>, private readonly clipboard: Clipboard) {}\n\n\t@HostBinding('attr.data-ng-doc-has-header')\n\tget hasHeader(): boolean {\n\t\treturn !!this.name || !!this.icon;\n\t}\n\n\tget codeElement(): HTMLElement | null {\n\t\treturn this.elementRef?.nativeElement.querySelector('code') ?? null;\n\t}\n\n\tcopyCode(): void {\n\t\tthis.clipboard.copy(this.codeElement?.textContent ?? '');\n\t}\n}\n","<div class=\"ng-doc-code-header\" *ngIf=\"hasHeader\">\n\t<span class=\"ng-doc-code-file-name\" ng-doc-text>\n\t\t<ng-doc-icon [customIcon]=\"icon\" *ngIf=\"icon\"></ng-doc-icon>\n\t\t{{ name }}\n\t</span>\n</div>\n<div class=\"ng-doc-code-body\">\n\t@if (html) {\n\t<div class=\"ng-doc-code-wrapper\" [ngDocPageProcessor]=\"html\"></div>\n\t} @else {\n\t<div class=\"ng-doc-code-wrapper\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t}\n\n\t<button\n\t\tclass=\"ng-doc-copy-button\"\n\t\tng-doc-button-icon\n\t\t*ngIf=\"copyButton\"\n\t\t(click)=\"copyCode(); tooltipText = 'Copied!'\"\n\t\t[ngDocTooltip]=\"tooltipContent\"\n\t\t(mouseenter)=\"tooltipText = 'Copy to clipboard'\">\n\t\t<ng-template #tooltipContent>\n\t\t\t<ng-doc-smooth-resize [trigger]=\"tooltipText\">\n\t\t\t\t{{ tooltipText }}\n\t\t\t</ng-doc-smooth-resize>\n\t\t</ng-template>\n\t\t<ng-doc-icon icon=\"copy\"></ng-doc-icon>\n\t</button>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MA4Ba,kBAAkB,CAAA;IAkB9B,WAAoB,CAAA,UAAmC,EAAmB,SAAoB,EAAA;QAA1E,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QAAmB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAhB9F,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAGlB,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAS3B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAE7B,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;KAEyE;AAElG,IAAA,IACI,SAAS,GAAA;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;KAClC;AAED,IAAA,IAAI,WAAW,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;KACpE;IAED,QAAQ,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;KACzD;8GA/BW,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EC5B/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,25BA8BA,EDXE,MAAA,EAAA,CAAA,m4FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FACJ,kBAAkB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,wBAAwB,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,qBAAqB,EACrB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,WAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,0BAA0B,EAC1B,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,gGAClB,2BAA2B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAGhB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAhB9B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,mBAGN,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA;wBACR,IAAI;wBACJ,kBAAkB;wBAClB,wBAAwB;wBACxB,qBAAqB;wBACrB,0BAA0B;wBAC1B,kBAAkB;wBAClB,2BAA2B;AAC3B,qBAAA,EAAA,QAAA,EAAA,25BAAA,EAAA,MAAA,EAAA,CAAA,m4FAAA,CAAA,EAAA,CAAA;uGAID,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,KAAK;gBAIN,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAQF,SAAS,EAAA,CAAA;sBADZ,WAAW;uBAAC,6BAA6B,CAAA;;;AEhD3C;;AAEG;;;;"}
|
|
@@ -38,6 +38,8 @@ let NgDocPageComponent = class NgDocPageComponent {
|
|
|
38
38
|
createComponent(this.pageNavigation, this.skeleton.navigation, this.navigationInputs());
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
+
}
|
|
42
|
+
createToc() {
|
|
41
43
|
if (this.pageToc && this.skeleton.toc) {
|
|
42
44
|
createComponent(this.pageToc, this.skeleton.toc, {
|
|
43
45
|
tableOfContent: generateToc(this.pageContainer.nativeElement) ?? [],
|
|
@@ -66,7 +68,7 @@ let NgDocPageComponent = class NgDocPageComponent {
|
|
|
66
68
|
provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
|
|
67
69
|
provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
|
|
68
70
|
provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
|
|
69
|
-
], viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, read: ElementRef, static: true }, { propertyName: "pageBreadcrumbs", first: true, predicate: ["pageBreadcrumbs"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageNavigation", first: true, predicate: ["pageNavigation"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageToc", first: true, predicate: ["pageToc"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "childOutlet", first: true, predicate: ["childOutlet"], descendants: true }], ngImport: i0, template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div
|
|
71
|
+
], viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, read: ElementRef, static: true }, { propertyName: "pageBreadcrumbs", first: true, predicate: ["pageBreadcrumbs"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageNavigation", first: true, predicate: ["pageNavigation"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "pageToc", first: true, predicate: ["pageToc"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "childOutlet", first: true, predicate: ["childOutlet"], descendants: true }], ngImport: i0, template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[ngDocPageProcessor]=\"rootPage.pageContent\"\n\t\t(afterRender)=\"createToc()\"\n\t\t#pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-doc-dialog-outlet\n\t*ngIf=\"!rootPage.page?.disableFullscreenRoutes\"\n\t[config]=\"{ width: '100vw', height: '100vh' }\">\n\t<div class=\"ng-doc-fullscreen-wrapper\">\n\t\t<router-outlet></router-outlet>\n\t</div>\n</ng-doc-dialog-outlet>\n\n<ng-container #pageToc></ng-container>\n", styles: [":host{display:flex;--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 5)}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;overflow:hidden}:host article .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}.ng-doc-fullscreen-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "directive", type: NgDocPageProcessorDirective, selector: "[ngDocPageProcessor]", inputs: ["ngDocPageProcessor"], outputs: ["afterRender"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: DialogOutletComponent, selector: "ng-doc-dialog-outlet", inputs: ["config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
70
72
|
};
|
|
71
73
|
NgDocPageComponent = __decorate([
|
|
72
74
|
UntilDestroy()
|
|
@@ -93,7 +95,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
93
95
|
provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
|
|
94
96
|
provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
|
|
95
97
|
provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
|
|
96
|
-
], host: { ngSkipHydration: 'true' }, template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div
|
|
98
|
+
], host: { ngSkipHydration: 'true' }, template: "<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[ngDocPageProcessor]=\"rootPage.pageContent\"\n\t\t(afterRender)=\"createToc()\"\n\t\t#pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-doc-dialog-outlet\n\t*ngIf=\"!rootPage.page?.disableFullscreenRoutes\"\n\t[config]=\"{ width: '100vw', height: '100vh' }\">\n\t<div class=\"ng-doc-fullscreen-wrapper\">\n\t\t<router-outlet></router-outlet>\n\t</div>\n</ng-doc-dialog-outlet>\n\n<ng-container #pageToc></ng-container>\n", styles: [":host{display:flex;--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 5)}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;overflow:hidden}:host article .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}.ng-doc-fullscreen-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"] }]
|
|
97
99
|
}], propDecorators: { pageContainer: [{
|
|
98
100
|
type: ViewChild,
|
|
99
101
|
args: ['pageContainer', { read: ElementRef, static: true }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-app-components-page.mjs","sources":["../../../../libs/app/components/page/page.component.ts","../../../../libs/app/components/page/page.component.html","../../../../libs/app/components/page/ng-doc-app-components-page.ts"],"sourcesContent":["import { NgComponentOutlet, NgIf } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tinject,\n\tOnInit,\n\tRenderer2,\n\tTemplateRef,\n\tViewChild,\n\tViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterOutlet, UrlTree } from '@angular/router';\nimport { NgDocRootPage } from '@ng-doc/app/classes/root-page';\nimport { NgDocBreadcrumbComponent } from '@ng-doc/app/components/breadcrumb';\nimport { NgDocTocComponent } from '@ng-doc/app/components/toc';\nimport { createComponent, generateToc } from '@ng-doc/app/helpers';\nimport {\n\tNgDocContext,\n\tNgDocNavigation,\n\tNgDocPageNavigation,\n\tNgDocPageSkeleton,\n} from '@ng-doc/app/interfaces';\nimport { NgDocPageProcessorDirective } from '@ng-doc/app/processors';\nimport { provideTypeControl } from '@ng-doc/app/providers/type-control';\nimport { NG_DOC_CONTEXT, NG_DOC_PAGE_SKELETON } from '@ng-doc/app/tokens';\nimport {\n\tNgDocBooleanControlComponent,\n\tNgDocNumberControlComponent,\n\tNgDocStringControlComponent,\n\tNgDocTypeAliasControlComponent,\n} from '@ng-doc/app/type-controls';\nimport { isPresent } from '@ng-doc/core';\nimport {\n\tDialogOutletComponent,\n\tNgDocButtonIconComponent,\n\tNgDocIconComponent,\n\tNgDocMediaQueryDirective,\n\tNgDocTextComponent,\n\tNgDocTextLeftDirective,\n\tNgDocTextRightDirective,\n\tNgDocTooltipDirective,\n} from '@ng-doc/ui-kit';\nimport { UntilDestroy } from '@ngneat/until-destroy';\n\n@Component({\n\tselector: 'ng-doc-page',\n\ttemplateUrl: './page.component.html',\n\tstyleUrls: ['./page.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgIf,\n\t\tNgDocBreadcrumbComponent,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocTooltipDirective,\n\t\tNgDocIconComponent,\n\t\tNgDocTextComponent,\n\t\tNgDocTextLeftDirective,\n\t\tNgDocTextRightDirective,\n\t\tNgDocMediaQueryDirective,\n\t\tNgDocTocComponent,\n\t\tNgDocPageProcessorDirective,\n\t\tNgComponentOutlet,\n\t\tRouterOutlet,\n\t\tDialogOutletComponent,\n\t],\n\tproviders: [\n\t\tprovideTypeControl('NgDocTypeAlias', NgDocTypeAliasControlComponent, { order: 10 }),\n\t\tprovideTypeControl('string', NgDocStringControlComponent, { order: 20 }),\n\t\tprovideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),\n\t\tprovideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),\n\t],\n\thost: { ngSkipHydration: 'true' },\n})\n@UntilDestroy()\nexport class NgDocPageComponent implements OnInit {\n\t@ViewChild('pageContainer', { read: ElementRef, static: true })\n\tpageContainer!: ElementRef<HTMLElement>;\n\n\t@ViewChild('pageBreadcrumbs', { read: ViewContainerRef, static: true })\n\tpageBreadcrumbs!: ViewContainerRef;\n\n\t@ViewChild('pageNavigation', { read: ViewContainerRef, static: true })\n\tpageNavigation!: ViewContainerRef;\n\n\t@ViewChild('pageToc', { read: ViewContainerRef, static: true })\n\tpageToc?: ViewContainerRef;\n\n\t@ViewChild('childOutlet')\n\tchildOutlet?: TemplateRef<never>;\n\n\tprotected rootPage: NgDocRootPage = inject(NgDocRootPage);\n\tprotected skeleton: NgDocPageSkeleton = inject(NG_DOC_PAGE_SKELETON);\n\tprotected context: NgDocContext = inject(NG_DOC_CONTEXT);\n\tprotected renderer: Renderer2 = inject(Renderer2);\n\tprotected router: Router = inject(Router);\n\n\tprivate breadcrumbs: string[] = inject(ActivatedRoute)\n\t\t.pathFromRoot.filter((route: ActivatedRoute) => !route.snapshot.url.length)\n\t\t.map((route: ActivatedRoute) => route.snapshot.title)\n\t\t.filter(isPresent);\n\n\tngOnInit(): void {\n\t\tif (this.rootPage.pageType === 'guide') {\n\t\t\tif (this.skeleton.breadcrumbs) {\n\t\t\t\tcreateComponent(this.pageBreadcrumbs, this.skeleton.breadcrumbs, {\n\t\t\t\t\tbreadcrumbs: this.breadcrumbs,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.skeleton.navigation) {\n\t\t\t\tcreateComponent(this.pageNavigation, this.skeleton.navigation, this.navigationInputs());\n\t\t\t}\n\t\t}\n\n\t\tif (this.pageToc && this.skeleton.toc) {\n\t\t\tcreateComponent(this.pageToc, this.skeleton.toc, {\n\t\t\t\ttableOfContent: generateToc(this.pageContainer.nativeElement) ?? [],\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate navigationInputs(): NgDocPageNavigation {\n\t\tconst flatItems = (items: NgDocNavigation[]): NgDocNavigation[] =>\n\t\t\titems\n\t\t\t\t.map((item: NgDocNavigation) => [item.children?.length ? flatItems(item.children) : item])\n\t\t\t\t.flat(2);\n\t\tconst flatPages: NgDocNavigation[] = flatItems(this.context.navigation);\n\n\t\treturn {\n\t\t\tprevPage:\n\t\t\t\tflatPages[flatPages.findIndex((item: NgDocNavigation) => this.url === item.route) - 1],\n\t\t\tnextPage:\n\t\t\t\tflatPages[flatPages.findIndex((item: NgDocNavigation) => this.url === item.route) + 1],\n\t\t};\n\t}\n\n\tprivate get url(): string {\n\t\tconst urlTree: UrlTree = this.router.parseUrl(this.router.url);\n\n\t\turlTree.queryParams = {};\n\t\turlTree.fragment = null;\n\n\t\treturn urlTree.toString();\n\t}\n}\n","<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div class=\"ng-doc-page-wrapper\" [ngDocPageProcessor]=\"rootPage.pageContent\" #pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-doc-dialog-outlet\n\t*ngIf=\"!rootPage.page?.disableFullscreenRoutes\"\n\t[config]=\"{ width: '100vw', height: '100vh' }\">\n\t<div class=\"ng-doc-fullscreen-wrapper\">\n\t\t<router-outlet></router-outlet>\n\t</div>\n</ng-doc-dialog-outlet>\n\n<ng-container #pageToc></ng-container>\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-components-page.mjs","sources":["../../../../libs/app/components/page/page.component.ts","../../../../libs/app/components/page/page.component.html","../../../../libs/app/components/page/ng-doc-app-components-page.ts"],"sourcesContent":["import { NgComponentOutlet, NgIf } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tinject,\n\tOnInit,\n\tRenderer2,\n\tTemplateRef,\n\tViewChild,\n\tViewContainerRef,\n} from '@angular/core';\nimport { ActivatedRoute, Router, RouterOutlet, UrlTree } from '@angular/router';\nimport { NgDocRootPage } from '@ng-doc/app/classes/root-page';\nimport { NgDocBreadcrumbComponent } from '@ng-doc/app/components/breadcrumb';\nimport { NgDocTocComponent } from '@ng-doc/app/components/toc';\nimport { createComponent, generateToc } from '@ng-doc/app/helpers';\nimport {\n\tNgDocContext,\n\tNgDocNavigation,\n\tNgDocPageNavigation,\n\tNgDocPageSkeleton,\n} from '@ng-doc/app/interfaces';\nimport { NgDocPageProcessorDirective } from '@ng-doc/app/processors';\nimport { provideTypeControl } from '@ng-doc/app/providers/type-control';\nimport { NG_DOC_CONTEXT, NG_DOC_PAGE_SKELETON } from '@ng-doc/app/tokens';\nimport {\n\tNgDocBooleanControlComponent,\n\tNgDocNumberControlComponent,\n\tNgDocStringControlComponent,\n\tNgDocTypeAliasControlComponent,\n} from '@ng-doc/app/type-controls';\nimport { isPresent } from '@ng-doc/core';\nimport {\n\tDialogOutletComponent,\n\tNgDocButtonIconComponent,\n\tNgDocIconComponent,\n\tNgDocMediaQueryDirective,\n\tNgDocTextComponent,\n\tNgDocTextLeftDirective,\n\tNgDocTextRightDirective,\n\tNgDocTooltipDirective,\n} from '@ng-doc/ui-kit';\nimport { UntilDestroy } from '@ngneat/until-destroy';\n\n@Component({\n\tselector: 'ng-doc-page',\n\ttemplateUrl: './page.component.html',\n\tstyleUrls: ['./page.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tNgIf,\n\t\tNgDocBreadcrumbComponent,\n\t\tNgDocButtonIconComponent,\n\t\tNgDocTooltipDirective,\n\t\tNgDocIconComponent,\n\t\tNgDocTextComponent,\n\t\tNgDocTextLeftDirective,\n\t\tNgDocTextRightDirective,\n\t\tNgDocMediaQueryDirective,\n\t\tNgDocTocComponent,\n\t\tNgDocPageProcessorDirective,\n\t\tNgComponentOutlet,\n\t\tRouterOutlet,\n\t\tDialogOutletComponent,\n\t],\n\tproviders: [\n\t\tprovideTypeControl('NgDocTypeAlias', NgDocTypeAliasControlComponent, { order: 10 }),\n\t\tprovideTypeControl('string', NgDocStringControlComponent, { order: 20 }),\n\t\tprovideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),\n\t\tprovideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),\n\t],\n\thost: { ngSkipHydration: 'true' },\n})\n@UntilDestroy()\nexport class NgDocPageComponent implements OnInit {\n\t@ViewChild('pageContainer', { read: ElementRef, static: true })\n\tpageContainer!: ElementRef<HTMLElement>;\n\n\t@ViewChild('pageBreadcrumbs', { read: ViewContainerRef, static: true })\n\tpageBreadcrumbs!: ViewContainerRef;\n\n\t@ViewChild('pageNavigation', { read: ViewContainerRef, static: true })\n\tpageNavigation!: ViewContainerRef;\n\n\t@ViewChild('pageToc', { read: ViewContainerRef, static: true })\n\tpageToc?: ViewContainerRef;\n\n\t@ViewChild('childOutlet')\n\tchildOutlet?: TemplateRef<never>;\n\n\tprotected rootPage: NgDocRootPage = inject(NgDocRootPage);\n\tprotected skeleton: NgDocPageSkeleton = inject(NG_DOC_PAGE_SKELETON);\n\tprotected context: NgDocContext = inject(NG_DOC_CONTEXT);\n\tprotected renderer: Renderer2 = inject(Renderer2);\n\tprotected router: Router = inject(Router);\n\n\tprivate breadcrumbs: string[] = inject(ActivatedRoute)\n\t\t.pathFromRoot.filter((route: ActivatedRoute) => !route.snapshot.url.length)\n\t\t.map((route: ActivatedRoute) => route.snapshot.title)\n\t\t.filter(isPresent);\n\n\tngOnInit(): void {\n\t\tif (this.rootPage.pageType === 'guide') {\n\t\t\tif (this.skeleton.breadcrumbs) {\n\t\t\t\tcreateComponent(this.pageBreadcrumbs, this.skeleton.breadcrumbs, {\n\t\t\t\t\tbreadcrumbs: this.breadcrumbs,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.skeleton.navigation) {\n\t\t\t\tcreateComponent(this.pageNavigation, this.skeleton.navigation, this.navigationInputs());\n\t\t\t}\n\t\t}\n\t}\n\n\tcreateToc(): void {\n\t\tif (this.pageToc && this.skeleton.toc) {\n\t\t\tcreateComponent(this.pageToc, this.skeleton.toc, {\n\t\t\t\ttableOfContent: generateToc(this.pageContainer.nativeElement) ?? [],\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate navigationInputs(): NgDocPageNavigation {\n\t\tconst flatItems = (items: NgDocNavigation[]): NgDocNavigation[] =>\n\t\t\titems\n\t\t\t\t.map((item: NgDocNavigation) => [item.children?.length ? flatItems(item.children) : item])\n\t\t\t\t.flat(2);\n\t\tconst flatPages: NgDocNavigation[] = flatItems(this.context.navigation);\n\n\t\treturn {\n\t\t\tprevPage:\n\t\t\t\tflatPages[flatPages.findIndex((item: NgDocNavigation) => this.url === item.route) - 1],\n\t\t\tnextPage:\n\t\t\t\tflatPages[flatPages.findIndex((item: NgDocNavigation) => this.url === item.route) + 1],\n\t\t};\n\t}\n\n\tprivate get url(): string {\n\t\tconst urlTree: UrlTree = this.router.parseUrl(this.router.url);\n\n\t\turlTree.queryParams = {};\n\t\turlTree.fragment = null;\n\n\t\treturn urlTree.toString();\n\t}\n}\n","<article>\n\t<ng-container #pageBreadcrumbs></ng-container>\n\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\">\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\">\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[ngDocPageProcessor]=\"rootPage.pageContent\"\n\t\t(afterRender)=\"createToc()\"\n\t\t#pageContainer></div>\n\n\t<ng-container #pageNavigation></ng-container>\n</article>\n\n<ng-doc-dialog-outlet\n\t*ngIf=\"!rootPage.page?.disableFullscreenRoutes\"\n\t[config]=\"{ width: '100vw', height: '100vh' }\">\n\t<div class=\"ng-doc-fullscreen-wrapper\">\n\t\t<router-outlet></router-outlet>\n\t</div>\n</ng-doc-dialog-outlet>\n\n<ng-container #pageToc></ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -72,7 +72,7 @@ let NgDocTocComponent = class NgDocTocComponent {
|
|
|
72
72
|
}), filter(isPresent), debounceTime(20));
|
|
73
73
|
const elementsChanges = this.elements.changes.pipe(map(() => this.activeItem()), filter(isPresent));
|
|
74
74
|
merge(merge(scrollSelection, routerSelection).pipe(distinctUntilChanged()), elementsChanges)
|
|
75
|
-
.pipe(ngDocZoneOptimize(this.ngZone), untilDestroyed(this))
|
|
75
|
+
.pipe(debounceTime(0), ngDocZoneOptimize(this.ngZone), untilDestroyed(this))
|
|
76
76
|
.subscribe(this.select.bind(this));
|
|
77
77
|
}, { phase: AfterRenderPhase.Write });
|
|
78
78
|
}
|
|
@@ -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(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":"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"}
|
|
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":"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"}
|
|
@@ -23,6 +23,7 @@ function asBoolean(value) {
|
|
|
23
23
|
* @param inputs
|
|
24
24
|
*/
|
|
25
25
|
function createComponent(viewContainer, component, inputs) {
|
|
26
|
+
viewContainer.clear();
|
|
26
27
|
const componentRef = viewContainer.createComponent(component);
|
|
27
28
|
if (inputs) {
|
|
28
29
|
Object.entries(inputs).forEach(([key, value]) => {
|
|
@@ -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\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":";;;AAAA;;;AAGG;AACG,SAAU,SAAS,CAAC,KAAc,EAAA;AACvC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC9B,QAAA,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM;AACpC,cAAE,IAAI;AACN,cAAE,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO;AACjC,kBAAE,KAAK;AACP,kBAAE,CAAC,CAAC,KAAK,CAAC;AACX,KAAA;IACD,OAAO,CAAC,CAAC,KAAK,CAAC;AAChB;;ACXA;;;;;AAKG;SACa,eAAe,CAC9B,aAA+B,EAC/B,SAAkB,EAClB,MAAe,EAAA;IAEf,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAE9D,IAAA,IAAI,MAAM,EAAE;AACX,QAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC/C,YAAA,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,KAAA;AACF;;
|
|
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,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, ViewContainerRef, Injector, Renderer2, Directive, Input } from '@angular/core';
|
|
2
|
+
import { EventEmitter, inject, ElementRef, ViewContainerRef, Injector, Renderer2, Directive, Input, Output } from '@angular/core';
|
|
3
3
|
import { NG_DOC_PAGE_PROCESSOR, NG_DOC_PAGE_CUSTOM_PROCESSOR } from '@ng-doc/app/tokens';
|
|
4
4
|
import { asArray, objectKeys } from '@ng-doc/core';
|
|
5
5
|
|
|
@@ -10,6 +10,7 @@ import { asArray, objectKeys } from '@ng-doc/core';
|
|
|
10
10
|
class NgDocPageProcessorDirective {
|
|
11
11
|
constructor() {
|
|
12
12
|
this.html = '';
|
|
13
|
+
this.afterRender = new EventEmitter();
|
|
13
14
|
this.processors = inject(NG_DOC_PAGE_PROCESSOR, { optional: true }) ?? [];
|
|
14
15
|
this.customProcessors = inject(NG_DOC_PAGE_CUSTOM_PROCESSOR, { optional: true }) ??
|
|
15
16
|
[];
|
|
@@ -18,8 +19,13 @@ class NgDocPageProcessorDirective {
|
|
|
18
19
|
this.injector = inject(Injector);
|
|
19
20
|
this.renderer = inject(Renderer2);
|
|
20
21
|
}
|
|
22
|
+
ngOnChanges({ html }) {
|
|
23
|
+
if (html) {
|
|
24
|
+
this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', this.html);
|
|
25
|
+
this.afterRender.emit();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
21
28
|
ngOnInit() {
|
|
22
|
-
this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', this.html);
|
|
23
29
|
asArray(this.processors, this.customProcessors).forEach(this.process.bind(this));
|
|
24
30
|
}
|
|
25
31
|
process(processor) {
|
|
@@ -45,7 +51,7 @@ class NgDocPageProcessorDirective {
|
|
|
45
51
|
});
|
|
46
52
|
}
|
|
47
53
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: NgDocPageProcessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
48
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: NgDocPageProcessorDirective, isStandalone: true, selector: "[ngDocPageProcessor]", inputs: { html: ["ngDocPageProcessor", "html"] }, host: { attributes: { "ngSkipHydration": "true" } }, ngImport: i0 }); }
|
|
54
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: NgDocPageProcessorDirective, isStandalone: true, selector: "[ngDocPageProcessor]", inputs: { html: ["ngDocPageProcessor", "html"] }, outputs: { afterRender: "afterRender" }, host: { attributes: { "ngSkipHydration": "true" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
49
55
|
}
|
|
50
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: NgDocPageProcessorDirective, decorators: [{
|
|
51
57
|
type: Directive,
|
|
@@ -57,6 +63,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
57
63
|
}], propDecorators: { html: [{
|
|
58
64
|
type: Input,
|
|
59
65
|
args: [{ required: true, alias: 'ngDocPageProcessor' }]
|
|
66
|
+
}], afterRender: [{
|
|
67
|
+
type: Output
|
|
60
68
|
}] } });
|
|
61
69
|
|
|
62
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-doc-app-processors-page-processor.mjs","sources":["../../../../libs/app/processors/page-processor/page-processor.directive.ts","../../../../libs/app/processors/page-processor/ng-doc-app-processors-page-processor.ts"],"sourcesContent":["import {\n\tComponentRef,\n\tDirective,\n\tElementRef,\n\tinject,\n\tInjector,\n\tInput,\n\tOnInit,\n\tRenderer2,\n\tViewContainerRef,\n} from '@angular/core';\nimport { NgDocPageProcessor, NgDocProcessorOptions } from '@ng-doc/app/interfaces';\nimport { NG_DOC_PAGE_CUSTOM_PROCESSOR, NG_DOC_PAGE_PROCESSOR } from '@ng-doc/app/tokens';\nimport { asArray, objectKeys } from '@ng-doc/core';\n\n/**\n * Base processor class to create a processor directive that will be used to replace\n * html nodes with an Angular component.\n */\n@Directive({\n\tselector: '[ngDocPageProcessor]',\n\tstandalone: true,\n\thost: { ngSkipHydration: 'true' },\n})\nexport class NgDocPageProcessorDirective implements OnInit {\n\t@Input({ required: true, alias: 'ngDocPageProcessor' })\n\thtml: string = '';\n\n\tprocessors: Array<NgDocPageProcessor<unknown>> =\n\t\tinject<Array<NgDocPageProcessor<unknown>>>(NG_DOC_PAGE_PROCESSOR, { optional: true }) ?? [];\n\tcustomProcessors: Array<NgDocPageProcessor<unknown>> =\n\t\tinject<Array<NgDocPageProcessor<unknown>>>(NG_DOC_PAGE_CUSTOM_PROCESSOR, { optional: true }) ??\n\t\t[];\n\n\tprotected readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\tprotected readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n\tprotected readonly injector: Injector = inject(Injector);\n\tprotected readonly renderer: Renderer2 = inject(Renderer2);\n\n\
|
|
1
|
+
{"version":3,"file":"ng-doc-app-processors-page-processor.mjs","sources":["../../../../libs/app/processors/page-processor/page-processor.directive.ts","../../../../libs/app/processors/page-processor/ng-doc-app-processors-page-processor.ts"],"sourcesContent":["import {\n\tComponentRef,\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tinject,\n\tInjector,\n\tInput,\n\tOnChanges,\n\tOnInit,\n\tOutput,\n\tRenderer2,\n\tSimpleChanges,\n\tViewContainerRef,\n} from '@angular/core';\nimport { NgDocPageProcessor, NgDocProcessorOptions } from '@ng-doc/app/interfaces';\nimport { NG_DOC_PAGE_CUSTOM_PROCESSOR, NG_DOC_PAGE_PROCESSOR } from '@ng-doc/app/tokens';\nimport { asArray, objectKeys } from '@ng-doc/core';\n\n/**\n * Base processor class to create a processor directive that will be used to replace\n * html nodes with an Angular component.\n */\n@Directive({\n\tselector: '[ngDocPageProcessor]',\n\tstandalone: true,\n\thost: { ngSkipHydration: 'true' },\n})\nexport class NgDocPageProcessorDirective implements OnChanges, OnInit {\n\t@Input({ required: true, alias: 'ngDocPageProcessor' })\n\thtml: string = '';\n\n\t@Output()\n\tafterRender: EventEmitter<void> = new EventEmitter<void>();\n\n\tprocessors: Array<NgDocPageProcessor<unknown>> =\n\t\tinject<Array<NgDocPageProcessor<unknown>>>(NG_DOC_PAGE_PROCESSOR, { optional: true }) ?? [];\n\tcustomProcessors: Array<NgDocPageProcessor<unknown>> =\n\t\tinject<Array<NgDocPageProcessor<unknown>>>(NG_DOC_PAGE_CUSTOM_PROCESSOR, { optional: true }) ??\n\t\t[];\n\n\tprotected readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\tprotected readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n\tprotected readonly injector: Injector = inject(Injector);\n\tprotected readonly renderer: Renderer2 = inject(Renderer2);\n\n\tngOnChanges({ html }: SimpleChanges) {\n\t\tif (html) {\n\t\t\tthis.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', this.html);\n\t\t\tthis.afterRender.emit();\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tasArray(this.processors, this.customProcessors).forEach(this.process.bind(this));\n\t}\n\n\tprivate process<T>(processor: NgDocPageProcessor<T>): void {\n\t\tArray.from(this.elementRef.nativeElement.querySelectorAll(processor.selector)).forEach(\n\t\t\t(elementNode: Element) => {\n\t\t\t\t// check if element node has a parent node because it can be removed by another processor\n\t\t\t\tif (elementNode.parentNode) {\n\t\t\t\t\tconst replaceElement: Element =\n\t\t\t\t\t\t(processor.nodeToReplace && processor.nodeToReplace(elementNode, this.injector)) ??\n\t\t\t\t\t\telementNode;\n\t\t\t\t\tconst options: NgDocProcessorOptions<T> = processor.extractOptions(\n\t\t\t\t\t\telementNode,\n\t\t\t\t\t\tthis.elementRef.nativeElement,\n\t\t\t\t\t);\n\n\t\t\t\t\t// create component\n\t\t\t\t\tconst componentRef: ComponentRef<T> = this.viewContainerRef.createComponent(\n\t\t\t\t\t\tprocessor.component,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tprojectableNodes: options.content,\n\t\t\t\t\t\t\tinjector: this.injector,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\n\t\t\t\t\t// set component options\n\t\t\t\t\tif (options.inputs) {\n\t\t\t\t\t\tobjectKeys(options.inputs).forEach(\n\t\t\t\t\t\t\t(key: keyof T) =>\n\t\t\t\t\t\t\t\toptions.inputs && componentRef.setInput(key as string, options.inputs[key]),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// replace element node with component node\n\t\t\t\t\treplaceElement.parentNode?.replaceChild(\n\t\t\t\t\t\tcomponentRef.location.nativeElement,\n\t\t\t\t\t\treplaceElement,\n\t\t\t\t\t);\n\n\t\t\t\t\tcomponentRef.changeDetectorRef.markForCheck();\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ng-doc/app",
|
|
3
|
-
"version": "17.2.
|
|
3
|
+
"version": "17.2.3",
|
|
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.2.
|
|
16
|
-
"@ng-doc/ui-kit": "17.2.
|
|
15
|
+
"@ng-doc/core": "17.2.3",
|
|
16
|
+
"@ng-doc/ui-kit": "17.2.3",
|
|
17
17
|
"@orama/plugin-match-highlight": "1.0.2",
|
|
18
18
|
"@orama/stemmers": "1.0.2",
|
|
19
19
|
"highlight.js": "11.5.1"
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import { ElementRef, Injector, OnInit, Renderer2, ViewContainerRef } from '@angular/core';
|
|
1
|
+
import { ElementRef, EventEmitter, Injector, OnChanges, OnInit, Renderer2, SimpleChanges, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { NgDocPageProcessor } from '@ng-doc/app/interfaces';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
5
5
|
* Base processor class to create a processor directive that will be used to replace
|
|
6
6
|
* html nodes with an Angular component.
|
|
7
7
|
*/
|
|
8
|
-
export declare class NgDocPageProcessorDirective implements OnInit {
|
|
8
|
+
export declare class NgDocPageProcessorDirective implements OnChanges, OnInit {
|
|
9
9
|
html: string;
|
|
10
|
+
afterRender: EventEmitter<void>;
|
|
10
11
|
processors: Array<NgDocPageProcessor<unknown>>;
|
|
11
12
|
customProcessors: Array<NgDocPageProcessor<unknown>>;
|
|
12
13
|
protected readonly elementRef: ElementRef<HTMLElement>;
|
|
13
14
|
protected readonly viewContainerRef: ViewContainerRef;
|
|
14
15
|
protected readonly injector: Injector;
|
|
15
16
|
protected readonly renderer: Renderer2;
|
|
17
|
+
ngOnChanges({ html }: SimpleChanges): void;
|
|
16
18
|
ngOnInit(): void;
|
|
17
19
|
private process;
|
|
18
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgDocPageProcessorDirective, never>;
|
|
19
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocPageProcessorDirective, "[ngDocPageProcessor]", never, { "html": { "alias": "ngDocPageProcessor"; "required": true; }; }, {}, never, never, true, never>;
|
|
21
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocPageProcessorDirective, "[ngDocPageProcessor]", never, { "html": { "alias": "ngDocPageProcessor"; "required": true; }; }, { "afterRender": "afterRender"; }, never, never, true, never>;
|
|
20
22
|
}
|