UNPKG

ngx-contentful-rich-text

Version:

Angular renderer for the Contentful rich text field type

67 lines 7.17 kB
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "./services/renderer-provider.service"; import * as i2 from "@angular/common"; import * as i3 from "./directives/mark-renderer-host.directive"; import * as i4 from "./directives/node-renderer-host.directive"; export class NgxContentfulRichTextComponent { constructor(rendererProvider) { this.rendererProvider = rendererProvider; } ngOnInit() { this.rendererProvider.setNodeRenderers(this.nodeRenderers); this.rendererProvider.setMarkRenderers(this.markRenderers); } ngOnChanges(changes) { if (changes.document?.currentValue) { this.nodes = [changes.document.currentValue]; } } } NgxContentfulRichTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgxContentfulRichTextComponent, deps: [{ token: i1.RendererProviderService }], target: i0.ɵɵFactoryTarget.Component }); NgxContentfulRichTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: NgxContentfulRichTextComponent, selector: "ngx-contentful-rich-text", inputs: { document: "document", nodes: "nodes", nodeRenderers: "nodeRenderers", markRenderers: "markRenderers" }, usesOnChanges: true, ngImport: i0, template: ` <ng-container *ngIf="nodes?.length"> <ng-container *ngFor="let node of nodes"> <ng-container *ngIf="node.nodeType !== 'text'; else textNode" ngxNodeRendererHost [node]="node" > </ng-container> <ng-template #textNode> <ng-container ngxMarkRendererHost [node]="node"></ng-container> </ng-template> </ng-container> </ng-container> `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MarkRendererHostDirective, selector: "[ngxMarkRendererHost]", inputs: ["node"] }, { kind: "directive", type: i4.NodeRendererHostDirective, selector: "[ngxNodeRendererHost]", inputs: ["node"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: NgxContentfulRichTextComponent, decorators: [{ type: Component, args: [{ selector: 'ngx-contentful-rich-text', template: ` <ng-container *ngIf="nodes?.length"> <ng-container *ngFor="let node of nodes"> <ng-container *ngIf="node.nodeType !== 'text'; else textNode" ngxNodeRendererHost [node]="node" > </ng-container> <ng-template #textNode> <ng-container ngxMarkRendererHost [node]="node"></ng-container> </ng-template> </ng-container> </ng-container> `, changeDetection: ChangeDetectionStrategy.OnPush, }] }], ctorParameters: function () { return [{ type: i1.RendererProviderService }]; }, propDecorators: { document: [{ type: Input }], nodes: [{ type: Input }], nodeRenderers: [{ type: Input }], markRenderers: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNvbnRlbnRmdWwtcmljaC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb250ZW50ZnVsLXJpY2gtdGV4dC9zcmMvbGliL25neC1jb250ZW50ZnVsLXJpY2gtdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUE0QnZCLE1BQU0sT0FBTyw4QkFBOEI7SUFhekMsWUFBb0IsZ0JBQXlDO1FBQXpDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7SUFBRyxDQUFDO0lBRWpFLFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQzs7MkhBeEJVLDhCQUE4QjsrR0FBOUIsOEJBQThCLHVNQWpCL0I7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7MkZBR1UsOEJBQThCO2tCQW5CMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhHQUdVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCbG9jaywgRG9jdW1lbnQsIElubGluZSwgVGV4dCB9IGZyb20gJ0Bjb250ZW50ZnVsL3JpY2gtdGV4dC10eXBlcyc7XG5cbmltcG9ydCB7XG4gIE1hcmtSZW5kZXJlclJlc29sdmVyLFxuICBOb2RlUmVuZGVyZXJSZXNvbHZlcixcbiAgUmVuZGVyZXJQcm92aWRlclNlcnZpY2UsXG59IGZyb20gJy4vc2VydmljZXMvcmVuZGVyZXItcHJvdmlkZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1jb250ZW50ZnVsLXJpY2gtdGV4dCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vZGVzPy5sZW5ndGhcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG5vZGUgb2Ygbm9kZXNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0lmPVwibm9kZS5ub2RlVHlwZSAhPT0gJ3RleHQnOyBlbHNlIHRleHROb2RlXCJcbiAgICAgICAgICBuZ3hOb2RlUmVuZGVyZXJIb3N0XG4gICAgICAgICAgW25vZGVdPVwibm9kZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdGV4dE5vZGU+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBuZ3hNYXJrUmVuZGVyZXJIb3N0IFtub2RlXT1cIm5vZGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd4Q29udGVudGZ1bFJpY2hUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvKiogRG9jdW1lbnQgdG8gcmVuZGVyICovXG4gIEBJbnB1dCgpIGRvY3VtZW50OiBEb2N1bWVudDtcblxuICAvKiogTm9kZXMgdG8gcmVuZGVyICovXG4gIEBJbnB1dCgpIG5vZGVzOiBBcnJheTxCbG9jayB8IElubGluZSB8IFRleHQ+O1xuXG4gIC8qKiBDdXN0b20gcmVuZGVyZXJzIGZvciBibG9jayBhbmQgaW5saW5lIG5vZGVzICovXG4gIEBJbnB1dCgpIG5vZGVSZW5kZXJlcnM6IFJlY29yZDxzdHJpbmcsIE5vZGVSZW5kZXJlclJlc29sdmVyPjtcblxuICAvKiogQ3VzdG9tIHJlbmRlcmVycyBmb3IgbWFya3MgKi9cbiAgQElucHV0KCkgbWFya1JlbmRlcmVyczogUmVjb3JkPHN0cmluZywgTWFya1JlbmRlcmVyUmVzb2x2ZXI+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXJQcm92aWRlcjogUmVuZGVyZXJQcm92aWRlclNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlclByb3ZpZGVyLnNldE5vZGVSZW5kZXJlcnModGhpcy5ub2RlUmVuZGVyZXJzKTtcbiAgICB0aGlzLnJlbmRlcmVyUHJvdmlkZXIuc2V0TWFya1JlbmRlcmVycyh0aGlzLm1hcmtSZW5kZXJlcnMpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRvY3VtZW50Py5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMubm9kZXMgPSBbY2hhbmdlcy5kb2N1bWVudC5jdXJyZW50VmFsdWVdO1xuICAgIH1cbiAgfVxufVxuIl19