ngx-markdown
Version:
Angular library that uses marked to parse markdown to html combined with Prism.js for synthax highlights
124 lines (123 loc) • 8.16 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component, ElementRef, EventEmitter, Input, Output } from '@angular/core';
import { MarkdownService } from './markdown.service';
var MarkdownComponent = /** @class */ (function () {
function MarkdownComponent(element, markdownService) {
this.element = element;
this.markdownService = markdownService;
this.error = new EventEmitter();
this.load = new EventEmitter();
}
Object.defineProperty(MarkdownComponent.prototype, "_isTranscluded", {
get: /**
* @return {?}
*/
function () {
return !this._data && !this._src;
},
enumerable: true,
configurable: true
});
Object.defineProperty(MarkdownComponent.prototype, "data", {
get: /**
* @return {?}
*/
function () { return this._data; },
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._data = value;
this.render(value);
},
enumerable: true,
configurable: true
});
Object.defineProperty(MarkdownComponent.prototype, "src", {
get: /**
* @return {?}
*/
function () { return this._src; },
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
var _this = this;
this._src = value;
this.markdownService
.getSource(value)
.subscribe(function (markdown) {
_this.render(markdown);
_this.load.emit(markdown);
}, function (error) { return _this.error.emit(error); });
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
MarkdownComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
if (this._isTranscluded) {
this.render(this.element.nativeElement.innerHTML, true);
}
};
/**
* @param {?} markdown
* @param {?=} decodeHtml
* @return {?}
*/
MarkdownComponent.prototype.render = /**
* @param {?} markdown
* @param {?=} decodeHtml
* @return {?}
*/
function (markdown, decodeHtml) {
if (decodeHtml === void 0) { decodeHtml = false; }
this.element.nativeElement.innerHTML = this.markdownService.compile(markdown, decodeHtml);
this.markdownService.highlight();
};
MarkdownComponent.decorators = [
{ type: Component, args: [{
// tslint:disable-next-line:component-selector
selector: 'markdown, [markdown]',
template: '<ng-content></ng-content>',
},] },
];
/** @nocollapse */
MarkdownComponent.ctorParameters = function () { return [
{ type: ElementRef },
{ type: MarkdownService }
]; };
MarkdownComponent.propDecorators = {
data: [{ type: Input }],
src: [{ type: Input }],
error: [{ type: Output }],
load: [{ type: Output }]
};
return MarkdownComponent;
}());
export { MarkdownComponent };
if (false) {
/** @type {?} */
MarkdownComponent.prototype._data;
/** @type {?} */
MarkdownComponent.prototype._src;
/** @type {?} */
MarkdownComponent.prototype.error;
/** @type {?} */
MarkdownComponent.prototype.load;
/** @type {?} */
MarkdownComponent.prototype.element;
/** @type {?} */
MarkdownComponent.prototype.markdownService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1hcmtkb3duLyIsInNvdXJjZXMiOlsic3JjL21hcmtkb3duLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7SUF3Q25ELDJCQUNTLFNBQ0E7UUFEQSxZQUFPLEdBQVAsT0FBTztRQUNQLG9CQUFlLEdBQWYsZUFBZTtRQUx4QixhQUFrQixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzdDLFlBQWlCLElBQUksWUFBWSxFQUFVLENBQUM7S0FLdkM7MEJBaENPLDZDQUFjOzs7OztZQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Ozs7O0lBR25DLHNCQUNJLG1DQUFJOzs7O1FBRFIsY0FDcUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Ozs7O1FBQ3pDLFVBQVMsS0FBYTtZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BCOzs7T0FKd0M7SUFNekMsc0JBQ0ksa0NBQUc7Ozs7UUFEUCxjQUNvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTs7Ozs7UUFDdkMsVUFBUSxLQUFhO1lBQXJCLGlCQVdDO1lBVkMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDbEIsSUFBSSxDQUFDLGVBQWU7aUJBQ2pCLFNBQVMsQ0FBQyxLQUFLLENBQUM7aUJBQ2hCLFNBQVMsQ0FDUixVQUFBLFFBQVE7Z0JBQ04sS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEIsS0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUIsRUFDRCxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUF0QixDQUFzQixDQUNoQyxDQUFDO1NBQ0w7OztPQVpzQzs7OztJQXNCdkMsMkNBQWU7OztJQUFmO1FBQ0UsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3pEO0tBQ0Y7Ozs7OztJQUVELGtDQUFNOzs7OztJQUFOLFVBQU8sUUFBZ0IsRUFBRSxVQUFrQjtRQUFsQiwyQkFBQSxFQUFBLGtCQUFrQjtRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLENBQUM7S0FDbEM7O2dCQXBERixTQUFTLFNBQUM7O29CQUVULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDOzs7O2dCQVJrQyxVQUFVO2dCQUVwQyxlQUFlOzs7dUJBZXJCLEtBQUs7c0JBT0wsS0FBSzt3QkFlTCxNQUFNO3VCQUNOLE1BQU07OzRCQXhDVDs7U0FTYSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTWFya2Rvd25TZXJ2aWNlIH0gZnJvbSAnLi9tYXJrZG93bi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ21hcmtkb3duLCBbbWFya2Rvd25dJyxcclxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFya2Rvd25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBwcml2YXRlIF9kYXRhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfc3JjOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgZ2V0IF9pc1RyYW5zY2x1ZGVkKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLl9kYXRhICYmICF0aGlzLl9zcmM7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBkYXRhKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLl9kYXRhOyB9XHJcbiAgc2V0IGRhdGEodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZGF0YSA9IHZhbHVlO1xyXG4gICAgdGhpcy5yZW5kZXIodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgc3JjKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLl9zcmM7IH1cclxuICBzZXQgc3JjKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NyYyA9IHZhbHVlO1xyXG4gICAgdGhpcy5tYXJrZG93blNlcnZpY2VcclxuICAgICAgLmdldFNvdXJjZSh2YWx1ZSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICBtYXJrZG93biA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcihtYXJrZG93bik7XHJcbiAgICAgICAgICB0aGlzLmxvYWQuZW1pdChtYXJrZG93bik7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvciA9PiB0aGlzLmVycm9yLmVtaXQoZXJyb3IpLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZixcclxuICAgIHB1YmxpYyBtYXJrZG93blNlcnZpY2U6IE1hcmtkb3duU2VydmljZSxcclxuICApIHsgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5faXNUcmFuc2NsdWRlZCkge1xyXG4gICAgICB0aGlzLnJlbmRlcih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwsIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyKG1hcmtkb3duOiBzdHJpbmcsIGRlY29kZUh0bWwgPSBmYWxzZSkge1xyXG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5tYXJrZG93blNlcnZpY2UuY29tcGlsZShtYXJrZG93biwgZGVjb2RlSHRtbCk7XHJcbiAgICB0aGlzLm1hcmtkb3duU2VydmljZS5oaWdobGlnaHQoKTtcclxuICB9XHJcbn1cclxuIl19