ngx-contentful-rich-text
Version:
Angular renderer for the Contentful rich text field type
42 lines • 5.51 kB
JavaScript
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=