UNPKG

ngx-contentful-rich-text

Version:

Angular renderer for the Contentful rich text field type

52 lines 6.12 kB
import { ChangeDetectionStrategy, Component } from '@angular/core'; import { BLOCKS, INLINES } from '@contentful/rich-text-types'; import { NodeRenderer } from '../classes/node-renderer.class'; export const CHILDREN = '<ngx-contentful-rich-text [nodes]="node.content"></ngx-contentful-rich-text>'; const DEFAULT_INLINE = '<span>type: {{ node.nodeType }} id: {{ node.data.target.sys.id }}</span>'; export class DefaultNodeRendererComponent extends NodeRenderer { constructor() { super(...arguments); this.BLOCKS = BLOCKS; this.INLINES = INLINES; } } DefaultNodeRendererComponent.decorators = [ { type: Component, args: [{ template: ` <ng-container [ngSwitch]="node.nodeType"> <ng-container *ngSwitchCase="BLOCKS.DOCUMENT">${CHILDREN}</ng-container> <div *ngSwitchCase="BLOCKS.EMBEDDED_ENTRY">${CHILDREN}</div> <h1 *ngSwitchCase="BLOCKS.HEADING_1">${CHILDREN}</h1> <h2 *ngSwitchCase="BLOCKS.HEADING_2">${CHILDREN}</h2> <h3 *ngSwitchCase="BLOCKS.HEADING_3">${CHILDREN}</h3> <h4 *ngSwitchCase="BLOCKS.HEADING_4">${CHILDREN}</h4> <h5 *ngSwitchCase="BLOCKS.HEADING_5">${CHILDREN}</h5> <h6 *ngSwitchCase="BLOCKS.HEADING_6">${CHILDREN}</h6> <hr *ngSwitchCase="BLOCKS.HR" /> <li *ngSwitchCase="BLOCKS.LIST_ITEM">${CHILDREN}</li> <ol *ngSwitchCase="BLOCKS.OL_LIST"> ${CHILDREN} </ol> <p *ngSwitchCase="BLOCKS.PARAGRAPH">${CHILDREN}</p> <blockquote *ngSwitchCase="BLOCKS.QUOTE">${CHILDREN}</blockquote> <ul *ngSwitchCase="BLOCKS.UL_LIST"> ${CHILDREN} </ul> <ng-container *ngSwitchCase="INLINES.ASSET_HYPERLINK"> ${DEFAULT_INLINE} </ng-container> <ng-container *ngSwitchCase="INLINES.EMBEDDED_ENTRY"> ${DEFAULT_INLINE} </ng-container> <ng-container *ngSwitchCase="INLINES.ENTRY_HYPERLINK"> ${DEFAULT_INLINE} </ng-container> <a *ngSwitchCase="INLINES.HYPERLINK" [href]="node.data.uri"> ${CHILDREN} </a> </ng-container> `, changeDetection: ChangeDetectionStrategy.OnPush },] } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1ub2RlLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb250ZW50ZnVsLXJpY2gtdGV4dC9zcmMvbGliL2NvbXBvbmVudHMvZGVmYXVsdC1ub2RlLXJlbmRlcmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTlELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FDbkIsOEVBQThFLENBQUM7QUFFakYsTUFBTSxjQUFjLEdBQ2xCLDBFQUEwRSxDQUFDO0FBdUM3RSxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsWUFBWTtJQXJDOUQ7O1FBc0NFLFdBQU0sR0FBa0IsTUFBTSxDQUFDO1FBQy9CLFlBQU8sR0FBbUIsT0FBTyxDQUFDO0lBQ3BDLENBQUM7OztZQXhDQSxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFOztzREFFMEMsUUFBUTttREFDWCxRQUFROzZDQUNkLFFBQVE7NkNBQ1IsUUFBUTs2Q0FDUixRQUFROzZDQUNSLFFBQVE7NkNBQ1IsUUFBUTs2Q0FDUixRQUFROzs2Q0FFUixRQUFROztVQUUzQyxRQUFROzs0Q0FFMEIsUUFBUTtpREFDSCxRQUFROztVQUUvQyxRQUFROzs7VUFHUixjQUFjOzs7VUFHZCxjQUFjOzs7VUFHZCxjQUFjOzs7VUFHZCxRQUFROzs7R0FHZjtnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJMT0NLUywgSU5MSU5FUyB9IGZyb20gJ0Bjb250ZW50ZnVsL3JpY2gtdGV4dC10eXBlcyc7XG5cbmltcG9ydCB7IE5vZGVSZW5kZXJlciB9IGZyb20gJy4uL2NsYXNzZXMvbm9kZS1yZW5kZXJlci5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBDSElMRFJFTiA9XG4gICc8bmd4LWNvbnRlbnRmdWwtcmljaC10ZXh0IFtub2Rlc109XCJub2RlLmNvbnRlbnRcIj48L25neC1jb250ZW50ZnVsLXJpY2gtdGV4dD4nO1xuXG5jb25zdCBERUZBVUxUX0lOTElORSA9XG4gICc8c3Bhbj50eXBlOiB7eyBub2RlLm5vZGVUeXBlIH19IGlkOiB7eyBub2RlLmRhdGEudGFyZ2V0LnN5cy5pZCB9fTwvc3Bhbj4nO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJub2RlLm5vZGVUeXBlXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJCTE9DS1MuRE9DVU1FTlRcIj4ke0NISUxEUkVOfTwvbmctY29udGFpbmVyPlxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiQkxPQ0tTLkVNQkVEREVEX0VOVFJZXCI+JHtDSElMRFJFTn08L2Rpdj5cbiAgICAgIDxoMSAqbmdTd2l0Y2hDYXNlPVwiQkxPQ0tTLkhFQURJTkdfMVwiPiR7Q0hJTERSRU59PC9oMT5cbiAgICAgIDxoMiAqbmdTd2l0Y2hDYXNlPVwiQkxPQ0tTLkhFQURJTkdfMlwiPiR7Q0hJTERSRU59PC9oMj5cbiAgICAgIDxoMyAqbmdTd2l0Y2hDYXNlPVwiQkxPQ0tTLkhFQURJTkdfM1wiPiR7Q0hJTERSRU59PC9oMz5cbiAgICAgIDxoNCAqbmdTd2l0Y2hDYXNlPVwiQkxPQ0tTLkhFQURJTkdfNFwiPiR7Q0hJTERSRU59PC9oND5cbiAgICAgIDxoNSAqbmdTd2l0Y2hDYXNlPVwiQkxPQ0tTLkhFQURJTkdfNVwiPiR7Q0hJTERSRU59PC9oNT5cbiAgICAgIDxoNiAqbmdTd2l0Y2hDYXNlPVwiQkxPQ0tTLkhFQURJTkdfNlwiPiR7Q0hJTERSRU59PC9oNj5cbiAgICAgIDxociAqbmdTd2l0Y2hDYXNlPVwiQkxPQ0tTLkhSXCIgLz5cbiAgICAgIDxsaSAqbmdTd2l0Y2hDYXNlPVwiQkxPQ0tTLkxJU1RfSVRFTVwiPiR7Q0hJTERSRU59PC9saT5cbiAgICAgIDxvbCAqbmdTd2l0Y2hDYXNlPVwiQkxPQ0tTLk9MX0xJU1RcIj5cbiAgICAgICAgJHtDSElMRFJFTn1cbiAgICAgIDwvb2w+XG4gICAgICA8cCAqbmdTd2l0Y2hDYXNlPVwiQkxPQ0tTLlBBUkFHUkFQSFwiPiR7Q0hJTERSRU59PC9wPlxuICAgICAgPGJsb2NrcXVvdGUgKm5nU3dpdGNoQ2FzZT1cIkJMT0NLUy5RVU9URVwiPiR7Q0hJTERSRU59PC9ibG9ja3F1b3RlPlxuICAgICAgPHVsICpuZ1N3aXRjaENhc2U9XCJCTE9DS1MuVUxfTElTVFwiPlxuICAgICAgICAke0NISUxEUkVOfVxuICAgICAgPC91bD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIklOTElORVMuQVNTRVRfSFlQRVJMSU5LXCI+XG4gICAgICAgICR7REVGQVVMVF9JTkxJTkV9XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIklOTElORVMuRU1CRURERURfRU5UUllcIj5cbiAgICAgICAgJHtERUZBVUxUX0lOTElORX1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiSU5MSU5FUy5FTlRSWV9IWVBFUkxJTktcIj5cbiAgICAgICAgJHtERUZBVUxUX0lOTElORX1cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGEgKm5nU3dpdGNoQ2FzZT1cIklOTElORVMuSFlQRVJMSU5LXCIgW2hyZWZdPVwibm9kZS5kYXRhLnVyaVwiPlxuICAgICAgICAke0NISUxEUkVOfVxuICAgICAgPC9hPlxuICAgIDwvbmctY29udGFpbmVyPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdE5vZGVSZW5kZXJlckNvbXBvbmVudCBleHRlbmRzIE5vZGVSZW5kZXJlciB7XG4gIEJMT0NLUzogdHlwZW9mIEJMT0NLUyA9IEJMT0NLUztcbiAgSU5MSU5FUzogdHlwZW9mIElOTElORVMgPSBJTkxJTkVTO1xufVxuIl19