UNPKG

ngx-contentful-rich-text

Version:

Angular renderer for the Contentful rich text field type

48 lines 5.21 kB
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core'; import { RendererProviderService, } from './services/renderer-provider.service'; export class NgxContentfulRichTextComponent { constructor(rendererProvider) { this.rendererProvider = rendererProvider; } ngOnInit() { this.rendererProvider.setNodeRenderers(this.nodeRenderers); this.rendererProvider.setMarkRenderers(this.markRenderers); } ngOnChanges(changes) { var _a; if ((_a = changes.document) === null || _a === void 0 ? void 0 : _a.currentValue) { this.nodes = [changes.document.currentValue]; } } } 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 },] } ]; NgxContentfulRichTextComponent.ctorParameters = () => [ { type: RendererProviderService } ]; NgxContentfulRichTextComponent.propDecorators = { document: [{ type: Input }], nodes: [{ type: Input }], nodeRenderers: [{ type: Input }], markRenderers: [{ type: Input }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNvbnRlbnRmdWwtcmljaC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb250ZW50ZnVsLXJpY2gtdGV4dC9zcmMvbGliL25neC1jb250ZW50ZnVsLXJpY2gtdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFHTCx1QkFBdUIsR0FDeEIsTUFBTSxzQ0FBc0MsQ0FBQztBQXFCOUMsTUFBTSxPQUFPLDhCQUE4QjtJQWF6QyxZQUFvQixnQkFBeUM7UUFBekMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtJQUFHLENBQUM7SUFFakUsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCOztRQUNoQyxVQUFJLE9BQU8sQ0FBQyxRQUFRLDBDQUFFLFlBQVksRUFBRTtZQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7OztZQTNDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztHQWNUO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOzs7WUFyQkMsdUJBQXVCOzs7dUJBd0J0QixLQUFLO29CQUdMLEtBQUs7NEJBR0wsS0FBSzs0QkFHTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJsb2NrLCBEb2N1bWVudCwgSW5saW5lIH0gZnJvbSAnQGNvbnRlbnRmdWwvcmljaC10ZXh0LXR5cGVzJztcblxuaW1wb3J0IHtcbiAgTWFya1JlbmRlcmVyUmVzb2x2ZXIsXG4gIE5vZGVSZW5kZXJlclJlc29sdmVyLFxuICBSZW5kZXJlclByb3ZpZGVyU2VydmljZSxcbn0gZnJvbSAnLi9zZXJ2aWNlcy9yZW5kZXJlci1wcm92aWRlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LWNvbnRlbnRmdWwtcmljaC10ZXh0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9kZXM/Lmxlbmd0aFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbm9kZSBvZiBub2Rlc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJub2RlLm5vZGVUeXBlICE9PSAndGV4dCc7IGVsc2UgdGV4dE5vZGVcIlxuICAgICAgICAgIG5neE5vZGVSZW5kZXJlckhvc3RcbiAgICAgICAgICBbbm9kZV09XCJub2RlXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0Tm9kZT5cbiAgICAgICAgICA8bmctY29udGFpbmVyIG5neE1hcmtSZW5kZXJlckhvc3QgW25vZGVdPVwibm9kZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hDb250ZW50ZnVsUmljaFRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKiBEb2N1bWVudCB0byByZW5kZXIgKi9cbiAgQElucHV0KCkgZG9jdW1lbnQ6IERvY3VtZW50O1xuXG4gIC8qKiBOb2RlcyB0byByZW5kZXIgKi9cbiAgQElucHV0KCkgbm9kZXM6IEFycmF5PEJsb2NrIHwgSW5saW5lPjtcblxuICAvKiogQ3VzdG9tIHJlbmRlcmVycyBmb3IgYmxvY2sgYW5kIGlubGluZSBub2RlcyAqL1xuICBASW5wdXQoKSBub2RlUmVuZGVyZXJzOiBSZWNvcmQ8c3RyaW5nLCBOb2RlUmVuZGVyZXJSZXNvbHZlcj47XG5cbiAgLyoqIEN1c3RvbSByZW5kZXJlcnMgZm9yIG1hcmtzICovXG4gIEBJbnB1dCgpIG1hcmtSZW5kZXJlcnM6IFJlY29yZDxzdHJpbmcsIE1hcmtSZW5kZXJlclJlc29sdmVyPjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyUHJvdmlkZXI6IFJlbmRlcmVyUHJvdmlkZXJTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXJQcm92aWRlci5zZXROb2RlUmVuZGVyZXJzKHRoaXMubm9kZVJlbmRlcmVycyk7XG4gICAgdGhpcy5yZW5kZXJlclByb3ZpZGVyLnNldE1hcmtSZW5kZXJlcnModGhpcy5tYXJrUmVuZGVyZXJzKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kb2N1bWVudD8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLm5vZGVzID0gW2NoYW5nZXMuZG9jdW1lbnQuY3VycmVudFZhbHVlXTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==