@js-sugar/angular
Version:
JS-Sugar core package (Angular)
74 lines (69 loc) • 4.18 kB
JavaScript
import * as i0 from '@angular/core';
import { Injectable, Component, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
import * as prism from 'prismjs';
import { CommonModule } from '@angular/common';
prism.hooks.add('before-highlightall', (env) => {
env['elements'] = [];
});
class CodeHighlightService {
highlight(code, lang) {
return prism.highlight(code.trim(), prism.languages[lang], lang);
}
isSupportedLanguage(language) {
return prism.languages[language] != null;
}
}
CodeHighlightService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: CodeHighlightService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
CodeHighlightService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: CodeHighlightService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: CodeHighlightService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
class CodeComponent {
constructor(_service) {
this._service = _service;
}
ngOnInit() {
this.format();
}
format() {
if (this._service.isSupportedLanguage(this.language)) {
this._innerHtml = this._service.highlight(this.code, this.language);
}
else {
console.log(`code formater for language ("${this.language}") not found.`);
this._innerHtml = this.code;
}
}
}
CodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: CodeComponent, deps: [{ token: CodeHighlightService }], target: i0.ɵɵFactoryTarget.Component });
CodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: CodeComponent, selector: "jss-code", inputs: { code: "code", language: "language" }, exportAs: ["jssCode"], ngImport: i0, template: "<pre>\r\n <code [innerHtml]=\"_innerHtml\" class=\"language-{{language}}\"></code>\r\n</pre>", styles: [":host{display:block}pre{margin:0;padding:0;white-space:nowrap}code{margin:0;padding:0;text-indent:0px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: CodeComponent, decorators: [{
type: Component,
args: [{ selector: 'jss-code', exportAs: 'jssCode', changeDetection: ChangeDetectionStrategy.OnPush, template: "<pre>\r\n <code [innerHtml]=\"_innerHtml\" class=\"language-{{language}}\"></code>\r\n</pre>", styles: [":host{display:block}pre{margin:0;padding:0;white-space:nowrap}code{margin:0;padding:0;text-indent:0px}\n"] }]
}], ctorParameters: function () { return [{ type: CodeHighlightService }]; }, propDecorators: { code: [{
type: Input
}], language: [{
type: Input
}] } });
class CodeModule {
}
CodeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: CodeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
CodeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.1", ngImport: i0, type: CodeModule, declarations: [CodeComponent], imports: [CommonModule], exports: [CodeComponent] });
CodeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: CodeModule, imports: [CommonModule] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: CodeModule, decorators: [{
type: NgModule,
args: [{
declarations: [
CodeComponent,
],
imports: [
CommonModule,
],
exports: [
CodeComponent,
]
}]
}] });
export { CodeComponent, CodeModule };
//# sourceMappingURL=js-sugar-angular-components-code.mjs.map