{"version":3,"file":"ngx-contentful-rich-text.mjs","sources":["../../../projects/ngx-contentful-rich-text/src/lib/services/renderer-provider.service.ts","../../../projects/ngx-contentful-rich-text/src/lib/classes/renderer-host.class.ts","../../../projects/ngx-contentful-rich-text/src/lib/components/text-value.component.ts","../../../projects/ngx-contentful-rich-text/src/lib/directives/mark-renderer-host.directive.ts","../../../projects/ngx-contentful-rich-text/src/lib/directives/node-renderer-host.directive.ts","../../../projects/ngx-contentful-rich-text/src/lib/ngx-contentful-rich-text.component.ts","../../../projects/ngx-contentful-rich-text/src/lib/classes/mark-renderer.class.ts","../../../projects/ngx-contentful-rich-text/src/lib/components/default-mark-renderer.component.ts","../../../projects/ngx-contentful-rich-text/src/lib/classes/node-renderer.class.ts","../../../projects/ngx-contentful-rich-text/src/lib/components/default-node-renderer.component.ts","../../../projects/ngx-contentful-rich-text/src/lib/ngx-contentful-rich-text.module.ts","../../../projects/ngx-contentful-rich-text/src/public-api.ts","../../../projects/ngx-contentful-rich-text/src/ngx-contentful-rich-text.ts"],"sourcesContent":["import { Injectable, Type } from '@angular/core';\nimport { Block, Inline } from '@contentful/rich-text-types';\n\nimport { MarkRenderer, Text } from '../classes/mark-renderer.class';\nimport { NodeRenderer } from '../classes/node-renderer.class';\n\nexport type NodeRendererFunction = (node: Block | Inline) => Type<NodeRenderer>;\nexport type NodeRendererResolver = Type<NodeRenderer> | NodeRendererFunction;\n\nexport type MarkRendererFunction = (node: Text) => Type<MarkRenderer>;\nexport type MarkRendererResolver = Type<MarkRenderer> | MarkRendererFunction;\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class RendererProviderService {\n  private nodeRenderers: Record<string, NodeRendererResolver> = {};\n  private markRenderers: Record<string, MarkRendererResolver> = {};\n\n  async getMarkRenderer(node: Text): Promise<Type<MarkRenderer>> {\n    const mark = node.marks[node.markIndex];\n    const resolver = this.markRenderers[mark.type];\n    let renderer: Type<MarkRenderer>;\n    try {\n      renderer = (resolver as MarkRendererFunction)(node);\n    } catch (error) {\n      renderer = resolver as Type<MarkRenderer>;\n    }\n    if (!renderer) {\n      const { DefaultMarkRendererComponent } = await import(\n        '../components/default-mark-renderer.component'\n      );\n      renderer = DefaultMarkRendererComponent;\n    }\n    return renderer;\n  }\n\n  async getNodeRenderer(node: Block | Inline): Promise<Type<NodeRenderer>> {\n    const resolver = this.nodeRenderers[node.nodeType];\n    let renderer: Type<NodeRenderer>;\n    try {\n      renderer = (resolver as NodeRendererFunction)(node);\n    } catch (error) {\n      renderer = resolver as Type<NodeRenderer>;\n    }\n    if (!renderer) {\n      const { DefaultNodeRendererComponent } = await import(\n        '../components/default-node-renderer.component'\n      );\n      renderer = DefaultNodeRendererComponent;\n    }\n    return renderer;\n  }\n\n  setNodeRenderers(customRenderers: Record<string, NodeRendererResolver>) {\n    this.nodeRenderers = Object.assign(this.nodeRenderers, customRenderers);\n  }\n\n  setMarkRenderers(customRenderers: Record<string, MarkRendererResolver>) {\n    this.markRenderers = Object.assign(this.markRenderers, customRenderers);\n  }\n}\n","import { ViewContainerRef, Type } from '@angular/core';\nimport { Block, Inline, Text } from '@contentful/rich-text-types';\nimport { MarkRenderer } from '../classes/mark-renderer.class';\nimport { NodeRenderer } from '../classes/node-renderer.class';\nimport { TextValueComponent } from '../components/text-value.component';\n\nexport abstract class RendererHost {\n  render(\n    viewContainerRef: ViewContainerRef,\n    component: Type<NodeRenderer | MarkRenderer | TextValueComponent>,\n    node: Block | Inline | Text\n  ): void {\n    viewContainerRef.clear();\n    const componentRef = viewContainerRef.createComponent(component);\n    componentRef.instance.node = node;\n    componentRef.changeDetectorRef.detectChanges();\n  }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Text } from '@contentful/rich-text-types';\n\n@Component({\n  template: '{{ node.value }}',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextValueComponent {\n  @Input() node: Text;\n}\n","import {\n  Directive,\n  Input,\n  OnInit,\n  Type,\n  ViewContainerRef,\n} from '@angular/core';\n\nimport { MarkRenderer, Text } from '../classes/mark-renderer.class';\nimport { RendererHost } from '../classes/renderer-host.class';\nimport { TextValueComponent } from '../components/text-value.component';\nimport { RendererProviderService } from '../services/renderer-provider.service';\n\n@Directive({\n  selector: '[ngxMarkRendererHost]',\n})\nexport class MarkRendererHostDirective extends RendererHost implements OnInit {\n  @Input() node: Text;\n\n  constructor(\n    private viewContainerRef: ViewContainerRef,\n    private rendererProvider: RendererProviderService\n  ) {\n    super();\n  }\n\n  ngOnInit() {\n    const render = (component: Type<MarkRenderer | TextValueComponent>) =>\n      this.render(this.viewContainerRef, component, this.node);\n\n    if (isNaN(this.node.markIndex)) {\n      // Create new object because node object might not be extensible\n      this.node = {\n        ...this.node,\n        markIndex: 0,\n      };\n    } else {\n      this.node.markIndex += 1;\n    }\n    if (this.node.marks.length > this.node.markIndex) {\n      this.rendererProvider.getMarkRenderer(this.node).then(render);\n    } else {\n      render(TextValueComponent);\n    }\n  }\n}\n","import { Directive, Input, OnInit, ViewContainerRef } from '@angular/core';\nimport { Block, Inline } from '@contentful/rich-text-types';\nimport { RendererHost } from '../classes/renderer-host.class';\n\nimport { RendererProviderService } from '../services/renderer-provider.service';\n\n@Directive({\n  selector: '[ngxNodeRendererHost]',\n})\nexport class NodeRendererHostDirective extends RendererHost implements OnInit {\n  @Input() node: Block | Inline;\n\n  constructor(\n    private viewContainerRef: ViewContainerRef,\n    private rendererProvider: RendererProviderService\n  ) {\n    super();\n  }\n\n  ngOnInit() {\n    this.rendererProvider\n      .getNodeRenderer(this.node)\n      .then((component) =>\n        this.render(this.viewContainerRef, component, this.node)\n      );\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnChanges,\n  OnInit,\n  SimpleChanges,\n} from '@angular/core';\nimport { Block, Document, Inline, Text } from '@contentful/rich-text-types';\n\nimport {\n  MarkRendererResolver,\n  NodeRendererResolver,\n  RendererProviderService,\n} from './services/renderer-provider.service';\n\n@Component({\n  selector: 'ngx-contentful-rich-text',\n  template: `\n    <ng-container *ngIf=\"nodes?.length\">\n      <ng-container *ngFor=\"let node of nodes\">\n        <ng-container\n          *ngIf=\"node.nodeType !== 'text'; else textNode\"\n          ngxNodeRendererHost\n          [node]=\"node\"\n        >\n        </ng-container>\n        <ng-template #textNode>\n          <ng-container ngxMarkRendererHost [node]=\"node\"></ng-container>\n        </ng-template>\n      </ng-container>\n    </ng-container>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxContentfulRichTextComponent implements OnInit, OnChanges {\n  /** Document to render */\n  @Input() document: Document;\n\n  /** Nodes to render */\n  @Input() nodes: Array<Block | Inline | Text>;\n\n  /** Custom renderers for block and inline nodes */\n  @Input() nodeRenderers: Record<string, NodeRendererResolver>;\n\n  /** Custom renderers for marks */\n  @Input() markRenderers: Record<string, MarkRendererResolver>;\n\n  constructor(private rendererProvider: RendererProviderService) {}\n\n  ngOnInit(): void {\n    this.rendererProvider.setNodeRenderers(this.nodeRenderers);\n    this.rendererProvider.setMarkRenderers(this.markRenderers);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.document?.currentValue) {\n      this.nodes = [changes.document.currentValue];\n    }\n  }\n}\n","import { Text as IText } from '@contentful/rich-text-types';\n\nexport interface Text extends IText {\n  markIndex: number;\n}\nexport abstract class MarkRenderer {\n  node: Text;\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { MARKS } from '@contentful/rich-text-types';\n\nimport { MarkRenderer } from '../classes/mark-renderer.class';\n\nexport const TEXT = `<ng-container ngxMarkRendererHost [node]=\"node\"></ng-container>`;\n\n@Component({\n  template: `\n    <ng-container [ngSwitch]=\"node.marks[node.markIndex].type\">\n      <b *ngSwitchCase=\"MARKS.BOLD\">${TEXT}</b>\n      <code *ngSwitchCase=\"MARKS.CODE\">${TEXT}</code>\n      <i *ngSwitchCase=\"MARKS.ITALIC\">${TEXT}</i>\n      <u *ngSwitchCase=\"MARKS.UNDERLINE\">${TEXT}</u>\n    </ng-container>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DefaultMarkRendererComponent extends MarkRenderer {\n  MARKS: typeof MARKS = MARKS;\n}\n","import { Block, Inline } from '@contentful/rich-text-types';\n\nexport abstract class NodeRenderer {\n  node: Block | Inline;\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BLOCKS, INLINES } from '@contentful/rich-text-types';\n\nimport { NodeRenderer } from '../classes/node-renderer.class';\n\nexport const CHILDREN =\n  '<ngx-contentful-rich-text [nodes]=\"node.content\"></ngx-contentful-rich-text>';\n\nconst DEFAULT_INLINE =\n  '<span>type: {{ node.nodeType }} id: {{ node.data.target.sys.id }}</span>';\n\n@Component({\n  template: `\n    <ng-container [ngSwitch]=\"node.nodeType\">\n      <ng-container *ngSwitchCase=\"BLOCKS.DOCUMENT\">${CHILDREN}</ng-container>\n      <div *ngSwitchCase=\"BLOCKS.EMBEDDED_ENTRY\">${CHILDREN}</div>\n      <h1 *ngSwitchCase=\"BLOCKS.HEADING_1\">${CHILDREN}</h1>\n      <h2 *ngSwitchCase=\"BLOCKS.HEADING_2\">${CHILDREN}</h2>\n      <h3 *ngSwitchCase=\"BLOCKS.HEADING_3\">${CHILDREN}</h3>\n      <h4 *ngSwitchCase=\"BLOCKS.HEADING_4\">${CHILDREN}</h4>\n      <h5 *ngSwitchCase=\"BLOCKS.HEADING_5\">${CHILDREN}</h5>\n      <h6 *ngSwitchCase=\"BLOCKS.HEADING_6\">${CHILDREN}</h6>\n      <hr *ngSwitchCase=\"BLOCKS.HR\" />\n      <li *ngSwitchCase=\"BLOCKS.LIST_ITEM\">${CHILDREN}</li>\n      <ol *ngSwitchCase=\"BLOCKS.OL_LIST\">\n        ${CHILDREN}\n      </ol>\n      <p *ngSwitchCase=\"BLOCKS.PARAGRAPH\">${CHILDREN}</p>\n      <blockquote *ngSwitchCase=\"BLOCKS.QUOTE\">${CHILDREN}</blockquote>\n      <ul *ngSwitchCase=\"BLOCKS.UL_LIST\">\n        ${CHILDREN}\n      </ul>\n      <ng-container *ngSwitchCase=\"INLINES.ASSET_HYPERLINK\">\n        ${DEFAULT_INLINE}\n      </ng-container>\n      <ng-container *ngSwitchCase=\"INLINES.EMBEDDED_ENTRY\">\n        ${DEFAULT_INLINE}\n      </ng-container>\n      <ng-container *ngSwitchCase=\"INLINES.ENTRY_HYPERLINK\">\n        ${DEFAULT_INLINE}\n      </ng-container>\n      <a *ngSwitchCase=\"INLINES.HYPERLINK\" [href]=\"node.data.uri\">\n        ${CHILDREN}\n      </a>\n    </ng-container>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DefaultNodeRendererComponent extends NodeRenderer {\n  BLOCKS: typeof BLOCKS = BLOCKS;\n  INLINES: typeof INLINES = INLINES;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DefaultMarkRendererComponent } from './components/default-mark-renderer.component';\nimport { DefaultNodeRendererComponent } from './components/default-node-renderer.component';\nimport { TextValueComponent } from './components/text-value.component';\nimport { MarkRendererHostDirective } from './directives/mark-renderer-host.directive';\nimport { NodeRendererHostDirective } from './directives/node-renderer-host.directive';\nimport { NgxContentfulRichTextComponent } from './ngx-contentful-rich-text.component';\n\n@NgModule({\n  declarations: [\n    DefaultMarkRendererComponent,\n    DefaultNodeRendererComponent,\n    MarkRendererHostDirective,\n    NgxContentfulRichTextComponent,\n    NodeRendererHostDirective,\n    TextValueComponent,\n  ],\n  imports: [CommonModule],\n  exports: [MarkRendererHostDirective, NgxContentfulRichTextComponent],\n})\nexport class NgxContentfulRichTextModule {}\n","/*\n * Public API Surface of ngx-contentful-rich-text\n */\n\nexport * from './lib/ngx-contentful-rich-text.component';\nexport * from './lib/ngx-contentful-rich-text.module';\nexport * from './lib/directives/mark-renderer-host.directive';\n\nexport { MarkRenderer } from './lib/classes/mark-renderer.class';\nexport * from './lib/classes/node-renderer.class';\n\nexport * from './lib/components/default-mark-renderer.component';\nexport * from './lib/components/default-node-renderer.component';\n\nexport * from './lib/services/renderer-provider.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.RendererProviderService","i2","i3.MarkRendererHostDirective","i4.NodeRendererHostDirective","i2.MarkRendererHostDirective","i2.NgxContentfulRichTextComponent"],"mappings":"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"}