@asi-ngtools/lib
Version:
This project is a little components library, simple to use, which will help you to simplify your project.
100 lines (99 loc) • 8.74 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component, Input, PLATFORM_ID, Inject } from '@angular/core';
import { AsiFileService } from './../../services/asi-file.service';
import { isPlatformBrowser } from '@angular/common';
export class AsiCodeViewer {
/**
* @param {?} fileService
* @param {?} platformId
*/
constructor(fileService, platformId) {
this.fileService = fileService;
this.platformId = platformId;
/**
* language of the code to be displayed
*/
this.language = 'typescript';
}
/**
* @return {?}
*/
ngOnInit() {
if (isPlatformBrowser(this.platformId)) {
if (this.fromUrl != null) {
this.fileService.getFileAsText(this.fromUrl).subscribe((result) => {
this.value = result;
if (this.value != null) {
this.hightlightCode = Prism.highlight(this.value, Prism.languages[this.language]);
}
});
}
else if (this.value != null) {
this.hightlightCode = Prism.highlight(this.value, Prism.languages[this.language]);
}
}
}
/**
* @param {?} change
* @return {?}
*/
ngOnChanges(change) {
if (isPlatformBrowser(this.platformId)) {
if (change["value"] != null && change["value"].currentValue != null) {
this.hightlightCode = Prism.highlight(change["value"].currentValue, Prism.languages[this.language]);
}
else if (change["fromUrl"] != null) {
this.fileService.getFileAsText(change["fromUrl"].currentValue).subscribe((result) => {
this.value = result;
if (this.value != null) {
this.hightlightCode = Prism.highlight(this.value, Prism.languages[this.language]);
}
});
}
}
}
}
AsiCodeViewer.decorators = [
{ type: Component, args: [{
selector: 'asi-code-viewer',
host: { 'class': 'asi-component asi-code-viewer' },
template: "<pre [ngClass]=\"'language-' + language\" [innerHTML]=\"hightlightCode\"></pre>\n"
}] }
];
/** @nocollapse */
AsiCodeViewer.ctorParameters = () => [
{ type: AsiFileService },
{ type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
];
AsiCodeViewer.propDecorators = {
language: [{ type: Input }],
fromUrl: [{ type: Input }],
value: [{ type: Input }]
};
if (false) {
/**
* language of the code to be displayed
* @type {?}
*/
AsiCodeViewer.prototype.language;
/**
* load code from url
* @type {?}
*/
AsiCodeViewer.prototype.fromUrl;
/**
* code from string value
* @type {?}
*/
AsiCodeViewer.prototype.value;
/** @type {?} */
AsiCodeViewer.prototype.hightlightCode;
/** @type {?} */
AsiCodeViewer.prototype.fileService;
/** @type {?} */
AsiCodeViewer.prototype.platformId;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLWNvZGUtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhc2ktbmd0b29scy9saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hc2ktY29kZS12aWV3ZXIvYXNpLWNvZGUtdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWdCLFdBQVcsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVNwRCxNQUFNOzs7OztJQVdKLFlBQW9CLFdBQTJCLEVBQStCLFVBQWU7UUFBekUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQStCLGVBQVUsR0FBVixVQUFVLENBQUs7Ozs7d0JBUnpFLFlBQVk7S0FRa0U7Ozs7SUFFbEcsUUFBUTtRQUNOLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ2hFLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO29CQUNwQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7cUJBQ25GO2lCQUNGLENBQUMsQ0FBQzthQUNKO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUNuRjtTQUNGO0tBQ0Y7Ozs7O0lBRUQsV0FBVyxDQUFDLE1BQTRDO1FBQ3RELEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsRUFBRSxDQUFDLENBQUMsTUFBTSxhQUFVLElBQUksSUFBSSxNQUFNLFVBQU8sWUFBWSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzlELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLFVBQU8sWUFBWSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDbEc7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxlQUFZLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLE1BQU0sWUFBUyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDL0UsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7b0JBQ3BCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztxQkFDbkY7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtLQUNGOzs7WUE5Q0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRTtnQkFDbEQsNkZBQStDO2FBQ2hEOzs7O1lBVFEsY0FBYzs0Q0FxQjZCLE1BQU0sU0FBQyxXQUFXOzs7dUJBUm5FLEtBQUs7c0JBRUwsS0FBSztvQkFFTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgU2ltcGxlQ2hhbmdlLCBQTEFURk9STV9JRCwgSW5qZWN0LCBPbkluaXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBc2lGaWxlU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvYXNpLWZpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmRlY2xhcmUgY29uc3QgUHJpc206IGFueTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXNpLWNvZGUtdmlld2VyJyxcclxuICBob3N0OiB7ICdjbGFzcyc6ICdhc2ktY29tcG9uZW50IGFzaS1jb2RlLXZpZXdlcicgfSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXNpLWNvZGUtdmlld2VyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNpQ29kZVZpZXdlciBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgLyoqIGxhbmd1YWdlIG9mIHRoZSBjb2RlIHRvIGJlIGRpc3BsYXllZCAqL1xyXG4gIEBJbnB1dCgpIGxhbmd1YWdlID0gJ3R5cGVzY3JpcHQnO1xyXG4gIC8qKiBsb2FkIGNvZGUgZnJvbSB1cmwgKi9cclxuICBASW5wdXQoKSBmcm9tVXJsOiBzdHJpbmc7XHJcbiAgLyoqIGNvZGUgZnJvbSBzdHJpbmcgdmFsdWUgKi9cclxuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nO1xyXG5cclxuICBoaWdodGxpZ2h0Q29kZTogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpbGVTZXJ2aWNlOiBBc2lGaWxlU2VydmljZSwgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnkpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIGlmICh0aGlzLmZyb21VcmwgIT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuZmlsZVNlcnZpY2UuZ2V0RmlsZUFzVGV4dCh0aGlzLmZyb21VcmwpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gcmVzdWx0O1xyXG4gICAgICAgICAgaWYgKHRoaXMudmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmhpZ2h0bGlnaHRDb2RlID0gUHJpc20uaGlnaGxpZ2h0KHRoaXMudmFsdWUsIFByaXNtLmxhbmd1YWdlc1t0aGlzLmxhbmd1YWdlXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5oaWdodGxpZ2h0Q29kZSA9IFByaXNtLmhpZ2hsaWdodCh0aGlzLnZhbHVlLCBQcmlzbS5sYW5ndWFnZXNbdGhpcy5sYW5ndWFnZV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2U6IHsgW3Byb3BOYW1lOiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfSkge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgaWYgKGNoYW5nZS52YWx1ZSAhPSBudWxsICYmIGNoYW5nZS52YWx1ZS5jdXJyZW50VmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuaGlnaHRsaWdodENvZGUgPSBQcmlzbS5oaWdobGlnaHQoY2hhbmdlLnZhbHVlLmN1cnJlbnRWYWx1ZSwgUHJpc20ubGFuZ3VhZ2VzW3RoaXMubGFuZ3VhZ2VdKTtcclxuICAgICAgfSBlbHNlIGlmIChjaGFuZ2UuZnJvbVVybCAhPSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5maWxlU2VydmljZS5nZXRGaWxlQXNUZXh0KGNoYW5nZS5mcm9tVXJsLmN1cnJlbnRWYWx1ZSkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMudmFsdWUgPSByZXN1bHQ7XHJcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGlnaHRsaWdodENvZGUgPSBQcmlzbS5oaWdobGlnaHQodGhpcy52YWx1ZSwgUHJpc20ubGFuZ3VhZ2VzW3RoaXMubGFuZ3VhZ2VdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=