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