ngx-tiptap-editor
Version:
[](https://github.com/HuiiBuh/ngx-tiptap-editor/actions/workflows/publish.yml) [ {
this.domSanitizer = domSanitizer;
this.renderer = renderer;
this.injector = injector;
this.ngZone = ngZone;
this.extensions = [];
this.angularExtensions = [];
this.sanitizeHtml = true;
this._content = null;
this.builtExtensions = [];
}
set content(value) {
this._content = value;
this.renderOutput();
}
ngOnChanges(_) {
const builtAngularExtensions = this.angularExtensions.map(builder => this.ngZone.run(() => builder.build(this.injector)));
this.builtExtensions = [
...this.extensions,
...builtAngularExtensions.map(e => e.nativeExtension)
];
}
ngAfterViewInit() {
return this.renderOutput();
}
renderOutput(content = this._content) {
if (!this.contentOutlet)
return;
let html = '';
if (typeof content === 'string') {
html = content;
}
else if (content) {
// Hopefully fixes the github build, which seems to break for some reason
html = generateHTML(content, this.builtExtensions);
}
if (this.sanitizeHtml) {
html = this.domSanitizer.sanitize(SecurityContext.HTML, html);
if (isDevMode()) {
console.warn('The editor preview is sanetizing your HTML. This may lead to missing HTML.');
}
}
this.renderer.setProperty(this.contentOutlet.nativeElement, 'innerHTML', html);
}
}
EditorPreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EditorPreviewComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
EditorPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EditorPreviewComponent, selector: "tip-editor-preview", inputs: { extensions: "extensions", angularExtensions: "angularExtensions", sanitizeHtml: "sanitizeHtml", content: "content" }, viewQueries: [{ propertyName: "contentOutlet", first: true, predicate: ["contentOutlet"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
<div #contentOutlet></div>
`, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EditorPreviewComponent, decorators: [{
type: Component,
args: [{ selector: 'tip-editor-preview', template: `
<div #contentOutlet></div>
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [""] }]
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: i0.NgZone }]; }, propDecorators: { extensions: [{
type: Input
}], angularExtensions: [{
type: Input
}], sanitizeHtml: [{
type: Input
}], contentOutlet: [{
type: ViewChild,
args: ['contentOutlet']
}], content: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXByZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci1wcmV2aWV3L2VkaXRvci1wcmV2aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxLQUFLLEVBQ0wsU0FBUyxFQUlULGVBQWUsRUFHZixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBWTVDLE1BQU0sT0FBTyxzQkFBc0I7SUFTakMsWUFDVSxZQUEwQixFQUMxQixRQUFtQixFQUNuQixRQUFrQixFQUNsQixNQUFjO1FBSGQsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFYUixlQUFVLEdBQWUsRUFBRSxDQUFDO1FBQzVCLHNCQUFpQixHQUF5RCxFQUFFLENBQUM7UUFDN0UsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFNUIsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFDeEMsb0JBQWUsR0FBZSxFQUFFLENBQUM7SUFRekMsQ0FBQztJQUVELElBQ1csT0FBTyxDQUFDLEtBQTZCO1FBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sV0FBVyxDQUFDLENBQWdCO1FBQ2pDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxSCxJQUFJLENBQUMsZUFBZSxHQUFHO1lBQ3JCLEdBQUcsSUFBSSxDQUFDLFVBQVU7WUFDbEIsR0FBRyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1NBQ3RELENBQUM7SUFFSixDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sWUFBWSxDQUFDLFVBQWtDLElBQUksQ0FBQyxRQUFRO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU87UUFFaEMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDL0IsSUFBSSxHQUFHLE9BQU8sQ0FBQztTQUNoQjthQUFNLElBQUksT0FBTyxFQUFFO1lBQ2xCLHlFQUF5RTtZQUN6RSxJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQWMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFFLENBQUM7WUFFL0QsSUFBSSxTQUFTLEVBQUUsRUFBRTtnQkFDZixPQUFPLENBQUMsSUFBSSxDQUFDLDRFQUE0RSxDQUFDLENBQUM7YUFDNUY7U0FDRjtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRixDQUFDOzttSEF4RFUsc0JBQXNCO3VHQUF0QixzQkFBc0IsK1RBTnZCOztHQUVUOzJGQUlVLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRSxvQkFBb0IsWUFDcEI7O0dBRVQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07dUtBSS9CLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsaUJBQWlCO3NCQUFoQyxLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQzhCLGFBQWE7c0JBQWhELFNBQVM7dUJBQUMsZUFBZTtnQkFhZixPQUFPO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBpc0Rldk1vZGUsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBSZW5kZXJlcjIsXG4gIFNlY3VyaXR5Q29udGV4dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVHlwZSxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgdHlwZSB7IEV4dGVuc2lvbnMgfSBmcm9tICdAdGlwdGFwL2NvcmUnO1xuaW1wb3J0IHsgZ2VuZXJhdGVIVE1MIH0gZnJvbSAnQHRpcHRhcC9jb3JlJztcbmltcG9ydCB7IEV4dGVuc2lvbkJ1aWxkZXIgfSBmcm9tICcuLi8uLi9leHRlbnNpb25zL2Jhc2UtZXh0ZW5zaW9uLm1vZGVsJztcbmltcG9ydCB7IFRpcEJhc2VFeHRlbnNpb24gfSBmcm9tICcuLi8uLi9leHRlbnNpb25zL3RpcC1iYXNlLWV4dGVuc2lvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RpcC1lZGl0b3ItcHJldmlldycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAjY29udGVudE91dGxldD48L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLXByZXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yUHJldmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgcHVibGljIGV4dGVuc2lvbnM6IEV4dGVuc2lvbnMgPSBbXTtcbiAgQElucHV0KCkgcHVibGljIGFuZ3VsYXJFeHRlbnNpb25zOiBFeHRlbnNpb25CdWlsZGVyPGFueSwgVHlwZTxUaXBCYXNlRXh0ZW5zaW9uPGFueT4+PltdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBzYW5pdGl6ZUh0bWwgPSB0cnVlO1xuICBAVmlld0NoaWxkKCdjb250ZW50T3V0bGV0JykgcHJpdmF0ZSBjb250ZW50T3V0bGV0OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfY29udGVudDogb2JqZWN0IHwgc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgYnVpbHRFeHRlbnNpb25zOiBFeHRlbnNpb25zID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICApIHtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29udGVudCh2YWx1ZTogb2JqZWN0IHwgc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX2NvbnRlbnQgPSB2YWx1ZTtcbiAgICB0aGlzLnJlbmRlck91dHB1dCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBidWlsdEFuZ3VsYXJFeHRlbnNpb25zID0gdGhpcy5hbmd1bGFyRXh0ZW5zaW9ucy5tYXAoYnVpbGRlciA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gYnVpbGRlci5idWlsZCh0aGlzLmluamVjdG9yKSkpO1xuICAgIHRoaXMuYnVpbHRFeHRlbnNpb25zID0gW1xuICAgICAgLi4udGhpcy5leHRlbnNpb25zLFxuICAgICAgLi4uYnVpbHRBbmd1bGFyRXh0ZW5zaW9ucy5tYXAoZSA9PiBlLm5hdGl2ZUV4dGVuc2lvbilcbiAgICBdO1xuXG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLnJlbmRlck91dHB1dCgpO1xuICB9XG5cbiAgcHVibGljIHJlbmRlck91dHB1dChjb250ZW50OiBvYmplY3QgfCBzdHJpbmcgfCBudWxsID0gdGhpcy5fY29udGVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250ZW50T3V0bGV0KSByZXR1cm47XG5cbiAgICBsZXQgaHRtbCA9ICcnO1xuICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGh0bWwgPSBjb250ZW50O1xuICAgIH0gZWxzZSBpZiAoY29udGVudCkge1xuICAgICAgLy8gSG9wZWZ1bGx5IGZpeGVzIHRoZSBnaXRodWIgYnVpbGQsIHdoaWNoIHNlZW1zIHRvIGJyZWFrIGZvciBzb21lIHJlYXNvblxuICAgICAgaHRtbCA9IGdlbmVyYXRlSFRNTChjb250ZW50IGFzIGFueSwgdGhpcy5idWlsdEV4dGVuc2lvbnMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNhbml0aXplSHRtbCkge1xuICAgICAgaHRtbCA9IHRoaXMuZG9tU2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCBodG1sKSE7XG5cbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBlZGl0b3IgcHJldmlldyBpcyBzYW5ldGl6aW5nIHlvdXIgSFRNTC4gVGhpcyBtYXkgbGVhZCB0byBtaXNzaW5nIEhUTUwuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmNvbnRlbnRPdXRsZXQubmF0aXZlRWxlbWVudCwgJ2lubmVySFRNTCcsIGh0bWwpO1xuICB9XG5cblxufVxuIl19