@ethlete/contentful 0.1.0-next.9 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/esm2020/lib/components/audio/contentful-audio.component.mjs +3 -3
  2. package/esm2020/lib/components/file/contentful-file.component.mjs +3 -3
  3. package/esm2020/lib/components/image/contentful-image.component.mjs +94 -47
  4. package/esm2020/lib/components/image/contentful-image.component.utils.mjs +86 -0
  5. package/esm2020/lib/components/image/index.mjs +2 -0
  6. package/esm2020/lib/components/image/public-api.mjs +2 -1
  7. package/esm2020/lib/components/rich-text-renderer/rich-text-renderer.component.mjs +16 -8
  8. package/esm2020/lib/components/rich-text-renderer/rich-text-renderer.util.mjs +13 -10
  9. package/esm2020/lib/components/video/contentful-video.component.mjs +3 -3
  10. package/esm2020/lib/contentful.imports.mjs +9 -0
  11. package/esm2020/lib/gql/asset.fragments.mjs +2 -3
  12. package/esm2020/lib/public-api.mjs +2 -2
  13. package/esm2020/lib/types/contentful.types.mjs +1 -1
  14. package/esm2020/lib/utils/contentful-config.mjs +6 -1
  15. package/esm2020/lib/utils/contentful.util.mjs +7 -1
  16. package/esm2020/lib/utils/index.mjs +2 -0
  17. package/fesm2015/ethlete-contentful.mjs +277 -155
  18. package/fesm2015/ethlete-contentful.mjs.map +1 -1
  19. package/fesm2020/ethlete-contentful.mjs +274 -154
  20. package/fesm2020/ethlete-contentful.mjs.map +1 -1
  21. package/lib/components/image/contentful-image.component.d.ts +20 -12
  22. package/lib/components/image/contentful-image.component.utils.d.ts +16 -0
  23. package/lib/components/image/index.d.ts +1 -0
  24. package/lib/components/image/public-api.d.ts +1 -0
  25. package/lib/components/rich-text-renderer/rich-text-renderer.component.d.ts +1 -1
  26. package/lib/components/rich-text-renderer/rich-text-renderer.util.d.ts +2 -3
  27. package/lib/contentful.imports.d.ts +2 -0
  28. package/lib/public-api.d.ts +1 -1
  29. package/lib/types/contentful.types.d.ts +29 -6
  30. package/lib/utils/contentful.util.d.ts +3 -1
  31. package/lib/utils/index.d.ts +1 -0
  32. package/package.json +3 -3
  33. package/esm2020/lib/contentful.module.mjs +0 -40
  34. package/lib/contentful.module.d.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"ethlete-contentful.mjs","sources":["../../../../libs/contentful/src/lib/constants/contentful.constants.ts","../../../../libs/contentful/src/lib/utils/contentful-config.ts","../../../../libs/contentful/src/lib/components/rich-text-renderer/rich-text-renderer.constants.ts","../../../../libs/contentful/src/lib/components/rich-text-renderer/rich-text-renderer.util.ts","../../../../libs/contentful/src/lib/components/rich-text-renderer/rich-text-renderer.component.ts","../../../../libs/contentful/src/lib/components/audio/contentful-audio.component.ts","../../../../libs/contentful/src/lib/components/file/contentful-file.component.ts","../../../../libs/contentful/src/lib/components/image/contentful-image.component.ts","../../../../libs/contentful/src/lib/components/video/contentful-video.component.ts","../../../../libs/contentful/src/lib/contentful.module.ts","../../../../libs/contentful/src/lib/gql/asset.fragments.ts","../../../../libs/contentful/src/lib/utils/contentful.util.ts","../../../../libs/contentful/src/ethlete-contentful.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { ContentfulConfig } from '../types';\n\nexport const CONTENTFUL_CONFIG = new InjectionToken<ContentfulConfig>('ContentfulConfig');\n","import {\n ContentfulAudioComponent,\n ContentfulFileComponent,\n ContentfulImageComponent,\n ContentfulVideoComponent,\n} from '../components';\nimport { ContentfulConfig } from '../types';\n\nexport const createContentfulConfig = (\n config: Partial<ContentfulConfig> | null | undefined = {},\n): ContentfulConfig => ({\n // This default config must be inline and not saved inside a const for some weird webpack reason\n ...{\n useTailwindClasses: false,\n components: {\n audio: ContentfulAudioComponent,\n file: ContentfulFileComponent,\n image: ContentfulImageComponent,\n video: ContentfulVideoComponent,\n },\n customComponents: {},\n },\n ...(config || {}),\n});\n","import { InjectionToken } from '@angular/core';\n\nexport const RICH_TEXT_RENDERER_COMPONENT_DATA = new InjectionToken<unknown>('RICH_TEXT_RENDERER_COMPONENT_DATA');\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Block, BLOCKS, Inline, INLINES, Mark, Text } from '@contentful/rich-text-types';\nimport {\n ContentfulAsset,\n ContentfulAssetComponents,\n ContentfulConfig,\n ContentfulEntryBase,\n RichTextResponse,\n} from '../../types';\nimport { ContentfulResourceMap, RichTextRenderCommand } from './rich-text-renderer.types';\n\nexport const createRenderCommandsFromContentfulRichText = (options: {\n data: RichTextResponse;\n config: ContentfulConfig;\n}) => {\n const { data, config } = options;\n\n const commands: RichTextRenderCommand[] = [];\n const resourceMap = createContentfulResourceMap(data.links);\n\n createContentfulRenderCommand(\n data.json,\n { children: commands, payload: data.json.nodeType },\n resourceMap,\n config.useTailwindClasses,\n config.components,\n config.customComponents,\n );\n\n return commands;\n};\n\nexport const createContentfulRenderCommand = (\n node: Block | Inline | Text,\n parent: RichTextRenderCommand,\n resourceMap: ContentfulResourceMap,\n useTailwindClasses: boolean,\n assetComponents: ContentfulAssetComponents,\n customComponents: Record<string, ComponentType<unknown>> | undefined,\n) => {\n const { nodeType, data: nodeData } = node;\n\n const { children, marks, value } = getContentfulNodeProps(node);\n\n const command: RichTextRenderCommand = {\n payload: translateContentfulNodeTypeToHtmlTag(nodeType),\n data: value,\n attributes: {\n ...(marks\n ? {\n class: transformContentfulMarks(marks, useTailwindClasses),\n }\n : {}),\n ...(nodeData['uri'] ? { href: nodeData['uri'], target: '_blank' } : {}),\n },\n children: [],\n };\n\n const entryId = nodeData['target']?.sys?.id;\n\n if (nodeType === BLOCKS.EMBEDDED_ASSET) {\n const asset = resourceMap.assetsBlock.get(entryId);\n\n if (asset) {\n const isImage = asset.contentType.startsWith('image/');\n const isVideo = asset.contentType.startsWith('video/');\n const isAudio = asset.contentType.startsWith('audio/');\n\n command.data = asset;\n\n if (isImage) {\n command.payload = assetComponents.image;\n } else if (isVideo) {\n command.payload = assetComponents.video;\n } else if (isAudio) {\n command.payload = assetComponents.audio;\n } else {\n command.payload = assetComponents.file;\n }\n } else {\n console.warn(`No asset found for entry id \"${entryId}\"!`, nodeData);\n }\n } else if (nodeType === BLOCKS.EMBEDDED_ENTRY || nodeType === INLINES.EMBEDDED_ENTRY) {\n const entry = resourceMap.entriesBlock.get(entryId) ?? resourceMap.entriesInline.get(entryId);\n\n if (entry) {\n const type = entry?.__typename ?? 'ET_UNKNOWN';\n const component = customComponents?.[type];\n\n if (component) {\n command.payload = component;\n command.data = entry;\n } else {\n command.data = `ERROR: No component found for embedded entry \"${type}\" as \"${nodeType}\"!`;\n }\n } else {\n console.warn(`No entry found for entry id \"${entryId}\"!`, nodeData);\n }\n }\n\n if (children && (children.length !== 1 || children[0].nodeType !== 'text')) {\n children.forEach((child) => {\n createContentfulRenderCommand(child, command, resourceMap, useTailwindClasses, assetComponents, customComponents);\n });\n }\n\n parent.children.push(command);\n\n return command;\n};\n\nexport const getContentfulNodeProps = (node: Block | Inline | Text) => {\n const children = 'content' in node ? node.content : null;\n let marks: Mark[] | null = null;\n let value: string | null = null;\n\n if (children && children.length === 1 && children[0].nodeType === 'text') {\n marks = children[0].marks?.length ? children[0].marks : null;\n value = children[0].value;\n } else {\n marks = 'marks' in node ? (node.marks?.length ? node.marks : null) : null;\n value = 'value' in node ? node.value : null;\n }\n\n return {\n children,\n marks,\n value,\n };\n};\n\nexport const transformContentfulMarks = (marks: Mark[], useTailwindClasses: boolean) => {\n return marks\n .map((mark) => {\n switch (mark.type) {\n case 'bold':\n return useTailwindClasses ? 'font-bold' : mark.type;\n case 'italic':\n return useTailwindClasses ? 'italic' : mark.type;\n case 'underline':\n return useTailwindClasses ? 'underline' : mark.type;\n case 'code':\n return useTailwindClasses ? 'font-mono' : mark.type;\n default:\n return mark.type;\n }\n })\n .join(' ');\n};\n\nexport const translateContentfulNodeTypeToHtmlTag = (nodeType: 'text' | BLOCKS | INLINES) => {\n switch (nodeType) {\n case BLOCKS.HEADING_1:\n return 'h1';\n case BLOCKS.HEADING_2:\n return 'h2';\n case BLOCKS.HEADING_3:\n return 'h3';\n case BLOCKS.HEADING_4:\n return 'h4';\n case BLOCKS.HEADING_5:\n return 'h5';\n case BLOCKS.HEADING_6:\n return 'h6';\n case BLOCKS.PARAGRAPH:\n return 'p';\n case BLOCKS.UL_LIST:\n return 'ul';\n case BLOCKS.OL_LIST:\n return 'ol';\n case BLOCKS.LIST_ITEM:\n return 'li';\n case BLOCKS.HR:\n return 'hr';\n case BLOCKS.QUOTE:\n return 'blockquote';\n case BLOCKS.TABLE:\n return 'table';\n case BLOCKS.TABLE_ROW:\n return 'tr';\n case BLOCKS.TABLE_CELL:\n return 'td';\n case BLOCKS.TABLE_HEADER_CELL:\n return 'th';\n case BLOCKS.EMBEDDED_ASSET:\n return 'div';\n\n case INLINES.HYPERLINK:\n return 'a';\n case INLINES.ENTRY_HYPERLINK:\n return 'a';\n case INLINES.ASSET_HYPERLINK:\n return 'a';\n\n case 'text':\n return 'span';\n\n // Will be ignored by the renderer\n case 'document':\n return 'document';\n\n case BLOCKS.EMBEDDED_ENTRY:\n return 'div';\n case INLINES.EMBEDDED_ENTRY:\n return 'div';\n\n default:\n return 'div';\n }\n};\n\nexport const createContentfulResourceMap = (links: RichTextResponse['links']): ContentfulResourceMap => {\n const resourceMap = {\n assetsBlock: createContentfulMap<ContentfulAsset>(links?.assets?.block),\n entriesInline: createContentfulMap(links?.entries?.inline),\n entriesBlock: createContentfulMap(links?.entries?.block),\n } as const;\n\n return resourceMap;\n};\n\nexport const createContentfulMap = <T extends ContentfulEntryBase>(links: Array<T> | null | undefined) => {\n const assetMap = new Map<string, T>();\n\n if (links) {\n for (const link of links) {\n if (!link?.sys?.id) {\n console.warn('Link has no sys.id property. Please include it inside your query.', link);\n continue;\n }\n\n assetMap.set(link.sys.id, link);\n }\n }\n\n return assetMap;\n};\n","import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ChangeDetectionStrategy,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n inject,\n Injector,\n Input,\n Renderer2,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CONTENTFUL_CONFIG } from '../../constants/contentful.constants';\nimport { RichTextResponse } from '../../types';\nimport { createContentfulConfig } from '../../utils/contentful-config';\nimport { RICH_TEXT_RENDERER_COMPONENT_DATA } from './rich-text-renderer.constants';\nimport { RichTextRenderCommand } from './rich-text-renderer.types';\nimport { createRenderCommandsFromContentfulRichText } from './rich-text-renderer.util';\n\n@Component({\n selector: 'et-contentful-rich-text-renderer',\n template: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'et-contentful-rich-text-renderer',\n },\n})\nexport class ContentfulRichTextRendererComponent {\n @Input()\n get richText() {\n return this._richText;\n }\n set richText(v: RichTextResponse | null | undefined) {\n this._richText = v ?? null;\n\n // clear childNodes to prevent appending new richtext elements to existing one\n const childElements = this._elementRef.nativeElement.childNodes;\n for (const child of childElements) {\n this._renderer.removeChild(this._elementRef.nativeElement, child);\n }\n\n if (!v) {\n return;\n }\n\n const commands = createRenderCommandsFromContentfulRichText({ data: v, config: this._config });\n\n this._render(commands);\n }\n private _richText: RichTextResponse | null = null;\n\n private _renderer = inject(Renderer2);\n private _elementRef = inject(ElementRef);\n private _viewContainerRef = inject(ViewContainerRef);\n private _componentFactoryResolver = inject(ComponentFactoryResolver);\n private _document = inject<Document>(DOCUMENT);\n private _appRef = inject(ApplicationRef);\n private _injector = inject(Injector);\n private _config = inject(CONTENTFUL_CONFIG, { optional: true }) ?? createContentfulConfig();\n\n private _render(commands: RichTextRenderCommand[]) {\n // create a document fragment to hold the elements while we create them\n const fragment = document.createDocumentFragment();\n\n const hostCommand: RichTextRenderCommand = {\n payload: 'document',\n children: commands,\n };\n\n // loop over the commands\n this._executeCommand({ command: hostCommand, parent: fragment });\n\n // append the fragment to the host element\n this._renderer.appendChild(this._elementRef.nativeElement, fragment);\n }\n\n private _executeCommand(data: { command: RichTextRenderCommand; parent: Element | DocumentFragment }) {\n const { command, parent } = data;\n\n let element: Element | null = null;\n if (command.payload !== 'document') {\n if (typeof command.payload === 'string') {\n element = this._renderer.createElement(command.payload);\n\n if (command.data) {\n this._renderer.setProperty(element, 'innerText', command.data);\n }\n\n if (command.attributes) {\n for (const [name, value] of Object.entries(command.attributes)) {\n this._renderer.setAttribute(element, name, value);\n }\n }\n this._renderer.appendChild(parent, element);\n } else {\n const injector = Injector.create({\n providers: [\n {\n provide: RICH_TEXT_RENDERER_COMPONENT_DATA,\n useValue: command.data,\n },\n ],\n parent: this._injector,\n });\n\n const portal = new DomPortalOutlet(\n parent as Element,\n this._componentFactoryResolver,\n this._appRef,\n injector,\n this._document,\n );\n\n const comp = new ComponentPortal(command.payload);\n const ref = comp.attach(portal);\n element = ref.location.nativeElement;\n }\n }\n\n // loop over the commands\n for (const childCommand of command.children) {\n this._executeCommand({ command: childCommand, parent: element ?? parent });\n }\n }\n}\n","import { NgClass, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { NgClassType } from '@ethlete/core';\nimport { ContentfulAsset } from '../../types';\nimport { RICH_TEXT_RENDERER_COMPONENT_DATA } from '../rich-text-renderer';\n\n@Component({\n selector: 'et-contentful-audio',\n template: `\n <figure *ngIf=\"data\" [ngClass]=\"figureClass\">\n <figcaption [ngClass]=\"figcaptionClass\">{{ data.title }}</figcaption>\n <audio [ngClass]=\"audioClass\" controls src=\"{{ data.url }}\"></audio>\n </figure>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [NgIf, NgClass],\n})\nexport class ContentfulAudioComponent implements OnInit {\n private _richTextData = inject<ContentfulAsset>(RICH_TEXT_RENDERER_COMPONENT_DATA, { optional: true });\n\n @Input()\n get data() {\n return this._data;\n }\n set data(v: ContentfulAsset | null | undefined) {\n if (v && !v.contentType) {\n this._data = null;\n\n console.warn('The provided asset is invalid', v);\n\n return;\n }\n\n if (v && !v.contentType.startsWith('audio/')) {\n throw new Error('The provided asset is not an audio');\n }\n\n this._data = v ?? null;\n }\n private _data: ContentfulAsset | null = null;\n\n @Input()\n audioClass: NgClassType = null;\n\n @Input()\n figureClass: NgClassType = null;\n\n @Input()\n figcaptionClass: NgClassType = null;\n\n ngOnInit(): void {\n if (this._richTextData && !this.data) {\n this.data = this._richTextData;\n }\n }\n}\n","import { NgClass, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { NgClassType } from '@ethlete/core';\nimport { ContentfulAsset } from '../../types';\nimport { RICH_TEXT_RENDERER_COMPONENT_DATA } from '../rich-text-renderer';\n\n@Component({\n selector: 'et-contentful-file',\n template: `\n <a *ngIf=\"data\" [href]=\"data.url\" [ngClass]=\"fileClass\" class=\"underline\" target=\"_blank\">\n {{ data.title }} ({{ data.size }} Bytes)\n </a>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [NgIf, NgClass],\n})\nexport class ContentfulFileComponent implements OnInit {\n private _richTextData = inject<ContentfulAsset>(RICH_TEXT_RENDERER_COMPONENT_DATA, { optional: true });\n\n @Input()\n get data() {\n return this._data;\n }\n set data(v: ContentfulAsset | null | undefined) {\n if (v && !v.contentType) {\n this._data = null;\n\n console.warn('The provided asset is invalid', v);\n\n return;\n }\n\n this._data = v ?? null;\n }\n private _data: ContentfulAsset | null = null;\n\n @Input()\n fileClass: NgClassType = null;\n\n ngOnInit(): void {\n if (this._richTextData && !this.data) {\n this.data = this._richTextData;\n }\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { NgClass, NgIf, NgOptimizedImage } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { NgClassType } from '@ethlete/core';\nimport { ContentfulAsset } from '../../types';\nimport { RICH_TEXT_RENDERER_COMPONENT_DATA } from '../rich-text-renderer';\n\n@Component({\n selector: 'et-contentful-image',\n template: `\n <picture *ngIf=\"data\" [ngClass]=\"pictureClass\">\n <source srcset=\"{{ data.url }}?fm=avif\" type=\"image/avif\" />\n <source srcset=\"{{ data.url }}?fm=webp\" type=\"image/webp\" />\n <source srcset=\"{{ data.url }}?fm=jpg\" type=\"image/jpeg\" />\n <img\n [attr.alt]=\"data.description ?? undefined\"\n [width]=\"data.width ?? undefined\"\n [height]=\"data.height ?? undefined\"\n [priority]=\"data.priority ?? priority\"\n [ngClass]=\"imgClass\"\n ngSrc=\"{{ data.url }}\"\n />\n </picture>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [NgIf, NgClass, NgOptimizedImage],\n})\nexport class ContentfulImageComponent implements OnInit {\n private _richTextData = inject<ContentfulAsset>(RICH_TEXT_RENDERER_COMPONENT_DATA, { optional: true });\n\n @Input()\n get data() {\n return this._data;\n }\n set data(v: ContentfulAsset | null | undefined) {\n if (v && !v.contentType) {\n this._data = null;\n\n console.warn('The provided asset is invalid', v);\n\n return;\n }\n\n if (v && !v.contentType.startsWith('image/')) {\n throw new Error('The provided asset is not an image');\n }\n\n this._data = v ?? null;\n }\n private _data: ContentfulAsset | null = null;\n\n @Input()\n imgClass: NgClassType = null;\n\n @Input()\n pictureClass: NgClassType = null;\n\n @Input()\n get priority(): boolean {\n return this._priority;\n }\n set priority(value: BooleanInput) {\n this._priority = coerceBooleanProperty(value);\n }\n private _priority = false;\n\n ngOnInit(): void {\n if (this._richTextData && !this.data) {\n this.data = this._richTextData;\n }\n }\n}\n","import { NgClass, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { NgClassType } from '@ethlete/core';\nimport { ContentfulAsset } from '../../types';\nimport { RICH_TEXT_RENDERER_COMPONENT_DATA } from '../rich-text-renderer';\n\n@Component({\n selector: 'et-contentful-video',\n template: `\n <video *ngIf=\"data\" [ngClass]=\"videoClass\" controls>\n <source src=\"{{ data.url }}\" type=\"{{ data.contentType }}\" />\n </video>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [NgIf, NgClass],\n})\nexport class ContentfulVideoComponent implements OnInit {\n private _richTextData = inject<ContentfulAsset>(RICH_TEXT_RENDERER_COMPONENT_DATA, { optional: true });\n\n @Input()\n get data() {\n return this._data;\n }\n set data(v: ContentfulAsset | null | undefined) {\n if (v && !v.contentType) {\n this._data = null;\n\n console.warn('The provided asset is invalid', v);\n\n return;\n }\n\n if (v && !v.contentType.startsWith('video/')) {\n throw new Error('The provided asset is not an video');\n }\n\n this._data = v ?? null;\n }\n private _data: ContentfulAsset | null = null;\n\n @Input()\n videoClass: NgClassType = null;\n\n ngOnInit(): void {\n if (this._richTextData && !this.data) {\n this.data = this._richTextData;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n ContentfulAudioComponent,\n ContentfulFileComponent,\n ContentfulImageComponent,\n ContentfulRichTextRendererComponent,\n ContentfulVideoComponent,\n} from './public-api';\n\n@NgModule({\n imports: [\n ContentfulAudioComponent,\n ContentfulFileComponent,\n ContentfulImageComponent,\n ContentfulVideoComponent,\n ContentfulRichTextRendererComponent,\n ],\n exports: [\n ContentfulAudioComponent,\n ContentfulFileComponent,\n ContentfulImageComponent,\n ContentfulVideoComponent,\n ContentfulRichTextRendererComponent,\n ],\n})\nexport class ContentfulModule {}\n","import { gql } from '@ethlete/query';\n\nexport const GQL_FRAGMENT_CONTENTFUL_ASSET = gql`\n fragment AssetData on Asset {\n sys {\n id\n }\n url\n title\n width\n height\n description\n contentType\n size\n }\n`;\n\nexport const GQL_FRAGMENT_CONTENTFUL_IMAGE = gql`\n fragment ImageData on Image {\n sys {\n id\n }\n asset {\n ...AssetData\n }\n sizes\n alt\n caption\n resizeBehavior\n focusArea\n quality\n backgroundColor\n }\n`;\n","import { CONTENTFUL_CONFIG } from '../constants';\nimport { ContentfulConfig } from '../types';\nimport { createContentfulConfig } from './contentful-config';\n\nexport const provideContentfulConfig = (contentfulConfig: Partial<ContentfulConfig> | null | undefined = {}) => {\n return { provide: CONTENTFUL_CONFIG, useValue: createContentfulConfig(contentfulConfig) };\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ethlete-contentful.mjs","sources":["../../../../libs/contentful/src/lib/constants/contentful.constants.ts","../../../../libs/contentful/src/lib/utils/contentful-config.ts","../../../../libs/contentful/src/lib/components/rich-text-renderer/rich-text-renderer.constants.ts","../../../../libs/contentful/src/lib/utils/contentful.util.ts","../../../../libs/contentful/src/lib/components/image/contentful-image.component.utils.ts","../../../../libs/contentful/src/lib/components/image/contentful-image.component.ts","../../../../libs/contentful/src/lib/components/rich-text-renderer/rich-text-renderer.util.ts","../../../../libs/contentful/src/lib/components/rich-text-renderer/rich-text-renderer.component.ts","../../../../libs/contentful/src/lib/components/audio/contentful-audio.component.ts","../../../../libs/contentful/src/lib/components/file/contentful-file.component.ts","../../../../libs/contentful/src/lib/components/video/contentful-video.component.ts","../../../../libs/contentful/src/lib/contentful.imports.ts","../../../../libs/contentful/src/lib/gql/asset.fragments.ts","../../../../libs/contentful/src/ethlete-contentful.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { ContentfulConfig } from '../types';\n\nexport const CONTENTFUL_CONFIG = new InjectionToken<ContentfulConfig>('ContentfulConfig');\n","import {\n ContentfulAudioComponent,\n ContentfulFileComponent,\n ContentfulImageComponent,\n ContentfulVideoComponent,\n} from '../components';\nimport { ContentfulConfig } from '../types';\n\nexport const createContentfulConfig = (\n config: Partial<ContentfulConfig> | null | undefined = {},\n): ContentfulConfig => ({\n // This default config must be inline and not saved inside a const for some weird webpack reason\n ...{\n useTailwindClasses: false,\n components: {\n audio: ContentfulAudioComponent,\n file: ContentfulFileComponent,\n image: ContentfulImageComponent,\n video: ContentfulVideoComponent,\n },\n customComponents: {},\n imageOptions: {\n srcsetSizes: ['375w', '1280w', '1920w', '2560w'],\n sizes: [],\n backgroundColor: null,\n },\n },\n ...(config || {}),\n});\n","import { InjectionToken } from '@angular/core';\n\nexport const RICH_TEXT_RENDERER_COMPONENT_DATA = new InjectionToken<unknown>('RICH_TEXT_RENDERER_COMPONENT_DATA');\n","import { CONTENTFUL_CONFIG } from '../constants';\nimport { ContentfulAsset, ContentfulConfig, ContentfulImage } from '../types';\nimport { createContentfulConfig } from './contentful-config';\n\nexport const provideContentfulConfig = (contentfulConfig: Partial<ContentfulConfig> | null | undefined = {}) => {\n return { provide: CONTENTFUL_CONFIG, useValue: createContentfulConfig(contentfulConfig) };\n};\n\nexport const isContentfulImage = (v: ContentfulAsset | ContentfulImage | null | undefined): v is ContentfulImage => {\n return !!v && 'asset' in v && 'alt' in v && 'resizeBehavior' in v && 'focusArea' in v;\n};\n\nexport const isContentfulAsset = (v: ContentfulAsset | ContentfulImage | null | undefined): v is ContentfulAsset => {\n return !!v && 'contentType' in v && 'description' in v && 'height' in v && 'url' in v && 'width' in v;\n};\n","import { PictureSource } from '@ethlete/components';\nimport { ContentfulAsset, ContentfulImage } from '../../types';\nimport { isContentfulImage } from '../../utils';\n\nexport const generateDefaultContentfulImageSource = (data: ContentfulAsset): PictureSource => {\n const { url, contentType } = data;\n\n return {\n type: contentType,\n srcset: url,\n };\n};\n\n/**\n * Parses source set sizes into an object containing with and height. Eg.\n * - `\"400\"` - 400px width\n * - `\"400x300\"` - 400px width and 300px height\n * - `\"400w\"` - 400px width\n * - `\"400h\"` - 400px height\n * - `\"400wx300h\"` - 400px width and 300px height\n **/\nexport const parseContentfulImageSize = (size: string): { width: number | null; height: number | null } => {\n let width: string | null | undefined = null;\n let height: string | null | undefined = null;\n\n if (size.includes('x')) {\n const [w, h] = size.split('x');\n\n width = w;\n height = h;\n } else if (size.includes('h')) {\n height = size;\n } else {\n width = size;\n }\n\n return {\n width: width ? parseInt(width, 10) : null,\n height: height ? parseInt(height, 10) : null,\n };\n};\n\nexport const generateContentfulImageSources = (\n data: ContentfulAsset | ContentfulImage,\n srcsetSizes: string[],\n backgroundColor: string | null,\n): PictureSource[] => {\n const assetData = isContentfulImage(data) ? data.asset : data;\n const imageData = isContentfulImage(data) ? data : null;\n\n if (!assetData) {\n return [];\n }\n\n const sources: PictureSource[] = [];\n\n const SOURCE_TYPES = ['image/avif', 'image/webp', 'image/png', 'image/jpg'];\n\n for (const type of SOURCE_TYPES) {\n const baseUrl = assetData.url;\n const sourceSets: string[] = [];\n const queryParams: string[] = [];\n\n // Set the format (e.g. 'fm=webp')\n queryParams.push(`fm=${type.split('/')[1]}`);\n\n if (backgroundColor) {\n queryParams.push(`bg=rgb:${backgroundColor}`);\n }\n\n if (imageData) {\n if (imageData.quality) {\n queryParams.push(`q=${imageData.quality}`);\n }\n\n if (imageData.focusArea) {\n queryParams.push(`f=${imageData.focusArea}`);\n }\n\n if (imageData.resizeBehavior) {\n queryParams.push(`fit=${imageData.resizeBehavior}`);\n }\n }\n\n if (srcsetSizes?.length) {\n const urlWithParams = `${baseUrl}?${queryParams.join('&')}`;\n\n for (const size of srcsetSizes) {\n const { width, height } = parseContentfulImageSize(size);\n\n if (width && height) {\n sourceSets.push(`${urlWithParams}&w=${width}&h=${height} ${width}w`);\n } else if (width) {\n sourceSets.push(`${urlWithParams}&w=${width} ${width}w`);\n } else if (height) {\n sourceSets.push(`${urlWithParams}&h=${height} ${height}h`);\n }\n }\n }\n\n sources.push({\n type,\n srcset: sourceSets.length ? sourceSets.join(', ') : `${baseUrl}?${queryParams.join('&')}`,\n });\n }\n\n return sources;\n};\n","import { NgClass, NgIf, NgOptimizedImage } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n Input,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { PictureComponent, PictureDataDirective, PictureSource } from '@ethlete/components';\nimport { ContentfulAsset, ContentfulImage } from '../../types';\nimport { isContentfulImage } from '../../utils';\nimport { RICH_TEXT_RENDERER_COMPONENT_DATA } from '../rich-text-renderer';\nimport {\n generateContentfulImageSources,\n generateDefaultContentfulImageSource,\n} from './contentful-image.component.utils';\n\n@Component({\n selector: 'et-contentful-image',\n template: `\n <et-picture\n [imgClass]=\"pictureData.imgClass\"\n [hasPriority]=\"pictureData.hasPriority\"\n [figureClass]=\"pictureData.figureClass\"\n [pictureClass]=\"pictureData.pictureClass\"\n [figcaptionClass]=\"pictureData.figcaptionClass\"\n [defaultSrc]=\"pictureData.defaultSrc\"\n [alt]=\"pictureData.alt\"\n [figcaption]=\"pictureData.figcaption\"\n [width]=\"pictureData.width\"\n [height]=\"pictureData.height\"\n [sizes]=\"pictureData.sizes\"\n [sources]=\"sources\"\n />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [NgIf, NgClass, NgOptimizedImage, PictureComponent],\n hostDirectives: [\n {\n directive: PictureDataDirective,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['imgClass', 'hasPriority', 'figureClass', 'pictureClass', 'figcaptionClass'],\n },\n ],\n host: {\n class: 'et-contentful-image',\n },\n})\nexport class ContentfulImageComponent implements OnInit {\n private _richTextData = inject<ContentfulAsset | ContentfulImage>(RICH_TEXT_RENDERER_COMPONENT_DATA, {\n optional: true,\n });\n\n protected readonly pictureData = inject(PictureDataDirective);\n readonly _cdr = inject(ChangeDetectorRef);\n\n @Input()\n get data() {\n return this._data;\n }\n set data(v: ContentfulAsset | ContentfulImage | null | undefined) {\n const assetData = isContentfulImage(v) ? v.asset : v;\n const imageData = isContentfulImage(v) ? v : null;\n\n if (assetData && !assetData.contentType) {\n this._data = null;\n\n console.warn('The provided asset is invalid', v);\n\n return;\n }\n\n if (assetData && !assetData.contentType.startsWith('image/')) {\n throw new Error('The provided asset is not an image');\n }\n\n this._data = v ?? null;\n this.pictureData.defaultSrc = assetData ? generateDefaultContentfulImageSource(assetData) : null;\n this.pictureData.alt = imageData?.alt ?? assetData?.description ?? null;\n this.pictureData.width = assetData?.width ?? null;\n this.pictureData.height = assetData?.height ?? null;\n this.pictureData.figcaption = imageData?.caption ?? null;\n\n this.updateSizes();\n }\n private _data: ContentfulAsset | ContentfulImage | null = null;\n\n @Input()\n get sizes(): string[] {\n return this._sizes;\n }\n set sizes(v: string[]) {\n this._sizes = v;\n this.pictureData.sizes = this.sizes?.join(', ') ?? null;\n }\n private _sizes: string[] = [];\n\n @Input()\n get srcsetSizes(): string[] {\n return this._srcsetSizes;\n }\n set srcsetSizes(v: string[]) {\n this._srcsetSizes = v;\n this.updateSizes();\n }\n private _srcsetSizes: string[] = [];\n\n @Input()\n get backgroundColor() {\n return this._backgroundColor;\n }\n set backgroundColor(v: string | null) {\n this._backgroundColor = v;\n this.updateSizes();\n }\n private _backgroundColor: string | null = null;\n\n protected sources: PictureSource[] = [];\n\n ngOnInit(): void {\n if (this._richTextData && !this.data) {\n this.data = this._richTextData;\n }\n }\n\n private updateSizes() {\n this.sources = this._data ? generateContentfulImageSources(this._data, this.srcsetSizes, this.backgroundColor) : [];\n\n this._cdr.markForCheck();\n }\n}\n","import { Block, BLOCKS, Inline, INLINES, Mark, Text } from '@contentful/rich-text-types';\nimport { ContentfulAsset, ContentfulConfig, ContentfulEntryBase, RichTextResponse } from '../../types';\nimport { ContentfulImageComponent } from '../image';\nimport { ContentfulResourceMap, RichTextRenderCommand } from './rich-text-renderer.types';\n\nexport const createRenderCommandsFromContentfulRichText = (options: {\n data: RichTextResponse;\n config: ContentfulConfig;\n}) => {\n const { data, config } = options;\n\n const commands: RichTextRenderCommand[] = [];\n const resourceMap = createContentfulResourceMap(data.links);\n\n createContentfulRenderCommand(data.json, { children: commands, payload: data.json.nodeType }, resourceMap, config);\n\n return commands;\n};\n\nexport const createContentfulRenderCommand = (\n node: Block | Inline | Text,\n parent: RichTextRenderCommand,\n resourceMap: ContentfulResourceMap,\n config: ContentfulConfig,\n) => {\n const { nodeType, data: nodeData } = node;\n\n const { children, marks, value } = getContentfulNodeProps(node);\n\n const command: RichTextRenderCommand = {\n payload: translateContentfulNodeTypeToHtmlTag(nodeType),\n data: value,\n attributes: {\n ...(marks\n ? {\n class: transformContentfulMarks(marks, config.useTailwindClasses),\n }\n : {}),\n ...(nodeData['uri'] ? { href: nodeData['uri'], target: '_blank' } : {}),\n },\n children: [],\n };\n\n const entryId = nodeData['target']?.sys?.id;\n\n if (nodeType === BLOCKS.EMBEDDED_ASSET) {\n const asset = resourceMap.assetsBlock.get(entryId);\n\n if (asset) {\n const isImage = asset.contentType.startsWith('image/');\n const isVideo = asset.contentType.startsWith('video/');\n const isAudio = asset.contentType.startsWith('audio/');\n\n command.data = asset;\n\n if (isImage) {\n command.payload = config.components.image;\n } else if (isVideo) {\n command.payload = config.components.video;\n } else if (isAudio) {\n command.payload = config.components.audio;\n } else {\n command.payload = config.components.file;\n }\n } else {\n console.warn(`No asset found for entry id \"${entryId}\"!`, nodeData);\n }\n } else if (nodeType === BLOCKS.EMBEDDED_ENTRY || nodeType === INLINES.EMBEDDED_ENTRY) {\n const entry = resourceMap.entriesBlock.get(entryId) ?? resourceMap.entriesInline.get(entryId);\n\n if (entry) {\n const type = entry?.__typename ?? 'ET_UNKNOWN';\n\n // \"Image\" is a special wrapper content model for contentful assets.\n // It must be created by the user.\n const component = type === 'Image' ? ContentfulImageComponent : config.customComponents?.[type];\n\n if (component) {\n command.payload = component;\n command.data = entry;\n } else {\n command.data = `ERROR: No component found for embedded entry \"${type}\" as \"${nodeType}\"!`;\n }\n } else {\n console.warn(`No entry found for entry id \"${entryId}\"!`, nodeData);\n }\n }\n\n if (children && (children.length !== 1 || children[0].nodeType !== 'text')) {\n children.forEach((child) => {\n createContentfulRenderCommand(child, command, resourceMap, config);\n });\n }\n\n parent.children.push(command);\n\n return command;\n};\n\nexport const getContentfulNodeProps = (node: Block | Inline | Text) => {\n const children = 'content' in node ? node.content : null;\n let marks: Mark[] | null = null;\n let value: string | null = null;\n\n if (children && children.length === 1 && children[0].nodeType === 'text') {\n marks = children[0].marks?.length ? children[0].marks : null;\n value = children[0].value;\n } else {\n marks = 'marks' in node ? (node.marks?.length ? node.marks : null) : null;\n value = 'value' in node ? node.value : null;\n }\n\n return {\n children,\n marks,\n value,\n };\n};\n\nexport const transformContentfulMarks = (marks: Mark[], useTailwindClasses: boolean) => {\n return marks\n .map((mark) => {\n switch (mark.type) {\n case 'bold':\n return useTailwindClasses ? 'font-bold' : mark.type;\n case 'italic':\n return useTailwindClasses ? 'italic' : mark.type;\n case 'underline':\n return useTailwindClasses ? 'underline' : mark.type;\n case 'code':\n return useTailwindClasses ? 'font-mono' : mark.type;\n default:\n return mark.type;\n }\n })\n .join(' ');\n};\n\nexport const translateContentfulNodeTypeToHtmlTag = (nodeType: 'text' | BLOCKS | INLINES) => {\n switch (nodeType) {\n case BLOCKS.HEADING_1:\n return 'h1';\n case BLOCKS.HEADING_2:\n return 'h2';\n case BLOCKS.HEADING_3:\n return 'h3';\n case BLOCKS.HEADING_4:\n return 'h4';\n case BLOCKS.HEADING_5:\n return 'h5';\n case BLOCKS.HEADING_6:\n return 'h6';\n case BLOCKS.PARAGRAPH:\n return 'p';\n case BLOCKS.UL_LIST:\n return 'ul';\n case BLOCKS.OL_LIST:\n return 'ol';\n case BLOCKS.LIST_ITEM:\n return 'li';\n case BLOCKS.HR:\n return 'hr';\n case BLOCKS.QUOTE:\n return 'blockquote';\n case BLOCKS.TABLE:\n return 'table';\n case BLOCKS.TABLE_ROW:\n return 'tr';\n case BLOCKS.TABLE_CELL:\n return 'td';\n case BLOCKS.TABLE_HEADER_CELL:\n return 'th';\n case BLOCKS.EMBEDDED_ASSET:\n return 'div';\n\n case INLINES.HYPERLINK:\n return 'a';\n case INLINES.ENTRY_HYPERLINK:\n return 'a';\n case INLINES.ASSET_HYPERLINK:\n return 'a';\n\n case 'text':\n return 'span';\n\n // Will be ignored by the renderer\n case 'document':\n return 'document';\n\n case BLOCKS.EMBEDDED_ENTRY:\n return 'div';\n case INLINES.EMBEDDED_ENTRY:\n return 'div';\n\n default:\n return 'div';\n }\n};\n\nexport const createContentfulResourceMap = (links: RichTextResponse['links']): ContentfulResourceMap => {\n const resourceMap = {\n assetsBlock: createContentfulMap<ContentfulAsset>(links?.assets?.block),\n entriesInline: createContentfulMap(links?.entries?.inline),\n entriesBlock: createContentfulMap(links?.entries?.block),\n } as const;\n\n return resourceMap;\n};\n\nexport const createContentfulMap = <T extends ContentfulEntryBase>(links: Array<T> | null | undefined) => {\n const assetMap = new Map<string, T>();\n\n if (links) {\n for (const link of links) {\n if (!link?.sys?.id) {\n console.warn('Link has no sys.id property. Please include it inside your query.', link);\n continue;\n }\n\n assetMap.set(link.sys.id, link);\n }\n }\n\n return assetMap;\n};\n","import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ChangeDetectionStrategy,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n inject,\n Injector,\n Input,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ContentfulImageComponent } from '..';\nimport { CONTENTFUL_CONFIG } from '../../constants/contentful.constants';\nimport { RichTextResponse } from '../../types';\nimport { createContentfulConfig } from '../../utils/contentful-config';\nimport { RICH_TEXT_RENDERER_COMPONENT_DATA } from './rich-text-renderer.constants';\nimport { RichTextRenderCommand } from './rich-text-renderer.types';\nimport { createRenderCommandsFromContentfulRichText } from './rich-text-renderer.util';\n\n@Component({\n selector: 'et-contentful-rich-text-renderer',\n template: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'et-contentful-rich-text-renderer',\n },\n})\nexport class ContentfulRichTextRendererComponent {\n @Input()\n get richText() {\n return this._richText;\n }\n set richText(v: RichTextResponse | null | undefined) {\n this._richText = v ?? null;\n\n this.resetAndRender();\n }\n private _richText: RichTextResponse | null = null;\n\n private _renderer = inject(Renderer2);\n private _elementRef = inject(ElementRef);\n private _componentFactoryResolver = inject(ComponentFactoryResolver);\n private _document = inject<Document>(DOCUMENT);\n private _appRef = inject(ApplicationRef);\n private _injector = inject(Injector);\n private _config = inject(CONTENTFUL_CONFIG, { optional: true }) ?? createContentfulConfig();\n\n resetAndRender() {\n // clear childNodes to prevent appending new richtext elements to existing one\n const childElements = this._elementRef.nativeElement.childNodes;\n for (const child of childElements) {\n this._renderer.removeChild(this._elementRef.nativeElement, child);\n }\n\n if (!this._richText) {\n return;\n }\n\n const commands = createRenderCommandsFromContentfulRichText({ data: this._richText, config: this._config });\n\n this._render(commands);\n }\n\n private _render(commands: RichTextRenderCommand[]) {\n // create a document fragment to hold the elements while we create them\n const fragment = document.createDocumentFragment();\n\n const hostCommand: RichTextRenderCommand = {\n payload: 'document',\n children: commands,\n };\n\n // loop over the commands\n this._executeCommand({ command: hostCommand, parent: fragment });\n\n // append the fragment to the host element\n this._renderer.appendChild(this._elementRef.nativeElement, fragment);\n }\n\n private _executeCommand(data: { command: RichTextRenderCommand; parent: Element | DocumentFragment }) {\n const { command, parent } = data;\n\n let element: Element | null = null;\n if (command.payload !== 'document') {\n if (typeof command.payload === 'string') {\n element = this._renderer.createElement(command.payload);\n\n if (command.data) {\n this._renderer.setProperty(element, 'innerText', command.data);\n }\n\n if (command.attributes) {\n for (const [name, value] of Object.entries(command.attributes)) {\n this._renderer.setAttribute(element, name, value);\n }\n }\n this._renderer.appendChild(parent, element);\n } else {\n const injector = Injector.create({\n providers: [\n {\n provide: RICH_TEXT_RENDERER_COMPONENT_DATA,\n useValue: command.data,\n },\n ],\n parent: this._injector,\n });\n\n const portal = new DomPortalOutlet(\n parent as Element,\n this._componentFactoryResolver,\n this._appRef,\n injector,\n this._document,\n );\n\n const comp = new ComponentPortal(command.payload);\n const ref = comp.attach(portal);\n\n if (ref.instance instanceof ContentfulImageComponent) {\n ref.instance.sizes = this._config.imageOptions.sizes;\n ref.instance.srcsetSizes = this._config.imageOptions.srcsetSizes;\n ref.instance.backgroundColor = this._config.imageOptions.backgroundColor;\n }\n\n element = ref.location.nativeElement;\n }\n }\n\n // loop over the commands\n for (const childCommand of command.children) {\n this._executeCommand({ command: childCommand, parent: element ?? parent });\n }\n }\n}\n","import { NgClass, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { NgClassType } from '@ethlete/core';\nimport { ContentfulAsset } from '../../types';\nimport { RICH_TEXT_RENDERER_COMPONENT_DATA } from '../rich-text-renderer';\n\n@Component({\n selector: 'et-contentful-audio',\n template: `\n <figure *ngIf=\"data\" [ngClass]=\"figureClass\">\n <figcaption [ngClass]=\"figcaptionClass\">{{ data.title }}</figcaption>\n <audio [ngClass]=\"audioClass\" controls src=\"{{ data.url }}\"></audio>\n </figure>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [NgIf, NgClass],\n})\nexport class ContentfulAudioComponent implements OnInit {\n private _richTextData = inject<ContentfulAsset>(RICH_TEXT_RENDERER_COMPONENT_DATA, { optional: true });\n\n @Input()\n get data() {\n return this._data;\n }\n set data(v: ContentfulAsset | null | undefined) {\n if (v && !v.contentType) {\n this._data = null;\n\n console.warn('The provided asset is invalid', v);\n\n return;\n }\n\n if (v && !v.contentType.startsWith('audio/')) {\n throw new Error('The provided asset is not an audio');\n }\n\n this._data = v ?? null;\n }\n private _data: ContentfulAsset | null = null;\n\n @Input()\n audioClass: NgClassType = null;\n\n @Input()\n figureClass: NgClassType = null;\n\n @Input()\n figcaptionClass: NgClassType = null;\n\n ngOnInit(): void {\n if (this._richTextData && !this.data) {\n this.data = this._richTextData;\n }\n }\n}\n","import { NgClass, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { NgClassType } from '@ethlete/core';\nimport { ContentfulAsset } from '../../types';\nimport { RICH_TEXT_RENDERER_COMPONENT_DATA } from '../rich-text-renderer';\n\n@Component({\n selector: 'et-contentful-file',\n template: `\n <a *ngIf=\"data\" [href]=\"data.url\" [ngClass]=\"fileClass\" class=\"underline\" target=\"_blank\">\n {{ data.title }} ({{ data.size }} Bytes)\n </a>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [NgIf, NgClass],\n})\nexport class ContentfulFileComponent implements OnInit {\n private _richTextData = inject<ContentfulAsset>(RICH_TEXT_RENDERER_COMPONENT_DATA, { optional: true });\n\n @Input()\n get data() {\n return this._data;\n }\n set data(v: ContentfulAsset | null | undefined) {\n if (v && !v.contentType) {\n this._data = null;\n\n console.warn('The provided asset is invalid', v);\n\n return;\n }\n\n this._data = v ?? null;\n }\n private _data: ContentfulAsset | null = null;\n\n @Input()\n fileClass: NgClassType = null;\n\n ngOnInit(): void {\n if (this._richTextData && !this.data) {\n this.data = this._richTextData;\n }\n }\n}\n","import { NgClass, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { NgClassType } from '@ethlete/core';\nimport { ContentfulAsset } from '../../types';\nimport { RICH_TEXT_RENDERER_COMPONENT_DATA } from '../rich-text-renderer';\n\n@Component({\n selector: 'et-contentful-video',\n template: `\n <video *ngIf=\"data\" [ngClass]=\"videoClass\" controls>\n <source src=\"{{ data.url }}\" type=\"{{ data.contentType }}\" />\n </video>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [NgIf, NgClass],\n})\nexport class ContentfulVideoComponent implements OnInit {\n private _richTextData = inject<ContentfulAsset>(RICH_TEXT_RENDERER_COMPONENT_DATA, { optional: true });\n\n @Input()\n get data() {\n return this._data;\n }\n set data(v: ContentfulAsset | null | undefined) {\n if (v && !v.contentType) {\n this._data = null;\n\n console.warn('The provided asset is invalid', v);\n\n return;\n }\n\n if (v && !v.contentType.startsWith('video/')) {\n throw new Error('The provided asset is not an video');\n }\n\n this._data = v ?? null;\n }\n private _data: ContentfulAsset | null = null;\n\n @Input()\n videoClass: NgClassType = null;\n\n ngOnInit(): void {\n if (this._richTextData && !this.data) {\n this.data = this._richTextData;\n }\n }\n}\n","import {\n ContentfulAudioComponent,\n ContentfulFileComponent,\n ContentfulImageComponent,\n ContentfulRichTextRendererComponent,\n ContentfulVideoComponent,\n} from './public-api';\n\nexport const ContentfulImports = [\n ContentfulAudioComponent,\n ContentfulFileComponent,\n ContentfulImageComponent,\n ContentfulVideoComponent,\n ContentfulRichTextRendererComponent,\n] as const;\n","import { gql } from '@ethlete/query';\n\nexport const GQL_FRAGMENT_CONTENTFUL_ASSET = gql`\n fragment AssetData on Asset {\n sys {\n id\n }\n url\n title\n width\n height\n description\n contentType\n size\n }\n`;\n\nexport const GQL_FRAGMENT_CONTENTFUL_IMAGE = gql`\n fragment ImageData on Image {\n sys {\n id\n }\n asset {\n ...AssetData\n }\n alt\n caption\n resizeBehavior\n focusArea\n quality\n __typename\n }\n`;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,19 +1,27 @@
1
- import { BooleanInput } from '@angular/cdk/coercion';
2
- import { OnInit } from '@angular/core';
3
- import { NgClassType } from '@ethlete/core';
4
- import { ContentfulAsset } from '../../types';
1
+ import { ChangeDetectorRef, OnInit } from '@angular/core';
2
+ import { PictureDataDirective, PictureSource } from '@ethlete/components';
3
+ import { ContentfulAsset, ContentfulImage } from '../../types';
5
4
  import * as i0 from "@angular/core";
5
+ import * as i1 from "@ethlete/components";
6
6
  export declare class ContentfulImageComponent implements OnInit {
7
7
  private _richTextData;
8
- get data(): ContentfulAsset | null | undefined;
9
- set data(v: ContentfulAsset | null | undefined);
8
+ protected readonly pictureData: PictureDataDirective;
9
+ readonly _cdr: ChangeDetectorRef;
10
+ get data(): ContentfulAsset | ContentfulImage | null | undefined;
11
+ set data(v: ContentfulAsset | ContentfulImage | null | undefined);
10
12
  private _data;
11
- imgClass: NgClassType;
12
- pictureClass: NgClassType;
13
- get priority(): boolean;
14
- set priority(value: BooleanInput);
15
- private _priority;
13
+ get sizes(): string[];
14
+ set sizes(v: string[]);
15
+ private _sizes;
16
+ get srcsetSizes(): string[];
17
+ set srcsetSizes(v: string[]);
18
+ private _srcsetSizes;
19
+ get backgroundColor(): string | null;
20
+ set backgroundColor(v: string | null);
21
+ private _backgroundColor;
22
+ protected sources: PictureSource[];
16
23
  ngOnInit(): void;
24
+ private updateSizes;
17
25
  static ɵfac: i0.ɵɵFactoryDeclaration<ContentfulImageComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<ContentfulImageComponent, "et-contentful-image", never, { "data": "data"; "imgClass": "imgClass"; "pictureClass": "pictureClass"; "priority": "priority"; }, {}, never, never, true, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<ContentfulImageComponent, "et-contentful-image", never, { "data": "data"; "sizes": "sizes"; "srcsetSizes": "srcsetSizes"; "backgroundColor": "backgroundColor"; }, {}, never, never, true, [{ directive: typeof i1.PictureDataDirective; inputs: { "imgClass": "imgClass"; "hasPriority": "hasPriority"; "figureClass": "figureClass"; "pictureClass": "pictureClass"; "figcaptionClass": "figcaptionClass"; }; outputs: {}; }]>;
19
27
  }
@@ -0,0 +1,16 @@
1
+ import { PictureSource } from '@ethlete/components';
2
+ import { ContentfulAsset, ContentfulImage } from '../../types';
3
+ export declare const generateDefaultContentfulImageSource: (data: ContentfulAsset) => PictureSource;
4
+ /**
5
+ * Parses source set sizes into an object containing with and height. Eg.
6
+ * - `"400"` - 400px width
7
+ * - `"400x300"` - 400px width and 300px height
8
+ * - `"400w"` - 400px width
9
+ * - `"400h"` - 400px height
10
+ * - `"400wx300h"` - 400px width and 300px height
11
+ **/
12
+ export declare const parseContentfulImageSize: (size: string) => {
13
+ width: number | null;
14
+ height: number | null;
15
+ };
16
+ export declare const generateContentfulImageSources: (data: ContentfulAsset | ContentfulImage, srcsetSizes: string[], backgroundColor: string | null) => PictureSource[];
@@ -0,0 +1 @@
1
+ export * from './public-api';
@@ -1 +1,2 @@
1
1
  export * from './contentful-image.component';
2
+ export * from './contentful-image.component.utils';
@@ -6,12 +6,12 @@ export declare class ContentfulRichTextRendererComponent {
6
6
  private _richText;
7
7
  private _renderer;
8
8
  private _elementRef;
9
- private _viewContainerRef;
10
9
  private _componentFactoryResolver;
11
10
  private _document;
12
11
  private _appRef;
13
12
  private _injector;
14
13
  private _config;
14
+ resetAndRender(): void;
15
15
  private _render;
16
16
  private _executeCommand;
17
17
  static ɵfac: i0.ɵɵFactoryDeclaration<ContentfulRichTextRendererComponent, never>;
@@ -1,12 +1,11 @@
1
- import { ComponentType } from '@angular/cdk/portal';
2
1
  import { Block, BLOCKS, Inline, INLINES, Mark, Text } from '@contentful/rich-text-types';
3
- import { ContentfulAssetComponents, ContentfulConfig, ContentfulEntryBase, RichTextResponse } from '../../types';
2
+ import { ContentfulConfig, ContentfulEntryBase, RichTextResponse } from '../../types';
4
3
  import { ContentfulResourceMap, RichTextRenderCommand } from './rich-text-renderer.types';
5
4
  export declare const createRenderCommandsFromContentfulRichText: (options: {
6
5
  data: RichTextResponse;
7
6
  config: ContentfulConfig;
8
7
  }) => RichTextRenderCommand[];
9
- export declare const createContentfulRenderCommand: (node: Block | Inline | Text, parent: RichTextRenderCommand, resourceMap: ContentfulResourceMap, useTailwindClasses: boolean, assetComponents: ContentfulAssetComponents, customComponents: Record<string, ComponentType<unknown>> | undefined) => RichTextRenderCommand;
8
+ export declare const createContentfulRenderCommand: (node: Block | Inline | Text, parent: RichTextRenderCommand, resourceMap: ContentfulResourceMap, config: ContentfulConfig) => RichTextRenderCommand;
10
9
  export declare const getContentfulNodeProps: (node: Block | Inline | Text) => {
11
10
  children: (Block | Inline | Text)[] | null;
12
11
  marks: Mark[] | null;
@@ -0,0 +1,2 @@
1
+ import { ContentfulAudioComponent, ContentfulFileComponent, ContentfulImageComponent, ContentfulRichTextRendererComponent, ContentfulVideoComponent } from './public-api';
2
+ export declare const ContentfulImports: readonly [typeof ContentfulAudioComponent, typeof ContentfulFileComponent, typeof ContentfulImageComponent, typeof ContentfulVideoComponent, typeof ContentfulRichTextRendererComponent];
@@ -1,6 +1,6 @@
1
1
  export * from './components/public-api';
2
2
  export * from './constants/public-api';
3
- export * from './contentful.module';
3
+ export * from './contentful.imports';
4
4
  export * from './gql/public-api';
5
5
  export * from './types/public-api';
6
6
  export * from './utils/public-api';
@@ -14,20 +14,18 @@ export interface ContentfulAsset {
14
14
  priority?: boolean;
15
15
  __typename: string;
16
16
  }
17
- export declare type ContentfulImageResizeBehavior = 'pad' | 'crop' | 'fill' | 'scale' | 'thumb' | 'fit';
18
- export declare type ContentfulImageFocusArea = 'top' | 'bottom' | 'left' | 'right' | 'center' | 'top_left' | 'top_right' | 'bottom_left' | 'bottom_right' | 'face' | 'faces';
17
+ export type ContentfulImageResizeBehavior = 'pad' | 'crop' | 'fill' | 'scale' | 'thumb' | 'fit';
18
+ export type ContentfulImageFocusArea = 'top' | 'bottom' | 'left' | 'right' | 'center' | 'top_left' | 'top_right' | 'bottom_left' | 'bottom_right' | 'face' | 'faces';
19
19
  export interface ContentfulImage {
20
20
  sys: {
21
21
  id: string;
22
22
  };
23
23
  asset: ContentfulAsset;
24
- sizes: string[];
25
24
  alt: string | null;
26
25
  caption: string | null;
27
26
  resizeBehavior: ContentfulImageResizeBehavior | null;
28
27
  focusArea: ContentfulImageFocusArea | null;
29
28
  quality: number;
30
- backgroundColor: string | null;
31
29
  __typename: string;
32
30
  }
33
31
  export interface RichTextResponse {
@@ -49,8 +47,8 @@ export interface ContentfulEntryBase {
49
47
  };
50
48
  __typename: string;
51
49
  }
52
- declare type ComponentLikeWithAsset = ComponentType<{
53
- data: ContentfulAsset | null | undefined;
50
+ type ComponentLikeWithAsset = ComponentType<{
51
+ data: ContentfulAsset | ContentfulImage | null | undefined;
54
52
  }>;
55
53
  export interface ContentfulAssetComponents {
56
54
  file: ComponentLikeWithAsset;
@@ -71,5 +69,30 @@ export interface ContentfulConfig {
71
69
  * Determines if the contentful rich text renderer should render the contentful rich text with tailwind css classes
72
70
  */
73
71
  useTailwindClasses: boolean;
72
+ /**
73
+ * Default options for the contentful image api
74
+ */
75
+ imageOptions: {
76
+ /**
77
+ * Source set sizes. Eg.
78
+ * - `"400"` - 400px width
79
+ * - `"400x300"` - 400px width and 300px height
80
+ * - `"400w"` - 400px width
81
+ * - `"400h"` - 400px height
82
+ * - `"400wx300h"` - 400px width and 300px height
83
+ **/
84
+ srcsetSizes: string[];
85
+ /**
86
+ * Sizes for the image. Eg.
87
+ * - `"100vw"` - 100% of the viewport width
88
+ * - `"50vw"` - 50% of the viewport width
89
+ * - `(min-width: 30em) 30em"` - 30em if the viewport is at least 30em wide
90
+ */
91
+ sizes: string[];
92
+ /**
93
+ * Background color for the image in hex. Eg. `"000000"`
94
+ */
95
+ backgroundColor: string | null;
96
+ };
74
97
  }
75
98
  export {};
@@ -1,5 +1,7 @@
1
- import { ContentfulConfig } from '../types';
1
+ import { ContentfulAsset, ContentfulConfig, ContentfulImage } from '../types';
2
2
  export declare const provideContentfulConfig: (contentfulConfig?: Partial<ContentfulConfig> | null | undefined) => {
3
3
  provide: import("@angular/core").InjectionToken<ContentfulConfig>;
4
4
  useValue: ContentfulConfig;
5
5
  };
6
+ export declare const isContentfulImage: (v: ContentfulAsset | ContentfulImage | null | undefined) => v is ContentfulImage;
7
+ export declare const isContentfulAsset: (v: ContentfulAsset | ContentfulImage | null | undefined) => v is ContentfulAsset;
@@ -0,0 +1 @@
1
+ export * from './public-api';
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@ethlete/contentful",
3
- "version": "0.1.0-next.9",
3
+ "version": "1.0.0",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },
7
7
  "peerDependencies": {
8
8
  "@angular/common": "^14.2.0 || ^15.0.0",
9
9
  "@angular/core": "^14.2.0 || ^15.0.0",
10
- "@ethlete/core": "0.2.0-next.8",
11
- "@ethlete/query": "0.1.0-next.10"
10
+ "@ethlete/core": "1.0.0",
11
+ "@ethlete/components": "1.0.0"
12
12
  },
13
13
  "module": "fesm2015/ethlete-contentful.mjs",
14
14
  "es2020": "fesm2020/ethlete-contentful.mjs",
@@ -1,40 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { ContentfulAudioComponent, ContentfulFileComponent, ContentfulImageComponent, ContentfulRichTextRendererComponent, ContentfulVideoComponent, } from './public-api';
3
- import * as i0 from "@angular/core";
4
- export class ContentfulModule {
5
- }
6
- ContentfulModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ContentfulModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- ContentfulModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: ContentfulModule, imports: [ContentfulAudioComponent,
8
- ContentfulFileComponent,
9
- ContentfulImageComponent,
10
- ContentfulVideoComponent,
11
- ContentfulRichTextRendererComponent], exports: [ContentfulAudioComponent,
12
- ContentfulFileComponent,
13
- ContentfulImageComponent,
14
- ContentfulVideoComponent,
15
- ContentfulRichTextRendererComponent] });
16
- ContentfulModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ContentfulModule, imports: [ContentfulAudioComponent,
17
- ContentfulFileComponent,
18
- ContentfulImageComponent,
19
- ContentfulVideoComponent,
20
- ContentfulRichTextRendererComponent] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ContentfulModule, decorators: [{
22
- type: NgModule,
23
- args: [{
24
- imports: [
25
- ContentfulAudioComponent,
26
- ContentfulFileComponent,
27
- ContentfulImageComponent,
28
- ContentfulVideoComponent,
29
- ContentfulRichTextRendererComponent,
30
- ],
31
- exports: [
32
- ContentfulAudioComponent,
33
- ContentfulFileComponent,
34
- ContentfulImageComponent,
35
- ContentfulVideoComponent,
36
- ContentfulRichTextRendererComponent,
37
- ],
38
- }]
39
- }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGZ1bC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbnRlbnRmdWwvc3JjL2xpYi9jb250ZW50ZnVsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixtQ0FBbUMsRUFDbkMsd0JBQXdCLEdBQ3pCLE1BQU0sY0FBYyxDQUFDOztBQWtCdEIsTUFBTSxPQUFPLGdCQUFnQjs7NkdBQWhCLGdCQUFnQjs4R0FBaEIsZ0JBQWdCLFlBZHpCLHdCQUF3QjtRQUN4Qix1QkFBdUI7UUFDdkIsd0JBQXdCO1FBQ3hCLHdCQUF3QjtRQUN4QixtQ0FBbUMsYUFHbkMsd0JBQXdCO1FBQ3hCLHVCQUF1QjtRQUN2Qix3QkFBd0I7UUFDeEIsd0JBQXdCO1FBQ3hCLG1DQUFtQzs4R0FHMUIsZ0JBQWdCLFlBZHpCLHdCQUF3QjtRQUN4Qix1QkFBdUI7UUFDdkIsd0JBQXdCO1FBQ3hCLHdCQUF3QjtRQUN4QixtQ0FBbUM7MkZBVTFCLGdCQUFnQjtrQkFoQjVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLHdCQUF3Qjt3QkFDeEIsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsbUNBQW1DO3FCQUNwQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asd0JBQXdCO3dCQUN4Qix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixtQ0FBbUM7cUJBQ3BDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRlbnRmdWxBdWRpb0NvbXBvbmVudCxcbiAgQ29udGVudGZ1bEZpbGVDb21wb25lbnQsXG4gIENvbnRlbnRmdWxJbWFnZUNvbXBvbmVudCxcbiAgQ29udGVudGZ1bFJpY2hUZXh0UmVuZGVyZXJDb21wb25lbnQsXG4gIENvbnRlbnRmdWxWaWRlb0NvbXBvbmVudCxcbn0gZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbnRlbnRmdWxBdWRpb0NvbXBvbmVudCxcbiAgICBDb250ZW50ZnVsRmlsZUNvbXBvbmVudCxcbiAgICBDb250ZW50ZnVsSW1hZ2VDb21wb25lbnQsXG4gICAgQ29udGVudGZ1bFZpZGVvQ29tcG9uZW50LFxuICAgIENvbnRlbnRmdWxSaWNoVGV4dFJlbmRlcmVyQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29udGVudGZ1bEF1ZGlvQ29tcG9uZW50LFxuICAgIENvbnRlbnRmdWxGaWxlQ29tcG9uZW50LFxuICAgIENvbnRlbnRmdWxJbWFnZUNvbXBvbmVudCxcbiAgICBDb250ZW50ZnVsVmlkZW9Db21wb25lbnQsXG4gICAgQ29udGVudGZ1bFJpY2hUZXh0UmVuZGVyZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRmdWxNb2R1bGUge31cbiJdfQ==
@@ -1,11 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./components/audio/contentful-audio.component";
3
- import * as i2 from "./components/file/contentful-file.component";
4
- import * as i3 from "./components/image/contentful-image.component";
5
- import * as i4 from "./components/video/contentful-video.component";
6
- import * as i5 from "./components/rich-text-renderer/rich-text-renderer.component";
7
- export declare class ContentfulModule {
8
- static ɵfac: i0.ɵɵFactoryDeclaration<ContentfulModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<ContentfulModule, never, [typeof i1.ContentfulAudioComponent, typeof i2.ContentfulFileComponent, typeof i3.ContentfulImageComponent, typeof i4.ContentfulVideoComponent, typeof i5.ContentfulRichTextRendererComponent], [typeof i1.ContentfulAudioComponent, typeof i2.ContentfulFileComponent, typeof i3.ContentfulImageComponent, typeof i4.ContentfulVideoComponent, typeof i5.ContentfulRichTextRendererComponent]>;
10
- static ɵinj: i0.ɵɵInjectorDeclaration<ContentfulModule>;
11
- }