@ng-doc/app
Version:
<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>
67 lines (63 loc) • 7.97 kB
JavaScript
import * as i0 from '@angular/core';
import { inject, ChangeDetectorRef, ElementRef, ViewChild, ChangeDetectionStrategy, Component } from '@angular/core';
import { RouterOutlet } from '@angular/router';
import { NgDocRootPage } from '@ng-doc/app/classes/root-page';
import { NgDocPageWrapperComponent } from '@ng-doc/app/components/page-wrapper';
import { createComponent, generateToc } from '@ng-doc/app/helpers';
import { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes';
import { NgDocPageProcessorComponent } from '@ng-doc/app/processors';
import { provideTypeControl } from '@ng-doc/app/providers/type-control';
import { NG_DOC_PAGE_SKELETON } from '@ng-doc/app/tokens';
import { NgDocTypeAliasControlComponent, NgDocStringControlComponent, NgDocNumberControlComponent, NgDocBooleanControlComponent } from '@ng-doc/app/type-controls';
import { NgDocButtonIconComponent, NgDocTooltipDirective, NgDocIconComponent, DialogOutletComponent } from '@ng-doc/ui-kit';
class NgDocPageComponent {
constructor() {
this.rootPage = inject(NgDocRootPage);
this.skeleton = inject(NG_DOC_PAGE_SKELETON);
this.changeDetectorRef = inject(ChangeDetectorRef);
this.pageWrapper = inject(NgDocPageWrapperComponent);
}
createToc() {
if (this.pageWrapper.pageToc && this.skeleton.toc) {
createComponent(this.pageWrapper.pageToc, this.skeleton.toc, {
tableOfContent: generateToc(this.pageContainer.nativeElement) ?? [],
});
this.changeDetectorRef.detectChanges();
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: NgDocPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: NgDocPageComponent, isStandalone: true, selector: "ng-doc-page", host: { attributes: { "ngSkipHydration": "true" } }, providers: [
provideTypeControl('NgDocTypeAlias', NgDocTypeAliasControlComponent, { order: 10 }),
provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
], viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, read: ElementRef, static: true }, { propertyName: "childOutlet", first: true, predicate: ["childOutlet"], descendants: true }], ngImport: i0, template: "<div class=\"ng-doc-page-controls\">\n @if (rootPage.editSourceFileUrl) {\n <a\n ng-doc-button-icon\n [href]=\"rootPage.editSourceFileUrl\"\n target=\"_blank\"\n ngDocTooltip=\"Suggest Edits\">\n <ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n </a>\n }\n @if (rootPage.viewSourceFileUrl) {\n <a\n ng-doc-button-icon\n [href]=\"rootPage.viewSourceFileUrl\"\n target=\"_blank\"\n ngDocTooltip=\"View Source\">\n <ng-doc-icon icon=\"code\"></ng-doc-icon>\n </a>\n }\n</div>\n\n<div\n class=\"ng-doc-page-wrapper\"\n [ngDocPageProcessor]=\"rootPage.pageContent | ngDocSanitizeHtml\"\n (afterRender)=\"createToc()\"\n #pageContainer></div>\n\n@if (!rootPage.page?.disableFullscreenRoutes) {\n <ng-doc-dialog-outlet [config]=\"{ width: '100vw', height: '100vh' }\">\n <div class=\"ng-doc-fullscreen-wrapper\">\n <router-outlet></router-outlet>\n </div>\n </ng-doc-dialog-outlet>\n}\n", styles: [":host{display:flex;flex-direction:column}:host .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: "component", type: NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon], button[ng-doc-button-icon-raised], a[ng-doc-button-icon-raised], button[ng-doc-button-icon-transparent], a[ng-doc-button-icon-transparent]", 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: "component", type: NgDocPageProcessorComponent, selector: "[ngDocPageProcessor]", inputs: ["ngDocPageProcessor"], outputs: ["afterRender"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: DialogOutletComponent, selector: "ng-doc-dialog-outlet", inputs: ["config"] }, { kind: "pipe", type: NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: NgDocPageComponent, decorators: [{
type: Component,
args: [{ selector: 'ng-doc-page', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
NgDocButtonIconComponent,
NgDocTooltipDirective,
NgDocIconComponent,
NgDocPageProcessorComponent,
RouterOutlet,
DialogOutletComponent,
NgDocSanitizeHtmlPipe,
], providers: [
provideTypeControl('NgDocTypeAlias', NgDocTypeAliasControlComponent, { order: 10 }),
provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
], host: { ngSkipHydration: 'true' }, template: "<div class=\"ng-doc-page-controls\">\n @if (rootPage.editSourceFileUrl) {\n <a\n ng-doc-button-icon\n [href]=\"rootPage.editSourceFileUrl\"\n target=\"_blank\"\n ngDocTooltip=\"Suggest Edits\">\n <ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n </a>\n }\n @if (rootPage.viewSourceFileUrl) {\n <a\n ng-doc-button-icon\n [href]=\"rootPage.viewSourceFileUrl\"\n target=\"_blank\"\n ngDocTooltip=\"View Source\">\n <ng-doc-icon icon=\"code\"></ng-doc-icon>\n </a>\n }\n</div>\n\n<div\n class=\"ng-doc-page-wrapper\"\n [ngDocPageProcessor]=\"rootPage.pageContent | ngDocSanitizeHtml\"\n (afterRender)=\"createToc()\"\n #pageContainer></div>\n\n@if (!rootPage.page?.disableFullscreenRoutes) {\n <ng-doc-dialog-outlet [config]=\"{ width: '100vw', height: '100vh' }\">\n <div class=\"ng-doc-fullscreen-wrapper\">\n <router-outlet></router-outlet>\n </div>\n </ng-doc-dialog-outlet>\n}\n", styles: [":host{display:flex;flex-direction:column}:host .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"] }]
}], propDecorators: { pageContainer: [{
type: ViewChild,
args: ['pageContainer', { read: ElementRef, static: true }]
}], childOutlet: [{
type: ViewChild,
args: ['childOutlet']
}] } });
/**
* Generated bundle index. Do not edit.
*/
export { NgDocPageComponent };
//# sourceMappingURL=ng-doc-app-components-page.mjs.map