@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>
54 lines (50 loc) • 10.1 kB
JavaScript
import * as i0 from '@angular/core';
import { inject, ElementRef, HostBinding, Input, ChangeDetectionStrategy, Component } from '@angular/core';
import { NgDocCopyButtonComponent } from '@ng-doc/app/components/copy-button';
import { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes';
import { NgDocPageProcessorComponent } from '@ng-doc/app/processors/page-processor';
import { linkProcessor } from '@ng-doc/app/processors/processors/link';
import { tooltipProcessor } from '@ng-doc/app/processors/processors/tooltip';
import { provideMainPageProcessor } from '@ng-doc/app/tokens';
import { NgDocTextComponent, NgDocIconComponent } from '@ng-doc/ui-kit';
class NgDocCodeComponent {
constructor() {
this.elementRef = inject(ElementRef);
this.html = '';
this.copyButton = true;
}
get hasHeader() {
return !!this.name || !!this.icon;
}
get codeElement() {
return this.elementRef?.nativeElement.querySelector('code') ?? null;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: NgDocCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: NgDocCodeComponent, isStandalone: true, selector: "ng-doc-code", inputs: { html: "html", copyButton: "copyButton", name: "name", icon: "icon" }, host: { properties: { "attr.data-ng-doc-has-header": "this.hasHeader" } }, ngImport: i0, template: "@if (hasHeader) {\n <div class=\"ng-doc-code-header\">\n <span class=\"ng-doc-code-file-name\" ng-doc-text>\n @if (icon) {\n <ng-doc-icon [customIcon]=\"icon\"></ng-doc-icon>\n }\n {{ name }}\n </span>\n </div>\n}\n<div class=\"ng-doc-code-body\">\n @if (html) {\n <div class=\"ng-doc-code-wrapper\" [ngDocPageProcessor]=\"html | ngDocSanitizeHtml\"></div>\n } @else {\n <div class=\"ng-doc-code-wrapper\">\n <ng-content></ng-content>\n </div>\n }\n\n @if (copyButton) {\n <ng-doc-copy-button class=\"ng-doc-copy-button\" [text]=\"this.codeElement?.textContent ?? ''\">\n <ng-doc-icon icon=\"copy\"></ng-doc-icon>\n </ng-doc-copy-button>\n }\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-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)}:host .ng-doc-code-wrapper{height:100%}: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));overflow:hidden}:host .ng-doc-code-body ::ng-deep pre{display:flex;margin:var(--ng-doc-code-margin);height:100%}:host .ng-doc-code-body ::ng-deep pre code{display:block;padding:calc(var(--ng-doc-base-gutter) * 2) 0;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-doc-code-body ::ng-deep pre code.code-lines{display:grid;padding:calc(var(--ng-doc-base-gutter) * 2) 0}:host .ng-doc-code-body ::ng-deep pre code .line{display:inline-block;width:100%;padding:0 calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-code-body ::ng-deep pre code .line.highlighted{position:relative;background:color-mix(in srgb,var(--ng-doc-code-highlight-color),transparent 90%)!important}:host .ng-doc-code-body ::ng-deep pre code .line.highlighted span{background:transparent!important}:host .ng-doc-code-body ::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: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "customIcon", "size"] }, { kind: "component", type: NgDocPageProcessorComponent, selector: "[ngDocPageProcessor]", inputs: ["ngDocPageProcessor"], outputs: ["afterRender"] }, { kind: "component", type: NgDocCopyButtonComponent, selector: "ng-doc-copy-button", inputs: ["text"] }, { kind: "pipe", type: NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }], viewProviders: [provideMainPageProcessor([linkProcessor, tooltipProcessor])], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: NgDocCodeComponent, decorators: [{
type: Component,
args: [{ selector: 'ng-doc-code', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
NgDocTextComponent,
NgDocIconComponent,
NgDocPageProcessorComponent,
NgDocCopyButtonComponent,
NgDocSanitizeHtmlPipe,
], viewProviders: [provideMainPageProcessor([linkProcessor, tooltipProcessor])], template: "@if (hasHeader) {\n <div class=\"ng-doc-code-header\">\n <span class=\"ng-doc-code-file-name\" ng-doc-text>\n @if (icon) {\n <ng-doc-icon [customIcon]=\"icon\"></ng-doc-icon>\n }\n {{ name }}\n </span>\n </div>\n}\n<div class=\"ng-doc-code-body\">\n @if (html) {\n <div class=\"ng-doc-code-wrapper\" [ngDocPageProcessor]=\"html | ngDocSanitizeHtml\"></div>\n } @else {\n <div class=\"ng-doc-code-wrapper\">\n <ng-content></ng-content>\n </div>\n }\n\n @if (copyButton) {\n <ng-doc-copy-button class=\"ng-doc-copy-button\" [text]=\"this.codeElement?.textContent ?? ''\">\n <ng-doc-icon icon=\"copy\"></ng-doc-icon>\n </ng-doc-copy-button>\n }\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-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)}:host .ng-doc-code-wrapper{height:100%}: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));overflow:hidden}:host .ng-doc-code-body ::ng-deep pre{display:flex;margin:var(--ng-doc-code-margin);height:100%}:host .ng-doc-code-body ::ng-deep pre code{display:block;padding:calc(var(--ng-doc-base-gutter) * 2) 0;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-doc-code-body ::ng-deep pre code.code-lines{display:grid;padding:calc(var(--ng-doc-base-gutter) * 2) 0}:host .ng-doc-code-body ::ng-deep pre code .line{display:inline-block;width:100%;padding:0 calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-code-body ::ng-deep pre code .line.highlighted{position:relative;background:color-mix(in srgb,var(--ng-doc-code-highlight-color),transparent 90%)!important}:host .ng-doc-code-body ::ng-deep pre code .line.highlighted span{background:transparent!important}:host .ng-doc-code-body ::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"] }]
}], ctorParameters: () => [], propDecorators: { html: [{
type: Input
}], copyButton: [{
type: Input
}], name: [{
type: Input
}], icon: [{
type: Input
}], hasHeader: [{
type: HostBinding,
args: ['attr.data-ng-doc-has-header']
}] } });
/**
* Generated bundle index. Do not edit.
*/
export { NgDocCodeComponent };
//# sourceMappingURL=ng-doc-app-components-code.mjs.map