UNPKG

ngx-contentful-rich-text

Version:

Angular renderer for the Contentful rich text field type

42 lines 5.51 kB
import { Directive, Input, } from '@angular/core'; import { RendererHost } from '../classes/renderer-host.class'; import { TextValueComponent } from '../components/text-value.component'; import * as i0 from "@angular/core"; import * as i1 from "../services/renderer-provider.service"; export class MarkRendererHostDirective extends RendererHost { constructor(viewContainerRef, rendererProvider) { super(); this.viewContainerRef = viewContainerRef; this.rendererProvider = rendererProvider; } ngOnInit() { const render = (component) => this.render(this.viewContainerRef, component, this.node); if (isNaN(this.node.markIndex)) { // Create new object because node object might not be extensible this.node = { ...this.node, markIndex: 0, }; } else { this.node.markIndex += 1; } if (this.node.marks.length > this.node.markIndex) { this.rendererProvider.getMarkRenderer(this.node).then(render); } else { render(TextValueComponent); } } } MarkRendererHostDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MarkRendererHostDirective, deps: [{ token: i0.ViewContainerRef }, { token: i1.RendererProviderService }], target: i0.ɵɵFactoryTarget.Directive }); MarkRendererHostDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: MarkRendererHostDirective, selector: "[ngxMarkRendererHost]", inputs: { node: "node" }, usesInheritance: true, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MarkRendererHostDirective, decorators: [{ type: Directive, args: [{ selector: '[ngxMarkRendererHost]', }] }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.RendererProviderService }]; }, propDecorators: { node: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay1yZW5kZXJlci1ob3N0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb250ZW50ZnVsLXJpY2gtdGV4dC9zcmMvbGliL2RpcmVjdGl2ZXMvbWFyay1yZW5kZXJlci1ob3N0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssR0FJTixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQU14RSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsWUFBWTtJQUd6RCxZQUNVLGdCQUFrQyxFQUNsQyxnQkFBeUM7UUFFakQsS0FBSyxFQUFFLENBQUM7UUFIQSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7SUFHbkQsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBRyxDQUFDLFNBQWtELEVBQUUsRUFBRSxDQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNELElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDOUIsZ0VBQWdFO1lBQ2hFLElBQUksQ0FBQyxJQUFJLEdBQUc7Z0JBQ1YsR0FBRyxJQUFJLENBQUMsSUFBSTtnQkFDWixTQUFTLEVBQUUsQ0FBQzthQUNiLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQy9EO2FBQU07WUFDTCxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7O3NIQTVCVSx5QkFBeUI7MEdBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7aUJBQ2xDOzZJQUVVLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVHlwZSxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hcmtSZW5kZXJlciwgVGV4dCB9IGZyb20gJy4uL2NsYXNzZXMvbWFyay1yZW5kZXJlci5jbGFzcyc7XG5pbXBvcnQgeyBSZW5kZXJlckhvc3QgfSBmcm9tICcuLi9jbGFzc2VzL3JlbmRlcmVyLWhvc3QuY2xhc3MnO1xuaW1wb3J0IHsgVGV4dFZhbHVlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy90ZXh0LXZhbHVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZW5kZXJlclByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3JlbmRlcmVyLXByb3ZpZGVyLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmd4TWFya1JlbmRlcmVySG9zdF0nLFxufSlcbmV4cG9ydCBjbGFzcyBNYXJrUmVuZGVyZXJIb3N0RGlyZWN0aXZlIGV4dGVuZHMgUmVuZGVyZXJIb3N0IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbm9kZTogVGV4dDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlclByb3ZpZGVyOiBSZW5kZXJlclByb3ZpZGVyU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgcmVuZGVyID0gKGNvbXBvbmVudDogVHlwZTxNYXJrUmVuZGVyZXIgfCBUZXh0VmFsdWVDb21wb25lbnQ+KSA9PlxuICAgICAgdGhpcy5yZW5kZXIodGhpcy52aWV3Q29udGFpbmVyUmVmLCBjb21wb25lbnQsIHRoaXMubm9kZSk7XG5cbiAgICBpZiAoaXNOYU4odGhpcy5ub2RlLm1hcmtJbmRleCkpIHtcbiAgICAgIC8vIENyZWF0ZSBuZXcgb2JqZWN0IGJlY2F1c2Ugbm9kZSBvYmplY3QgbWlnaHQgbm90IGJlIGV4dGVuc2libGVcbiAgICAgIHRoaXMubm9kZSA9IHtcbiAgICAgICAgLi4udGhpcy5ub2RlLFxuICAgICAgICBtYXJrSW5kZXg6IDAsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5vZGUubWFya0luZGV4ICs9IDE7XG4gICAgfVxuICAgIGlmICh0aGlzLm5vZGUubWFya3MubGVuZ3RoID4gdGhpcy5ub2RlLm1hcmtJbmRleCkge1xuICAgICAgdGhpcy5yZW5kZXJlclByb3ZpZGVyLmdldE1hcmtSZW5kZXJlcih0aGlzLm5vZGUpLnRoZW4ocmVuZGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVuZGVyKFRleHRWYWx1ZUNvbXBvbmVudCk7XG4gICAgfVxuICB9XG59XG4iXX0=