@ethlete/contentful 3.2.1 → 3.4.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.
- package/CHANGELOG.md +14 -0
- package/esm2022/lib/components/audio/contentful-audio.component.mjs +28 -11
- package/esm2022/lib/components/file/contentful-file.component.mjs +32 -11
- package/esm2022/lib/components/image/contentful-image.component.mjs +32 -12
- package/esm2022/lib/components/image/contentful-image.component.utils.mjs +11 -5
- package/esm2022/lib/components/rich-text-renderer/rich-text-renderer.component.mjs +56 -49
- package/esm2022/lib/components/video/contentful-video.component.mjs +26 -9
- package/esm2022/lib/gql/asset.fragments.mjs +5 -1
- package/esm2022/lib/types/contentful.types.mjs +1 -1
- package/fesm2022/ethlete-contentful.mjs +193 -106
- package/fesm2022/ethlete-contentful.mjs.map +1 -1
- package/lib/components/audio/contentful-audio.component.d.ts +7 -2
- package/lib/components/file/contentful-file.component.d.ts +9 -2
- package/lib/components/image/contentful-image.component.d.ts +9 -2
- package/lib/components/image/contentful-image.component.utils.d.ts +4 -3
- package/lib/components/rich-text-renderer/rich-text-renderer.component.d.ts +13 -3
- package/lib/components/video/contentful-video.component.d.ts +7 -2
- package/lib/gql/asset.fragments.d.ts +1 -0
- package/lib/types/contentful.types.d.ts +4 -3
- package/package.json +4 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGZ1bC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29udGVudGZ1bC9zcmMvbGliL3R5cGVzL2NvbnRlbnRmdWwudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IElucHV0U2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCbG9jaywgTm9kZURhdGEgfSBmcm9tICdAY29udGVudGZ1bC9yaWNoLXRleHQtdHlwZXMnO1xuaW1wb3J0IHsgQ29udGVudGZ1bEluY2x1ZGVNYXAgfSBmcm9tICcuLi9jb21wb25lbnRzL3JpY2gtdGV4dC1yZW5kZXJlcic7XG5pbXBvcnQgeyBDb250ZW50ZnVsR3FsQXNzZXQgfSBmcm9tICcuLi9ncWwnO1xuXG5leHBvcnQgdHlwZSBDb250ZW50ZnVsSW1hZ2VSZXNpemVCZWhhdmlvciA9ICdwYWQnIHwgJ2Nyb3AnIHwgJ2ZpbGwnIHwgJ3NjYWxlJyB8ICd0aHVtYicgfCAnZml0JztcbmV4cG9ydCB0eXBlIENvbnRlbnRmdWxJbWFnZUZvY3VzQXJlYSA9XG4gIHwgJ3RvcCdcbiAgfCAnYm90dG9tJ1xuICB8ICdsZWZ0J1xuICB8ICdyaWdodCdcbiAgfCAnY2VudGVyJ1xuICB8ICd0b3BfbGVmdCdcbiAgfCAndG9wX3JpZ2h0J1xuICB8ICdib3R0b21fbGVmdCdcbiAgfCAnYm90dG9tX3JpZ2h0J1xuICB8ICdmYWNlJ1xuICB8ICdmYWNlcyc7XG5cbnR5cGUgQ29tcG9uZW50TGlrZVdpdGhBc3NldCA9IENvbXBvbmVudFR5cGU8e1xuICBhc3NldDogSW5wdXRTaWduYWw8Q29udGVudGZ1bFJlc3RBc3NldCB8IENvbnRlbnRmdWxHcWxBc3NldCB8IG51bGwgfCB1bmRlZmluZWQ+O1xufT47XG50eXBlIENvbXBvbmVudExpa2VXaXRoQ29udGVudGZ1bFJlbmRlcmVySW5wdXRzID0gQ29tcG9uZW50VHlwZTx7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGZpZWxkcz86IElucHV0U2lnbmFsPGFueT47XG5cbiAgaW5jbHVkZXM/OiBJbnB1dFNpZ25hbDxDb250ZW50ZnVsSW5jbHVkZU1hcD47XG5cbiAgbWV0YWRhdGE/OiBJbnB1dFNpZ25hbDxDb250ZW50ZnVsTWV0YWRhdGE+O1xuXG4gIHN5cz86IElucHV0U2lnbmFsPENvbnRlbnRmdWxTeXM+O1xufT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudGZ1bEFzc2V0Q29tcG9uZW50cyB7XG4gIGZpbGU6IENvbXBvbmVudExpa2VXaXRoQXNzZXQ7XG4gIGltYWdlOiBDb21wb25lbnRMaWtlV2l0aEFzc2V0O1xuICB2aWRlbzogQ29tcG9uZW50TGlrZVdpdGhBc3NldDtcbiAgYXVkaW86IENvbXBvbmVudExpa2VXaXRoQXNzZXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudGZ1bENvbmZpZyB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IGNvbXBvbmVudHMgZm9yIHJlbmRlcmluZyBjb250ZW50ZnVsIGFzc2V0c1xuICAgKi9cbiAgY29tcG9uZW50czogQ29udGVudGZ1bEFzc2V0Q29tcG9uZW50cztcblxuICAvKipcbiAgICogQ29tcG9uZW50IGZvciByZW5kZXJpbmcgZW1iZWRkZWQgZW50cmllc1xuICAgKi9cbiAgY3VzdG9tQ29tcG9uZW50czogUmVjb3JkPHN0cmluZywgQ29tcG9uZW50TGlrZVdpdGhDb250ZW50ZnVsUmVuZGVyZXJJbnB1dHM+O1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBjb250ZW50ZnVsIHJpY2ggdGV4dCByZW5kZXJlciBzaG91bGQgcmVuZGVyIHRoZSBjb250ZW50ZnVsIHJpY2ggdGV4dCB3aXRoIHRhaWx3aW5kIGNzcyBjbGFzc2VzXG4gICAqL1xuICB1c2VUYWlsd2luZENsYXNzZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgb3B0aW9ucyBmb3IgdGhlIGNvbnRlbnRmdWwgaW1hZ2UgYXBpXG4gICAqL1xuICBpbWFnZU9wdGlvbnM6IHtcbiAgICAvKipcbiAgICAgKiBTb3VyY2Ugc2V0IHNpemVzLiBFZy5cbiAgICAgKiAtIGBcIjQwMFwiYCAtIDQwMHB4IHdpZHRoXG4gICAgICogLSBgXCI0MDB4MzAwXCJgIC0gNDAwcHggd2lkdGggYW5kIDMwMHB4IGhlaWdodFxuICAgICAqIC0gYFwiNDAwd1wiYCAtIDQwMHB4IHdpZHRoXG4gICAgICogLSBgXCI0MDBoXCJgIC0gNDAwcHggaGVpZ2h0XG4gICAgICogLSBgXCI0MDB3eDMwMGhcImAgLSA0MDBweCB3aWR0aCBhbmQgMzAwcHggaGVpZ2h0XG4gICAgICoqL1xuICAgIHNyY3NldFNpemVzOiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIFNpemVzIGZvciB0aGUgaW1hZ2UuIEVnLlxuICAgICAqICAtIGBcIjEwMHZ3XCJgIC0gMTAwJSBvZiB0aGUgdmlld3BvcnQgd2lkdGhcbiAgICAgKiAgLSBgXCI1MHZ3XCJgIC0gNTAlIG9mIHRoZSB2aWV3cG9ydCB3aWR0aFxuICAgICAqICAtIGAobWluLXdpZHRoOiAzMGVtKSAzMGVtXCJgIC0gMzBlbSBpZiB0aGUgdmlld3BvcnQgaXMgYXQgbGVhc3QgMzBlbSB3aWRlXG4gICAgICovXG4gICAgc2l6ZXM6IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGltYWdlIGluIGhleC4gRWcuIGBcIjAwMDAwMFwiYFxuICAgICAqL1xuICAgIGJhY2tncm91bmRDb2xvcjogc3RyaW5nIHwgbnVsbDtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgQ29udGVudGZ1bExpbmtUeXBlID0gJ1NwYWNlJyB8ICdDb250ZW50VHlwZScgfCAnRW52aXJvbm1lbnQnIHwgJ0VudHJ5JyB8ICdBc3NldCcgfCAnVGFnJztcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudGZ1bExpbms8VCBleHRlbmRzIENvbnRlbnRmdWxMaW5rVHlwZT4ge1xuICB0eXBlOiAnTGluayc7XG4gIGxpbmtUeXBlOiBUO1xuICBpZDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBDb250ZW50ZnVsU3BhY2VMaW5rID0gQ29udGVudGZ1bExpbms8J1NwYWNlJz47XG5leHBvcnQgdHlwZSBDb250ZW50ZnVsRW52aXJvbm1lbnRMaW5rID0gQ29udGVudGZ1bExpbms8J0Vudmlyb25tZW50Jz47XG5leHBvcnQgdHlwZSBDb250ZW50ZnVsQ29udGVudFR5cGVMaW5rID0gQ29udGVudGZ1bExpbms8J0NvbnRlbnRUeXBlJz47XG5leHBvcnQgdHlwZSBDb250ZW50ZnVsRW50cnlMaW5rID0gQ29udGVudGZ1bExpbms8J0VudHJ5Jz47XG5leHBvcnQgdHlwZSBDb250ZW50ZnVsQXNzZXRMaW5rID0gQ29udGVudGZ1bExpbms8J0Fzc2V0Jz47XG5leHBvcnQgdHlwZSBDb250ZW50ZnVsVGFnTGluayA9IENvbnRlbnRmdWxMaW5rPCdUYWcnPjtcblxuZXhwb3J0IGludGVyZmFjZSBDb250ZW50ZnVsVGFnTGlua0l0ZW0ge1xuICBzeXM6IENvbnRlbnRmdWxUYWdMaW5rO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRmdWxFbnRyeUxpbmtJdGVtIHtcbiAgc3lzOiBDb250ZW50ZnVsRW50cnlMaW5rO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRmdWxBc3NldExpbmtJdGVtIHtcbiAgc3lzOiBDb250ZW50ZnVsQXNzZXRMaW5rO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRmdWxNZXRhZGF0YSB7XG4gIHRhZ3M6IENvbnRlbnRmdWxUYWdMaW5rSXRlbVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRmdWxTeXMge1xuICB0eXBlOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbiAgbG9jYWxlOiBzdHJpbmc7XG4gIHJldmlzaW9uPzogbnVtYmVyO1xuICBzcGFjZT86IHtcbiAgICBzeXM6IENvbnRlbnRmdWxTcGFjZUxpbms7XG4gIH07XG4gIGVudmlyb25tZW50Pzoge1xuICAgIHN5czogQ29udGVudGZ1bEVudmlyb25tZW50TGluaztcbiAgfTtcbiAgY29udGVudFR5cGU6IHtcbiAgICBzeXM6IENvbnRlbnRmdWxDb250ZW50VHlwZUxpbms7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudGZ1bEFzc2V0SW1hZ2VEYXRhIHtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudGZ1bEFzc2V0RmlsZURhdGEge1xuICB1cmw6IHN0cmluZztcbiAgZGV0YWlsczoge1xuICAgIHNpemU6IG51bWJlcjtcbiAgICBpbWFnZT86IENvbnRlbnRmdWxBc3NldEltYWdlRGF0YTtcbiAgfTtcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgY29udGVudFR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZW50ZnVsUmVzdEFzc2V0IHtcbiAgc3lzOiBDb250ZW50ZnVsU3lzO1xuICBmaWVsZHM6IHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgZmlsZTogQ29udGVudGZ1bEFzc2V0RmlsZURhdGE7XG4gIH07XG4gIG1ldGFkYXRhOiBDb250ZW50ZnVsTWV0YWRhdGE7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRmdWxFbnRyeTxUID0geyBba2V5OiBzdHJpbmddOiBhbnkgfT4ge1xuICBzeXM6IENvbnRlbnRmdWxTeXM7XG4gIGZpZWxkczogVDtcbiAgbWV0YWRhdGE6IENvbnRlbnRmdWxNZXRhZGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZW50ZnVsQ29sbGVjdGlvbiB7XG4gIGluY2x1ZGVzOiB7XG4gICAgQXNzZXQ6IENvbnRlbnRmdWxSZXN0QXNzZXRbXTtcbiAgICBFbnRyeTogQ29udGVudGZ1bEVudHJ5W107XG4gIH07XG4gIGl0ZW1zOiBDb250ZW50ZnVsRW50cnlbXTtcbiAgbGltaXQ6IG51bWJlcjtcbiAgc2tpcDogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xuICBzeXM6IHtcbiAgICB0eXBlOiAnQXJyYXknO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJpY2hUZXh0UmVzcG9uc2Uge1xuICBub2RlVHlwZTogJ2RvY3VtZW50JztcbiAgZGF0YTogTm9kZURhdGE7XG4gIGNvbnRlbnQ6IEJsb2NrW107XG59XG4iXX0=
|
|
@@ -1,12 +1,31 @@
|
|
|
1
1
|
import { NgClass, DOCUMENT } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { input, Component, ChangeDetectionStrategy, ViewEncapsulation, InjectionToken, inject, numberAttribute, booleanAttribute,
|
|
3
|
+
import { input, computed, Component, ChangeDetectionStrategy, ViewEncapsulation, InjectionToken, inject, numberAttribute, booleanAttribute, isDevMode, ViewContainerRef, Renderer2, ElementRef } from '@angular/core';
|
|
4
|
+
import { gql } from '@ethlete/query';
|
|
4
5
|
import { normalizePictureSizes, PictureComponent } from '@ethlete/cdk';
|
|
5
6
|
import { toSignal, toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
7
|
import { INLINES, BLOCKS } from '@contentful/rich-text-types';
|
|
7
8
|
import { RuntimeError, isObject, getObjectProperty } from '@ethlete/core';
|
|
8
9
|
import { startWith, pairwise, tap } from 'rxjs';
|
|
9
|
-
|
|
10
|
+
|
|
11
|
+
const GQL_FRAGMENT_CONTENTFUL_ASSET = gql `
|
|
12
|
+
fragment AssetData on Asset {
|
|
13
|
+
sys {
|
|
14
|
+
id
|
|
15
|
+
}
|
|
16
|
+
url
|
|
17
|
+
title
|
|
18
|
+
width
|
|
19
|
+
height
|
|
20
|
+
description
|
|
21
|
+
contentType
|
|
22
|
+
size
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
|
+
const isContentfulGqlAsset = (asset) => {
|
|
27
|
+
return asset?.sys?.id && asset?.url && typeof asset?.size === 'number';
|
|
28
|
+
};
|
|
10
29
|
|
|
11
30
|
class ContentfulAudioComponent {
|
|
12
31
|
constructor() {
|
|
@@ -14,26 +33,42 @@ class ContentfulAudioComponent {
|
|
|
14
33
|
this.audioClass = input(null);
|
|
15
34
|
this.figureClass = input(null);
|
|
16
35
|
this.figcaptionClass = input(null);
|
|
36
|
+
this.data = computed(() => {
|
|
37
|
+
const asset = this.asset();
|
|
38
|
+
if (!asset) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
if (isContentfulGqlAsset(asset)) {
|
|
42
|
+
return {
|
|
43
|
+
url: asset.url,
|
|
44
|
+
title: asset.title,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
url: asset.fields.file.url,
|
|
49
|
+
title: asset.fields.title,
|
|
50
|
+
};
|
|
51
|
+
});
|
|
17
52
|
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.
|
|
20
|
-
@if (
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ContentfulAudioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: ContentfulAudioComponent, isStandalone: true, selector: "et-contentful-audio", inputs: { asset: { classPropertyName: "asset", publicName: "asset", isSignal: true, isRequired: true, transformFunction: null }, audioClass: { classPropertyName: "audioClass", publicName: "audioClass", isSignal: true, isRequired: false, transformFunction: null }, figureClass: { classPropertyName: "figureClass", publicName: "figureClass", isSignal: true, isRequired: false, transformFunction: null }, figcaptionClass: { classPropertyName: "figcaptionClass", publicName: "figcaptionClass", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
55
|
+
@if (data(); as data) {
|
|
21
56
|
<figure [ngClass]="figureClass()">
|
|
22
|
-
<figcaption [ngClass]="figcaptionClass()">{{ data.
|
|
23
|
-
<audio [ngClass]="audioClass()" controls src="{{ data.
|
|
57
|
+
<figcaption [ngClass]="figcaptionClass()">{{ data.title }}</figcaption>
|
|
58
|
+
<audio [ngClass]="audioClass()" controls src="{{ data.url }}"></audio>
|
|
24
59
|
</figure>
|
|
25
60
|
}
|
|
26
61
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
27
62
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ContentfulAudioComponent, decorators: [{
|
|
29
64
|
type: Component,
|
|
30
65
|
args: [{
|
|
31
66
|
selector: 'et-contentful-audio',
|
|
32
67
|
template: `
|
|
33
|
-
@if (
|
|
68
|
+
@if (data(); as data) {
|
|
34
69
|
<figure [ngClass]="figureClass()">
|
|
35
|
-
<figcaption [ngClass]="figcaptionClass()">{{ data.
|
|
36
|
-
<audio [ngClass]="audioClass()" controls src="{{ data.
|
|
70
|
+
<figcaption [ngClass]="figcaptionClass()">{{ data.title }}</figcaption>
|
|
71
|
+
<audio [ngClass]="audioClass()" controls src="{{ data.url }}"></audio>
|
|
37
72
|
</figure>
|
|
38
73
|
}
|
|
39
74
|
`,
|
|
@@ -48,24 +83,44 @@ class ContentfulFileComponent {
|
|
|
48
83
|
constructor() {
|
|
49
84
|
this.asset = input.required();
|
|
50
85
|
this.fileClass = input(null);
|
|
86
|
+
this.data = computed(() => {
|
|
87
|
+
const asset = this.asset();
|
|
88
|
+
if (!asset) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
if (isContentfulGqlAsset(asset)) {
|
|
92
|
+
return {
|
|
93
|
+
url: asset.url,
|
|
94
|
+
contentType: asset.contentType,
|
|
95
|
+
size: asset.size,
|
|
96
|
+
title: asset.title,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
url: asset.fields.file.url,
|
|
101
|
+
contentType: asset.fields.file.contentType,
|
|
102
|
+
size: asset.fields.file.details.size,
|
|
103
|
+
title: asset.fields.title,
|
|
104
|
+
};
|
|
105
|
+
});
|
|
51
106
|
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
53
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.
|
|
54
|
-
@if (
|
|
55
|
-
<a [href]="data.
|
|
56
|
-
{{ data.
|
|
107
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ContentfulFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
108
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: ContentfulFileComponent, isStandalone: true, selector: "et-contentful-file", inputs: { asset: { classPropertyName: "asset", publicName: "asset", isSignal: true, isRequired: true, transformFunction: null }, fileClass: { classPropertyName: "fileClass", publicName: "fileClass", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
109
|
+
@if (data(); as data) {
|
|
110
|
+
<a [href]="data.url" [ngClass]="fileClass()" class="underline" target="_blank">
|
|
111
|
+
{{ data.title }} ({{ data.size }} Bytes)
|
|
57
112
|
</a>
|
|
58
113
|
}
|
|
59
114
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
60
115
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ContentfulFileComponent, decorators: [{
|
|
62
117
|
type: Component,
|
|
63
118
|
args: [{
|
|
64
119
|
selector: 'et-contentful-file',
|
|
65
120
|
template: `
|
|
66
|
-
@if (
|
|
67
|
-
<a [href]="data.
|
|
68
|
-
{{ data.
|
|
121
|
+
@if (data(); as data) {
|
|
122
|
+
<a [href]="data.url" [ngClass]="fileClass()" class="underline" target="_blank">
|
|
123
|
+
{{ data.title }} ({{ data.size }} Bytes)
|
|
69
124
|
</a>
|
|
70
125
|
}
|
|
71
126
|
`,
|
|
@@ -79,10 +134,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
79
134
|
const CONTENTFUL_CONFIG = new InjectionToken('ContentfulConfig');
|
|
80
135
|
|
|
81
136
|
const generateDefaultContentfulImageSource = (data) => {
|
|
82
|
-
|
|
137
|
+
if (isContentfulGqlAsset(data)) {
|
|
138
|
+
return {
|
|
139
|
+
type: data.contentType,
|
|
140
|
+
srcset: data.url,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
83
143
|
return {
|
|
84
|
-
type: file.contentType,
|
|
85
|
-
srcset: file.url,
|
|
144
|
+
type: data.fields.file.contentType,
|
|
145
|
+
srcset: data.fields.file.url,
|
|
86
146
|
};
|
|
87
147
|
};
|
|
88
148
|
/**
|
|
@@ -120,7 +180,7 @@ const generateContentfulImageSources = (data, srcsetSizes, backgroundColor, qual
|
|
|
120
180
|
const sources = [];
|
|
121
181
|
const SOURCE_TYPES = ['image/avif', 'image/webp', 'image/png', 'image/jpg'];
|
|
122
182
|
for (const type of SOURCE_TYPES) {
|
|
123
|
-
const baseUrl = assetData.fields.file.url;
|
|
183
|
+
const baseUrl = isContentfulGqlAsset(assetData) ? assetData.url : assetData.fields.file.url;
|
|
124
184
|
const sourceSets = [];
|
|
125
185
|
const queryParams = [];
|
|
126
186
|
// Set the format (e.g. 'fm=webp')
|
|
@@ -177,6 +237,25 @@ class ContentfulImageComponent {
|
|
|
177
237
|
this.sizes = input(normalizePictureSizes(this._contentfulConfig.imageOptions.sizes), {
|
|
178
238
|
transform: (v) => normalizePictureSizes(v),
|
|
179
239
|
});
|
|
240
|
+
this.normalizedAsset = computed(() => {
|
|
241
|
+
const asset = this.asset();
|
|
242
|
+
if (isContentfulGqlAsset(asset)) {
|
|
243
|
+
return {
|
|
244
|
+
alt: asset.title || null,
|
|
245
|
+
figcaption: asset.description || null,
|
|
246
|
+
width: asset.width,
|
|
247
|
+
height: asset.height,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
return {
|
|
252
|
+
alt: asset?.fields?.title || null,
|
|
253
|
+
figcaption: asset?.fields?.description || null,
|
|
254
|
+
width: asset?.fields?.file?.details?.image?.width ?? null,
|
|
255
|
+
height: asset?.fields?.file?.details?.image?.height ?? null,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
});
|
|
180
259
|
this._sources = computed(() => {
|
|
181
260
|
const asset = this.asset();
|
|
182
261
|
const backgroundColor = this.backgroundColor();
|
|
@@ -194,8 +273,8 @@ class ContentfulImageComponent {
|
|
|
194
273
|
return asset ? generateDefaultContentfulImageSource(asset) : null;
|
|
195
274
|
});
|
|
196
275
|
}
|
|
197
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
198
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.
|
|
276
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ContentfulImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
277
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.5", type: ContentfulImageComponent, isStandalone: true, selector: "et-contentful-image", inputs: { asset: { classPropertyName: "asset", publicName: "asset", isSignal: true, isRequired: true, transformFunction: null }, backgroundColor: { classPropertyName: "backgroundColor", publicName: "backgroundColor", isSignal: true, isRequired: false, transformFunction: null }, srcsetSizes: { classPropertyName: "srcsetSizes", publicName: "srcsetSizes", isSignal: true, isRequired: false, transformFunction: null }, quality: { classPropertyName: "quality", publicName: "quality", isSignal: true, isRequired: false, transformFunction: null }, focusArea: { classPropertyName: "focusArea", publicName: "focusArea", isSignal: true, isRequired: false, transformFunction: null }, resizeBehavior: { classPropertyName: "resizeBehavior", publicName: "resizeBehavior", isSignal: true, isRequired: false, transformFunction: null }, hasPriority: { classPropertyName: "hasPriority", publicName: "hasPriority", isSignal: true, isRequired: false, transformFunction: null }, imgClass: { classPropertyName: "imgClass", publicName: "imgClass", isSignal: true, isRequired: false, transformFunction: null }, figureClass: { classPropertyName: "figureClass", publicName: "figureClass", isSignal: true, isRequired: false, transformFunction: null }, figcaptionClass: { classPropertyName: "figcaptionClass", publicName: "figcaptionClass", isSignal: true, isRequired: false, transformFunction: null }, pictureClass: { classPropertyName: "pictureClass", publicName: "pictureClass", isSignal: true, isRequired: false, transformFunction: null }, sizes: { classPropertyName: "sizes", publicName: "sizes", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "et-contentful-image" }, ngImport: i0, template: `
|
|
199
278
|
<et-picture
|
|
200
279
|
[imgClass]="imgClass()"
|
|
201
280
|
[hasPriority]="hasPriority()"
|
|
@@ -203,16 +282,16 @@ class ContentfulImageComponent {
|
|
|
203
282
|
[pictureClass]="pictureClass()"
|
|
204
283
|
[figcaptionClass]="figcaptionClass()"
|
|
205
284
|
[defaultSrc]="_defaultSrc()"
|
|
206
|
-
[alt]="
|
|
207
|
-
[figcaption]="
|
|
208
|
-
[width]="
|
|
209
|
-
[height]="
|
|
285
|
+
[alt]="normalizedAsset().alt ?? null"
|
|
286
|
+
[figcaption]="normalizedAsset().figcaption ?? null"
|
|
287
|
+
[width]="normalizedAsset().width ?? null"
|
|
288
|
+
[height]="normalizedAsset().height ?? null"
|
|
210
289
|
[sizes]="sizes()"
|
|
211
290
|
[sources]="_sources()"
|
|
212
291
|
/>
|
|
213
292
|
`, isInline: true, dependencies: [{ kind: "component", type: PictureComponent, selector: "et-picture", inputs: ["sources", "hasPriority", "imgClass", "figureClass", "figcaptionClass", "pictureClass", "defaultSrc", "alt", "figcaption", "width", "height", "sizes"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
214
293
|
}
|
|
215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
294
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ContentfulImageComponent, decorators: [{
|
|
216
295
|
type: Component,
|
|
217
296
|
args: [{
|
|
218
297
|
selector: 'et-contentful-image',
|
|
@@ -224,10 +303,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
224
303
|
[pictureClass]="pictureClass()"
|
|
225
304
|
[figcaptionClass]="figcaptionClass()"
|
|
226
305
|
[defaultSrc]="_defaultSrc()"
|
|
227
|
-
[alt]="
|
|
228
|
-
[figcaption]="
|
|
229
|
-
[width]="
|
|
230
|
-
[height]="
|
|
306
|
+
[alt]="normalizedAsset().alt ?? null"
|
|
307
|
+
[figcaption]="normalizedAsset().figcaption ?? null"
|
|
308
|
+
[width]="normalizedAsset().width ?? null"
|
|
309
|
+
[height]="normalizedAsset().height ?? null"
|
|
231
310
|
[sizes]="sizes()"
|
|
232
311
|
[sources]="_sources()"
|
|
233
312
|
/>
|
|
@@ -246,24 +325,40 @@ class ContentfulVideoComponent {
|
|
|
246
325
|
constructor() {
|
|
247
326
|
this.asset = input.required();
|
|
248
327
|
this.videoClass = input(null);
|
|
328
|
+
this.data = computed(() => {
|
|
329
|
+
const asset = this.asset();
|
|
330
|
+
if (!asset) {
|
|
331
|
+
return null;
|
|
332
|
+
}
|
|
333
|
+
if (isContentfulGqlAsset(asset)) {
|
|
334
|
+
return {
|
|
335
|
+
url: asset.url,
|
|
336
|
+
contentType: asset.contentType,
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
return {
|
|
340
|
+
url: asset.fields.file.url,
|
|
341
|
+
contentType: asset.fields.file.contentType,
|
|
342
|
+
};
|
|
343
|
+
});
|
|
249
344
|
}
|
|
250
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
251
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.
|
|
252
|
-
@if (
|
|
345
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ContentfulVideoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
346
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: ContentfulVideoComponent, isStandalone: true, selector: "et-contentful-video", inputs: { asset: { classPropertyName: "asset", publicName: "asset", isSignal: true, isRequired: true, transformFunction: null }, videoClass: { classPropertyName: "videoClass", publicName: "videoClass", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
347
|
+
@if (data(); as data) {
|
|
253
348
|
<video [ngClass]="videoClass()" controls>
|
|
254
|
-
<source src="{{ data.
|
|
349
|
+
<source src="{{ data.url }}" type="{{ data.contentType }}" />
|
|
255
350
|
</video>
|
|
256
351
|
}
|
|
257
352
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
258
353
|
}
|
|
259
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
354
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ContentfulVideoComponent, decorators: [{
|
|
260
355
|
type: Component,
|
|
261
356
|
args: [{
|
|
262
357
|
selector: 'et-contentful-video',
|
|
263
358
|
template: `
|
|
264
|
-
@if (
|
|
359
|
+
@if (data(); as data) {
|
|
265
360
|
<video [ngClass]="videoClass()" controls>
|
|
266
|
-
<source src="{{ data.
|
|
361
|
+
<source src="{{ data.url }}" type="{{ data.contentType }}" />
|
|
267
362
|
</video>
|
|
268
363
|
}
|
|
269
364
|
`,
|
|
@@ -474,6 +569,57 @@ const isExecutedTextCommandCacheItem = (cache) => {
|
|
|
474
569
|
return isTextRenderCommand(cache.command);
|
|
475
570
|
};
|
|
476
571
|
const ET_CONTENTFUL_ANY_ENTRY_CONTENT_TYPE_SYS_ID = '$$$_et-contentful-any-entry-content-type-sys-id';
|
|
572
|
+
/**
|
|
573
|
+
* Create a contentful include map using the provided entries and assets.
|
|
574
|
+
*/
|
|
575
|
+
const createContentfulIncludeMap = (config) => {
|
|
576
|
+
const { entries, assets } = config;
|
|
577
|
+
const assetMap = new Map(assets.map((asset) => [asset.sys.id, asset]));
|
|
578
|
+
const entryMap = new Map(entries.map((entry) => [entry.sys.id, entry]));
|
|
579
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
580
|
+
const getEntry = (id, contentTypeId) => {
|
|
581
|
+
const entry = entryMap.get(id);
|
|
582
|
+
if (!entry) {
|
|
583
|
+
if (isDevMode()) {
|
|
584
|
+
console.warn('Entry not found! Will return null. Is the include query param to low?', { id, entryMap });
|
|
585
|
+
}
|
|
586
|
+
return null;
|
|
587
|
+
}
|
|
588
|
+
if (contentTypeId === ET_CONTENTFUL_ANY_ENTRY_CONTENT_TYPE_SYS_ID) {
|
|
589
|
+
return entry;
|
|
590
|
+
}
|
|
591
|
+
if (entry.sys.contentType.sys.id !== contentTypeId) {
|
|
592
|
+
if (isDevMode()) {
|
|
593
|
+
console.warn('Entry sys ID does not match the provided sys ID! Will return null.', {
|
|
594
|
+
entry,
|
|
595
|
+
sysId: contentTypeId,
|
|
596
|
+
});
|
|
597
|
+
}
|
|
598
|
+
return null;
|
|
599
|
+
}
|
|
600
|
+
return entry;
|
|
601
|
+
};
|
|
602
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
603
|
+
const getEntries = (ids, contentTypeId) => {
|
|
604
|
+
const entries = ids
|
|
605
|
+
.map((id) => (typeof id === 'string' ? id : id.sys.id))
|
|
606
|
+
.map((id) => getEntry(id, contentTypeId))
|
|
607
|
+
.filter((entry) => entry !== null);
|
|
608
|
+
return entries;
|
|
609
|
+
};
|
|
610
|
+
const getAsset = (id) => {
|
|
611
|
+
return assetMap.get(id) ?? null;
|
|
612
|
+
};
|
|
613
|
+
const getAssets = (ids) => {
|
|
614
|
+
return ids.map((id) => getAsset(id)).filter((asset) => asset !== null);
|
|
615
|
+
};
|
|
616
|
+
return {
|
|
617
|
+
getEntry,
|
|
618
|
+
getEntries,
|
|
619
|
+
getAsset,
|
|
620
|
+
getAssets,
|
|
621
|
+
};
|
|
622
|
+
};
|
|
477
623
|
class ContentfulRichTextRendererComponent {
|
|
478
624
|
constructor() {
|
|
479
625
|
this._viewContainerRef = inject(ViewContainerRef);
|
|
@@ -505,51 +651,7 @@ class ContentfulRichTextRendererComponent {
|
|
|
505
651
|
const content = this.content();
|
|
506
652
|
const assets = content?.includes.Asset;
|
|
507
653
|
const entries = content?.includes.Entry;
|
|
508
|
-
|
|
509
|
-
const entryMap = new Map(entries?.map((entry) => [entry.sys.id, entry]) ?? []);
|
|
510
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
511
|
-
const getEntry = (id, contentTypeId) => {
|
|
512
|
-
const entry = entryMap.get(id);
|
|
513
|
-
if (!entry) {
|
|
514
|
-
if (isDevMode()) {
|
|
515
|
-
console.warn('Entry not found! Will return null. Is the include query param to low?', { id, entryMap });
|
|
516
|
-
}
|
|
517
|
-
return null;
|
|
518
|
-
}
|
|
519
|
-
if (contentTypeId === ET_CONTENTFUL_ANY_ENTRY_CONTENT_TYPE_SYS_ID) {
|
|
520
|
-
return entry;
|
|
521
|
-
}
|
|
522
|
-
if (entry.sys.contentType.sys.id !== contentTypeId) {
|
|
523
|
-
if (isDevMode()) {
|
|
524
|
-
console.warn('Entry sys ID does not match the provided sys ID! Will return null.', {
|
|
525
|
-
entry,
|
|
526
|
-
sysId: contentTypeId,
|
|
527
|
-
});
|
|
528
|
-
}
|
|
529
|
-
return null;
|
|
530
|
-
}
|
|
531
|
-
return entry;
|
|
532
|
-
};
|
|
533
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
534
|
-
const getEntries = (ids, contentTypeId) => {
|
|
535
|
-
const entries = ids
|
|
536
|
-
.map((id) => (typeof id === 'string' ? id : id.sys.id))
|
|
537
|
-
.map((id) => getEntry(id, contentTypeId))
|
|
538
|
-
.filter((entry) => entry !== null);
|
|
539
|
-
return entries;
|
|
540
|
-
};
|
|
541
|
-
const getAsset = (id) => {
|
|
542
|
-
return assetMap.get(id) ?? null;
|
|
543
|
-
};
|
|
544
|
-
const getAssets = (ids) => {
|
|
545
|
-
return ids.map((id) => getAsset(id)).filter((asset) => asset !== null);
|
|
546
|
-
};
|
|
547
|
-
return {
|
|
548
|
-
getEntry,
|
|
549
|
-
getEntries,
|
|
550
|
-
getAsset,
|
|
551
|
-
getAssets,
|
|
552
|
-
};
|
|
654
|
+
return createContentfulIncludeMap({ assets: assets ?? [], entries: entries ?? [] });
|
|
553
655
|
});
|
|
554
656
|
/**
|
|
555
657
|
* The rich text data that should be rendered.
|
|
@@ -1084,10 +1186,10 @@ class ContentfulRichTextRendererComponent {
|
|
|
1084
1186
|
const command = this._stringifyRenderCommand(instruction[RENDER_INSTRUCTION_POSITION.COMMAND]);
|
|
1085
1187
|
return `${translatedType}: ${command}`;
|
|
1086
1188
|
}
|
|
1087
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
1088
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.
|
|
1189
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ContentfulRichTextRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1190
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.5", type: ContentfulRichTextRendererComponent, isStandalone: true, selector: "et-contentful-rich-text-renderer", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: true, transformFunction: null }, richTextPath: { classPropertyName: "richTextPath", publicName: "richTextPath", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "et-contentful-rich-text-renderer" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1089
1191
|
}
|
|
1090
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
1192
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ContentfulRichTextRendererComponent, decorators: [{
|
|
1091
1193
|
type: Component,
|
|
1092
1194
|
args: [{
|
|
1093
1195
|
selector: 'et-contentful-rich-text-renderer',
|
|
@@ -1123,21 +1225,6 @@ const ContentfulImports = [
|
|
|
1123
1225
|
ContentfulRichTextRendererComponent,
|
|
1124
1226
|
];
|
|
1125
1227
|
|
|
1126
|
-
const GQL_FRAGMENT_CONTENTFUL_ASSET = gql `
|
|
1127
|
-
fragment AssetData on Asset {
|
|
1128
|
-
sys {
|
|
1129
|
-
id
|
|
1130
|
-
}
|
|
1131
|
-
url
|
|
1132
|
-
title
|
|
1133
|
-
width
|
|
1134
|
-
height
|
|
1135
|
-
description
|
|
1136
|
-
contentType
|
|
1137
|
-
size
|
|
1138
|
-
}
|
|
1139
|
-
`;
|
|
1140
|
-
|
|
1141
1228
|
const provideContentfulConfig = (contentfulConfig = {}) => {
|
|
1142
1229
|
return { provide: CONTENTFUL_CONFIG, useValue: createContentfulConfig(contentfulConfig) };
|
|
1143
1230
|
};
|
|
@@ -1148,5 +1235,5 @@ const provideContentfulConfig = (contentfulConfig = {}) => {
|
|
|
1148
1235
|
* Generated bundle index. Do not edit.
|
|
1149
1236
|
*/
|
|
1150
1237
|
|
|
1151
|
-
export { COMPONENT_RENDER_COMMAND_POSITION, CONTENTFUL_CONFIG, ContentfulAudioComponent, ContentfulFileComponent, ContentfulImageComponent, ContentfulImports, ContentfulRichTextRendererComponent, ContentfulVideoComponent, ET_CONTENTFUL_ANY_ENTRY_CONTENT_TYPE_SYS_ID, GQL_FRAGMENT_CONTENTFUL_ASSET, HTML_CLOSE_RENDER_COMMAND_POSITION, HTML_OPEN_RENDER_COMMAND_POSITION, RENDER_COMMAND_POSITION, RENDER_COMMAND_TYPE, RENDER_INSTRUCTION_POSITION, RENDER_INSTRUCTION_TYPE, TEXT_RENDER_COMMAND_POSITION, createContentfulConfig, generateContentfulImageSources, generateDefaultContentfulImageSource, getRenderCommandId, isComponentRenderCommand, isExecutedComponentCommandCacheItem, isExecutedHtmlOrTextCommandCacheItem, isExecutedTextCommandCacheItem, isHtmlCloseRenderCommand, isHtmlOpenRenderCommand, isRichTextRootNode, isTextRenderCommand, marksToClass, parseContentfulImageSize, provideContentfulConfig, translateContentfulNodeTypeToHtmlTag };
|
|
1238
|
+
export { COMPONENT_RENDER_COMMAND_POSITION, CONTENTFUL_CONFIG, ContentfulAudioComponent, ContentfulFileComponent, ContentfulImageComponent, ContentfulImports, ContentfulRichTextRendererComponent, ContentfulVideoComponent, ET_CONTENTFUL_ANY_ENTRY_CONTENT_TYPE_SYS_ID, GQL_FRAGMENT_CONTENTFUL_ASSET, HTML_CLOSE_RENDER_COMMAND_POSITION, HTML_OPEN_RENDER_COMMAND_POSITION, RENDER_COMMAND_POSITION, RENDER_COMMAND_TYPE, RENDER_INSTRUCTION_POSITION, RENDER_INSTRUCTION_TYPE, TEXT_RENDER_COMMAND_POSITION, createContentfulConfig, createContentfulIncludeMap, generateContentfulImageSources, generateDefaultContentfulImageSource, getRenderCommandId, isComponentRenderCommand, isContentfulGqlAsset, isExecutedComponentCommandCacheItem, isExecutedHtmlOrTextCommandCacheItem, isExecutedTextCommandCacheItem, isHtmlCloseRenderCommand, isHtmlOpenRenderCommand, isRichTextRootNode, isTextRenderCommand, marksToClass, parseContentfulImageSize, provideContentfulConfig, translateContentfulNodeTypeToHtmlTag };
|
|
1152
1239
|
//# sourceMappingURL=ethlete-contentful.mjs.map
|