@ethlete/contentful 1.0.0 → 1.0.2
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/esm2022/lib/components/audio/contentful-audio.component.mjs +65 -0
- package/esm2022/lib/components/file/contentful-file.component.mjs +54 -0
- package/esm2022/lib/components/image/contentful-image.component.mjs +137 -0
- package/{esm2020 → esm2022}/lib/components/image/contentful-image.component.utils.mjs +1 -1
- package/esm2022/lib/components/rich-text-renderer/rich-text-renderer.component.mjs +113 -0
- package/esm2022/lib/components/video/contentful-video.component.mjs +57 -0
- package/{fesm2020 → fesm2022}/ethlete-contentful.mjs +25 -25
- package/fesm2022/ethlete-contentful.mjs.map +1 -0
- package/lib/components/audio/contentful-audio.component.d.ts +1 -1
- package/lib/components/file/contentful-file.component.d.ts +1 -1
- package/lib/components/image/contentful-image.component.d.ts +3 -3
- package/lib/components/image/contentful-image.component.utils.d.ts +1 -1
- package/lib/components/rich-text-renderer/rich-text-renderer.component.d.ts +1 -1
- package/lib/components/video/contentful-video.component.d.ts +1 -1
- package/package.json +10 -16
- package/esm2020/lib/components/audio/contentful-audio.component.mjs +0 -64
- package/esm2020/lib/components/file/contentful-file.component.mjs +0 -53
- package/esm2020/lib/components/image/contentful-image.component.mjs +0 -136
- package/esm2020/lib/components/rich-text-renderer/rich-text-renderer.component.mjs +0 -112
- package/esm2020/lib/components/video/contentful-video.component.mjs +0 -56
- package/fesm2015/ethlete-contentful.mjs +0 -753
- package/fesm2015/ethlete-contentful.mjs.map +0 -1
- package/fesm2020/ethlete-contentful.mjs.map +0 -1
- /package/{esm2020 → esm2022}/ethlete-contentful.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/audio/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/file/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/image/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/image/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/rich-text-renderer/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/rich-text-renderer/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/rich-text-renderer/rich-text-renderer.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/rich-text-renderer/rich-text-renderer.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/rich-text-renderer/rich-text-renderer.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/video/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/constants/contentful.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/constants/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/constants/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/contentful.imports.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/gql/asset.fragments.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/gql/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/contentful.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/contentful-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/contentful.util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/public-api.mjs +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { NgClass, NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { RICH_TEXT_RENDERER_COMPONENT_DATA } from '../rich-text-renderer';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
class ContentfulAudioComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._richTextData = inject(RICH_TEXT_RENDERER_COMPONENT_DATA, { optional: true });
|
|
8
|
+
this._data = null;
|
|
9
|
+
this.audioClass = null;
|
|
10
|
+
this.figureClass = null;
|
|
11
|
+
this.figcaptionClass = null;
|
|
12
|
+
}
|
|
13
|
+
get data() {
|
|
14
|
+
return this._data;
|
|
15
|
+
}
|
|
16
|
+
set data(v) {
|
|
17
|
+
if (v && !v.contentType) {
|
|
18
|
+
this._data = null;
|
|
19
|
+
console.warn('The provided asset is invalid', v);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (v && !v.contentType.startsWith('audio/')) {
|
|
23
|
+
throw new Error('The provided asset is not an audio');
|
|
24
|
+
}
|
|
25
|
+
this._data = v ?? null;
|
|
26
|
+
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
if (this._richTextData && !this.data) {
|
|
29
|
+
this.data = this._richTextData;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ContentfulAudioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ContentfulAudioComponent, isStandalone: true, selector: "et-contentful-audio", inputs: { data: "data", audioClass: "audioClass", figureClass: "figureClass", figcaptionClass: "figcaptionClass" }, ngImport: i0, template: `
|
|
34
|
+
<figure *ngIf="data" [ngClass]="figureClass">
|
|
35
|
+
<figcaption [ngClass]="figcaptionClass">{{ data.title }}</figcaption>
|
|
36
|
+
<audio [ngClass]="audioClass" controls src="{{ data.url }}"></audio>
|
|
37
|
+
</figure>
|
|
38
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
39
|
+
}
|
|
40
|
+
export { ContentfulAudioComponent };
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ContentfulAudioComponent, decorators: [{
|
|
42
|
+
type: Component,
|
|
43
|
+
args: [{
|
|
44
|
+
selector: 'et-contentful-audio',
|
|
45
|
+
template: `
|
|
46
|
+
<figure *ngIf="data" [ngClass]="figureClass">
|
|
47
|
+
<figcaption [ngClass]="figcaptionClass">{{ data.title }}</figcaption>
|
|
48
|
+
<audio [ngClass]="audioClass" controls src="{{ data.url }}"></audio>
|
|
49
|
+
</figure>
|
|
50
|
+
`,
|
|
51
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
52
|
+
encapsulation: ViewEncapsulation.None,
|
|
53
|
+
standalone: true,
|
|
54
|
+
imports: [NgIf, NgClass],
|
|
55
|
+
}]
|
|
56
|
+
}], propDecorators: { data: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], audioClass: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], figureClass: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], figcaptionClass: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}] } });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGZ1bC1hdWRpby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbnRlbnRmdWwvc3JjL2xpYi9jb21wb25lbnRzL2F1ZGlvL2NvbnRlbnRmdWwtYXVkaW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUUxRSxNQWFhLHdCQUF3QjtJQWJyQztRQWNVLGtCQUFhLEdBQUcsTUFBTSxDQUFrQixpQ0FBaUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBcUIvRixVQUFLLEdBQTJCLElBQUksQ0FBQztRQUc3QyxlQUFVLEdBQWdCLElBQUksQ0FBQztRQUcvQixnQkFBVyxHQUFnQixJQUFJLENBQUM7UUFHaEMsb0JBQWUsR0FBZ0IsSUFBSSxDQUFDO0tBT3JDO0lBbkNDLElBQ0ksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsQ0FBcUM7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBRWxCLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFakQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7U0FDdkQ7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDekIsQ0FBQztJQVlELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUNoQztJQUNILENBQUM7OEdBckNVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLG1NQVh6Qjs7Ozs7R0FLVCw0REFJUyxJQUFJLDZGQUFFLE9BQU87O1NBRVosd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBYnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFOzs7OztHQUtUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7aUJBQ3pCOzhCQUtLLElBQUk7c0JBRFAsS0FBSztnQkFzQk4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3NUeXBlIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBDb250ZW50ZnVsQXNzZXQgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBSSUNIX1RFWFRfUkVOREVSRVJfQ09NUE9ORU5UX0RBVEEgfSBmcm9tICcuLi9yaWNoLXRleHQtcmVuZGVyZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1jb250ZW50ZnVsLWF1ZGlvJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZmlndXJlICpuZ0lmPVwiZGF0YVwiIFtuZ0NsYXNzXT1cImZpZ3VyZUNsYXNzXCI+XG4gICAgICA8ZmlnY2FwdGlvbiBbbmdDbGFzc109XCJmaWdjYXB0aW9uQ2xhc3NcIj57eyBkYXRhLnRpdGxlIH19PC9maWdjYXB0aW9uPlxuICAgICAgPGF1ZGlvIFtuZ0NsYXNzXT1cImF1ZGlvQ2xhc3NcIiBjb250cm9scyBzcmM9XCJ7eyBkYXRhLnVybCB9fVwiPjwvYXVkaW8+XG4gICAgPC9maWd1cmU+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgTmdDbGFzc10sXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRmdWxBdWRpb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgX3JpY2hUZXh0RGF0YSA9IGluamVjdDxDb250ZW50ZnVsQXNzZXQ+KFJJQ0hfVEVYVF9SRU5ERVJFUl9DT01QT05FTlRfREFUQSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBASW5wdXQoKVxuICBnZXQgZGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgfVxuICBzZXQgZGF0YSh2OiBDb250ZW50ZnVsQXNzZXQgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHYgJiYgIXYuY29udGVudFR5cGUpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSBudWxsO1xuXG4gICAgICBjb25zb2xlLndhcm4oJ1RoZSBwcm92aWRlZCBhc3NldCBpcyBpbnZhbGlkJywgdik7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodiAmJiAhdi5jb250ZW50VHlwZS5zdGFydHNXaXRoKCdhdWRpby8nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgcHJvdmlkZWQgYXNzZXQgaXMgbm90IGFuIGF1ZGlvJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fZGF0YSA9IHYgPz8gbnVsbDtcbiAgfVxuICBwcml2YXRlIF9kYXRhOiBDb250ZW50ZnVsQXNzZXQgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBhdWRpb0NsYXNzOiBOZ0NsYXNzVHlwZSA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgZmlndXJlQ2xhc3M6IE5nQ2xhc3NUeXBlID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBmaWdjYXB0aW9uQ2xhc3M6IE5nQ2xhc3NUeXBlID0gbnVsbDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcmljaFRleHREYXRhICYmICF0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuZGF0YSA9IHRoaXMuX3JpY2hUZXh0RGF0YTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { NgClass, NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { RICH_TEXT_RENDERER_COMPONENT_DATA } from '../rich-text-renderer';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
class ContentfulFileComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._richTextData = inject(RICH_TEXT_RENDERER_COMPONENT_DATA, { optional: true });
|
|
8
|
+
this._data = null;
|
|
9
|
+
this.fileClass = null;
|
|
10
|
+
}
|
|
11
|
+
get data() {
|
|
12
|
+
return this._data;
|
|
13
|
+
}
|
|
14
|
+
set data(v) {
|
|
15
|
+
if (v && !v.contentType) {
|
|
16
|
+
this._data = null;
|
|
17
|
+
console.warn('The provided asset is invalid', v);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
this._data = v ?? null;
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
if (this._richTextData && !this.data) {
|
|
24
|
+
this.data = this._richTextData;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ContentfulFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ContentfulFileComponent, isStandalone: true, selector: "et-contentful-file", inputs: { data: "data", fileClass: "fileClass" }, ngImport: i0, template: `
|
|
29
|
+
<a *ngIf="data" [href]="data.url" [ngClass]="fileClass" class="underline" target="_blank">
|
|
30
|
+
{{ data.title }} ({{ data.size }} Bytes)
|
|
31
|
+
</a>
|
|
32
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
33
|
+
}
|
|
34
|
+
export { ContentfulFileComponent };
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ContentfulFileComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{
|
|
38
|
+
selector: 'et-contentful-file',
|
|
39
|
+
template: `
|
|
40
|
+
<a *ngIf="data" [href]="data.url" [ngClass]="fileClass" class="underline" target="_blank">
|
|
41
|
+
{{ data.title }} ({{ data.size }} Bytes)
|
|
42
|
+
</a>
|
|
43
|
+
`,
|
|
44
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
45
|
+
encapsulation: ViewEncapsulation.None,
|
|
46
|
+
standalone: true,
|
|
47
|
+
imports: [NgIf, NgClass],
|
|
48
|
+
}]
|
|
49
|
+
}], propDecorators: { data: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], fileClass: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}] } });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGZ1bC1maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29udGVudGZ1bC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS9jb250ZW50ZnVsLWZpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUUxRSxNQVlhLHVCQUF1QjtJQVpwQztRQWFVLGtCQUFhLEdBQUcsTUFBTSxDQUFrQixpQ0FBaUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBaUIvRixVQUFLLEdBQTJCLElBQUksQ0FBQztRQUc3QyxjQUFTLEdBQWdCLElBQUksQ0FBQztLQU8vQjtJQXpCQyxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLENBQXFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUVsQixPQUFPLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRWpELE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN6QixDQUFDO0lBTUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQzs4R0EzQlUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsZ0lBVnhCOzs7O0dBSVQsNERBSVMsSUFBSSw2RkFBRSxPQUFPOztTQUVaLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQVpuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRTs7OztHQUlUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7aUJBQ3pCOzhCQUtLLElBQUk7c0JBRFAsS0FBSztnQkFrQk4sU0FBUztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NsYXNzVHlwZSB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29udGVudGZ1bEFzc2V0IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgUklDSF9URVhUX1JFTkRFUkVSX0NPTVBPTkVOVF9EQVRBIH0gZnJvbSAnLi4vcmljaC10ZXh0LXJlbmRlcmVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtY29udGVudGZ1bC1maWxlJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YSAqbmdJZj1cImRhdGFcIiBbaHJlZl09XCJkYXRhLnVybFwiIFtuZ0NsYXNzXT1cImZpbGVDbGFzc1wiIGNsYXNzPVwidW5kZXJsaW5lXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICB7eyBkYXRhLnRpdGxlIH19ICh7eyBkYXRhLnNpemUgfX0gQnl0ZXMpXG4gICAgPC9hPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIE5nQ2xhc3NdLFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50ZnVsRmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgX3JpY2hUZXh0RGF0YSA9IGluamVjdDxDb250ZW50ZnVsQXNzZXQ+KFJJQ0hfVEVYVF9SRU5ERVJFUl9DT01QT05FTlRfREFUQSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBASW5wdXQoKVxuICBnZXQgZGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgfVxuICBzZXQgZGF0YSh2OiBDb250ZW50ZnVsQXNzZXQgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHYgJiYgIXYuY29udGVudFR5cGUpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSBudWxsO1xuXG4gICAgICBjb25zb2xlLndhcm4oJ1RoZSBwcm92aWRlZCBhc3NldCBpcyBpbnZhbGlkJywgdik7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9kYXRhID0gdiA/PyBudWxsO1xuICB9XG4gIHByaXZhdGUgX2RhdGE6IENvbnRlbnRmdWxBc3NldCB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIGZpbGVDbGFzczogTmdDbGFzc1R5cGUgPSBudWxsO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yaWNoVGV4dERhdGEgJiYgIXRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5kYXRhID0gdGhpcy5fcmljaFRleHREYXRhO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { NgClass, NgIf, NgOptimizedImage } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation, inject, } from '@angular/core';
|
|
3
|
+
import { PictureComponent, PictureDataDirective } from '@ethlete/cdk';
|
|
4
|
+
import { isContentfulImage } from '../../utils';
|
|
5
|
+
import { RICH_TEXT_RENDERER_COMPONENT_DATA } from '../rich-text-renderer';
|
|
6
|
+
import { generateContentfulImageSources, generateDefaultContentfulImageSource, } from './contentful-image.component.utils';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@ethlete/cdk";
|
|
9
|
+
class ContentfulImageComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this._richTextData = inject(RICH_TEXT_RENDERER_COMPONENT_DATA, {
|
|
12
|
+
optional: true,
|
|
13
|
+
});
|
|
14
|
+
this.pictureData = inject(PictureDataDirective);
|
|
15
|
+
this._cdr = inject(ChangeDetectorRef);
|
|
16
|
+
this._data = null;
|
|
17
|
+
this._sizes = [];
|
|
18
|
+
this._srcsetSizes = [];
|
|
19
|
+
this._backgroundColor = null;
|
|
20
|
+
this.sources = [];
|
|
21
|
+
}
|
|
22
|
+
get data() {
|
|
23
|
+
return this._data;
|
|
24
|
+
}
|
|
25
|
+
set data(v) {
|
|
26
|
+
const assetData = isContentfulImage(v) ? v.asset : v;
|
|
27
|
+
const imageData = isContentfulImage(v) ? v : null;
|
|
28
|
+
if (assetData && !assetData.contentType) {
|
|
29
|
+
this._data = null;
|
|
30
|
+
console.warn('The provided asset is invalid', v);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (assetData && !assetData.contentType.startsWith('image/')) {
|
|
34
|
+
throw new Error('The provided asset is not an image');
|
|
35
|
+
}
|
|
36
|
+
this._data = v ?? null;
|
|
37
|
+
this.pictureData.defaultSrc = assetData ? generateDefaultContentfulImageSource(assetData) : null;
|
|
38
|
+
this.pictureData.alt = imageData?.alt ?? assetData?.description ?? null;
|
|
39
|
+
this.pictureData.width = assetData?.width ?? null;
|
|
40
|
+
this.pictureData.height = assetData?.height ?? null;
|
|
41
|
+
this.pictureData.figcaption = imageData?.caption ?? null;
|
|
42
|
+
this.updateSizes();
|
|
43
|
+
}
|
|
44
|
+
get sizes() {
|
|
45
|
+
return this._sizes;
|
|
46
|
+
}
|
|
47
|
+
set sizes(v) {
|
|
48
|
+
this._sizes = v;
|
|
49
|
+
this.pictureData.sizes = this.sizes?.join(', ') ?? null;
|
|
50
|
+
}
|
|
51
|
+
get srcsetSizes() {
|
|
52
|
+
return this._srcsetSizes;
|
|
53
|
+
}
|
|
54
|
+
set srcsetSizes(v) {
|
|
55
|
+
this._srcsetSizes = v;
|
|
56
|
+
this.updateSizes();
|
|
57
|
+
}
|
|
58
|
+
get backgroundColor() {
|
|
59
|
+
return this._backgroundColor;
|
|
60
|
+
}
|
|
61
|
+
set backgroundColor(v) {
|
|
62
|
+
this._backgroundColor = v;
|
|
63
|
+
this.updateSizes();
|
|
64
|
+
}
|
|
65
|
+
ngOnInit() {
|
|
66
|
+
if (this._richTextData && !this.data) {
|
|
67
|
+
this.data = this._richTextData;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
updateSizes() {
|
|
71
|
+
this.sources = this._data ? generateContentfulImageSources(this._data, this.srcsetSizes, this.backgroundColor) : [];
|
|
72
|
+
this._cdr.markForCheck();
|
|
73
|
+
}
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ContentfulImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ContentfulImageComponent, isStandalone: true, selector: "et-contentful-image", inputs: { data: "data", sizes: "sizes", srcsetSizes: "srcsetSizes", backgroundColor: "backgroundColor" }, host: { classAttribute: "et-contentful-image" }, hostDirectives: [{ directive: i1.PictureDataDirective, inputs: ["imgClass", "imgClass", "hasPriority", "hasPriority", "figureClass", "figureClass", "pictureClass", "pictureClass", "figcaptionClass", "figcaptionClass"] }], ngImport: i0, template: `
|
|
76
|
+
<et-picture
|
|
77
|
+
[imgClass]="pictureData.imgClass"
|
|
78
|
+
[hasPriority]="pictureData.hasPriority"
|
|
79
|
+
[figureClass]="pictureData.figureClass"
|
|
80
|
+
[pictureClass]="pictureData.pictureClass"
|
|
81
|
+
[figcaptionClass]="pictureData.figcaptionClass"
|
|
82
|
+
[defaultSrc]="pictureData.defaultSrc"
|
|
83
|
+
[alt]="pictureData.alt"
|
|
84
|
+
[figcaption]="pictureData.figcaption"
|
|
85
|
+
[width]="pictureData.width"
|
|
86
|
+
[height]="pictureData.height"
|
|
87
|
+
[sizes]="pictureData.sizes"
|
|
88
|
+
[sources]="sources"
|
|
89
|
+
/>
|
|
90
|
+
`, isInline: true, dependencies: [{ kind: "component", type: PictureComponent, selector: "et-picture", inputs: ["sources"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
91
|
+
}
|
|
92
|
+
export { ContentfulImageComponent };
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ContentfulImageComponent, decorators: [{
|
|
94
|
+
type: Component,
|
|
95
|
+
args: [{
|
|
96
|
+
selector: 'et-contentful-image',
|
|
97
|
+
template: `
|
|
98
|
+
<et-picture
|
|
99
|
+
[imgClass]="pictureData.imgClass"
|
|
100
|
+
[hasPriority]="pictureData.hasPriority"
|
|
101
|
+
[figureClass]="pictureData.figureClass"
|
|
102
|
+
[pictureClass]="pictureData.pictureClass"
|
|
103
|
+
[figcaptionClass]="pictureData.figcaptionClass"
|
|
104
|
+
[defaultSrc]="pictureData.defaultSrc"
|
|
105
|
+
[alt]="pictureData.alt"
|
|
106
|
+
[figcaption]="pictureData.figcaption"
|
|
107
|
+
[width]="pictureData.width"
|
|
108
|
+
[height]="pictureData.height"
|
|
109
|
+
[sizes]="pictureData.sizes"
|
|
110
|
+
[sources]="sources"
|
|
111
|
+
/>
|
|
112
|
+
`,
|
|
113
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
114
|
+
encapsulation: ViewEncapsulation.None,
|
|
115
|
+
standalone: true,
|
|
116
|
+
imports: [NgIf, NgClass, NgOptimizedImage, PictureComponent],
|
|
117
|
+
hostDirectives: [
|
|
118
|
+
{
|
|
119
|
+
directive: PictureDataDirective,
|
|
120
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
121
|
+
inputs: ['imgClass', 'hasPriority', 'figureClass', 'pictureClass', 'figcaptionClass'],
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
host: {
|
|
125
|
+
class: 'et-contentful-image',
|
|
126
|
+
},
|
|
127
|
+
}]
|
|
128
|
+
}], propDecorators: { data: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], sizes: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], srcsetSizes: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], backgroundColor: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}] } });
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGZ1bC1pbWFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbnRlbnRmdWwvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlL2NvbnRlbnRmdWwtaW1hZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFFTCxpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBaUIsTUFBTSxjQUFjLENBQUM7QUFFckYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsb0NBQW9DLEdBQ3JDLE1BQU0sb0NBQW9DLENBQUM7OztBQUU1QyxNQWlDYSx3QkFBd0I7SUFqQ3JDO1FBa0NVLGtCQUFhLEdBQUcsTUFBTSxDQUFvQyxpQ0FBaUMsRUFBRTtZQUNuRyxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztRQUVnQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3JELFNBQUksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQStCbEMsVUFBSyxHQUE2QyxJQUFJLENBQUM7UUFVdkQsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQVV0QixpQkFBWSxHQUFhLEVBQUUsQ0FBQztRQVU1QixxQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO1FBRXJDLFlBQU8sR0FBb0IsRUFBRSxDQUFDO0tBYXpDO0lB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QUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVwSCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBakZVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHdjQS9CekI7Ozs7Ozs7Ozs7Ozs7OztHQWVULDREQUkwQyxnQkFBZ0I7O1NBWWhELHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQWpDcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztHQWVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7b0JBQzVELGNBQWMsRUFBRTt3QkFDZDs0QkFDRSxTQUFTLEVBQUUsb0JBQW9COzRCQUMvQix1RUFBdUU7NEJBQ3ZFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQzt5QkFDdEY7cUJBQ0Y7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxxQkFBcUI7cUJBQzdCO2lCQUNGOzhCQVVLLElBQUk7c0JBRFAsS0FBSztnQkFnQ0YsS0FBSztzQkFEUixLQUFLO2dCQVdGLFdBQVc7c0JBRGQsS0FBSztnQkFXRixlQUFlO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiwgTmdPcHRpbWl6ZWRJbWFnZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQaWN0dXJlQ29tcG9uZW50LCBQaWN0dXJlRGF0YURpcmVjdGl2ZSwgUGljdHVyZVNvdXJjZSB9IGZyb20gJ0BldGhsZXRlL2Nkayc7XG5pbXBvcnQgeyBDb250ZW50ZnVsQXNzZXQsIENvbnRlbnRmdWxJbWFnZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGlzQ29udGVudGZ1bEltYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgUklDSF9URVhUX1JFTkRFUkVSX0NPTVBPTkVOVF9EQVRBIH0gZnJvbSAnLi4vcmljaC10ZXh0LXJlbmRlcmVyJztcbmltcG9ydCB7XG4gIGdlbmVyYXRlQ29udGVudGZ1bEltYWdlU291cmNlcyxcbiAgZ2VuZXJhdGVEZWZhdWx0Q29udGVudGZ1bEltYWdlU291cmNlLFxufSBmcm9tICcuL2NvbnRlbnRmdWwtaW1hZ2UuY29tcG9uZW50LnV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtY29udGVudGZ1bC1pbWFnZScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGV0LXBpY3R1cmVcbiAgICAgIFtpbWdDbGFzc109XCJwaWN0dXJlRGF0YS5pbWdDbGFzc1wiXG4gICAgICBbaGFzUHJpb3JpdHldPVwicGljdHVyZURhdGEuaGFzUHJpb3JpdHlcIlxuICAgICAgW2ZpZ3VyZUNsYXNzXT1cInBpY3R1cmVEYXRhLmZpZ3VyZUNsYXNzXCJcbiAgICAgIFtwaWN0dXJlQ2xhc3NdPVwicGljdHVyZURhdGEucGljdHVyZUNsYXNzXCJcbiAgICAgIFtmaWdjYXB0aW9uQ2xhc3NdPVwicGljdHVyZURhdGEuZmlnY2FwdGlvbkNsYXNzXCJcbiAgICAgIFtkZWZhdWx0U3JjXT1cInBpY3R1cmVEYXRhLmRlZmF1bHRTcmNcIlxuICAgICAgW2FsdF09XCJwaWN0dXJlRGF0YS5hbHRcIlxuICAgICAgW2ZpZ2NhcHRpb25dPVwicGljdHVyZURhdGEuZmlnY2FwdGlvblwiXG4gICAgICBbd2lkdGhdPVwicGljdHVyZURhdGEud2lkdGhcIlxuICAgICAgW2hlaWdodF09XCJwaWN0dXJlRGF0YS5oZWlnaHRcIlxuICAgICAgW3NpemVzXT1cInBpY3R1cmVEYXRhLnNpemVzXCJcbiAgICAgIFtzb3VyY2VzXT1cInNvdXJjZXNcIlxuICAgIC8+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgTmdDbGFzcywgTmdPcHRpbWl6ZWRJbWFnZSwgUGljdHVyZUNvbXBvbmVudF0sXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAge1xuICAgICAgZGlyZWN0aXZlOiBQaWN0dXJlRGF0YURpcmVjdGl2ZSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gICAgICBpbnB1dHM6IFsnaW1nQ2xhc3MnLCAnaGFzUHJpb3JpdHknLCAnZmlndXJlQ2xhc3MnLCAncGljdHVyZUNsYXNzJywgJ2ZpZ2NhcHRpb25DbGFzcyddLFxuICAgIH0sXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LWNvbnRlbnRmdWwtaW1hZ2UnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50ZnVsSW1hZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIF9yaWNoVGV4dERhdGEgPSBpbmplY3Q8Q29udGVudGZ1bEFzc2V0IHwgQ29udGVudGZ1bEltYWdlPihSSUNIX1RFWFRfUkVOREVSRVJfQ09NUE9ORU5UX0RBVEEsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBpY3R1cmVEYXRhID0gaW5qZWN0KFBpY3R1cmVEYXRhRGlyZWN0aXZlKTtcbiAgcmVhZG9ubHkgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgQElucHV0KClcbiAgZ2V0IGRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cbiAgc2V0IGRhdGEodjogQ29udGVudGZ1bEFzc2V0IHwgQ29udGVudGZ1bEltYWdlIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGFzc2V0RGF0YSA9IGlzQ29udGVudGZ1bEltYWdlKHYpID8gdi5hc3NldCA6IHY7XG4gICAgY29uc3QgaW1hZ2VEYXRhID0gaXNDb250ZW50ZnVsSW1hZ2UodikgPyB2IDogbnVsbDtcblxuICAgIGlmIChhc3NldERhdGEgJiYgIWFzc2V0RGF0YS5jb250ZW50VHlwZSkge1xuICAgICAgdGhpcy5fZGF0YSA9IG51bGw7XG5cbiAgICAgIGNvbnNvbGUud2FybignVGhlIHByb3ZpZGVkIGFzc2V0IGlzIGludmFsaWQnLCB2KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChhc3NldERhdGEgJiYgIWFzc2V0RGF0YS5jb250ZW50VHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgcHJvdmlkZWQgYXNzZXQgaXMgbm90IGFuIGltYWdlJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fZGF0YSA9IHYgPz8gbnVsbDtcbiAgICB0aGlzLnBpY3R1cmVEYXRhLmRlZmF1bHRTcmMgPSBhc3NldERhdGEgPyBnZW5lcmF0ZURlZmF1bHRDb250ZW50ZnVsSW1hZ2VTb3VyY2UoYXNzZXREYXRhKSA6IG51bGw7XG4gICAgdGhpcy5waWN0dXJlRGF0YS5hbHQgPSBpbWFnZURhdGE/LmFsdCA/PyBhc3NldERhdGE/LmRlc2NyaXB0aW9uID8/IG51bGw7XG4gICAgdGhpcy5waWN0dXJlRGF0YS53aWR0aCA9IGFzc2V0RGF0YT8ud2lkdGggPz8gbnVsbDtcbiAgICB0aGlzLnBpY3R1cmVEYXRhLmhlaWdodCA9IGFzc2V0RGF0YT8uaGVpZ2h0ID8/IG51bGw7XG4gICAgdGhpcy5waWN0dXJlRGF0YS5maWdjYXB0aW9uID0gaW1hZ2VEYXRhPy5jYXB0aW9uID8/IG51bGw7XG5cbiAgICB0aGlzLnVwZGF0ZVNpemVzKCk7XG4gIH1cbiAgcHJpdmF0ZSBfZGF0YTogQ29udGVudGZ1bEFzc2V0IHwgQ29udGVudGZ1bEltYWdlIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgZ2V0IHNpemVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZXM7XG4gIH1cbiAgc2V0IHNpemVzKHY6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fc2l6ZXMgPSB2O1xuICAgIHRoaXMucGljdHVyZURhdGEuc2l6ZXMgPSB0aGlzLnNpemVzPy5qb2luKCcsICcpID8/IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBfc2l6ZXM6IHN0cmluZ1tdID0gW107XG5cbiAgQElucHV0KClcbiAgZ2V0IHNyY3NldFNpemVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fc3Jjc2V0U2l6ZXM7XG4gIH1cbiAgc2V0IHNyY3NldFNpemVzKHY6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fc3Jjc2V0U2l6ZXMgPSB2O1xuICAgIHRoaXMudXBkYXRlU2l6ZXMoKTtcbiAgfVxuICBwcml2YXRlIF9zcmNzZXRTaXplczogc3RyaW5nW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBnZXQgYmFja2dyb3VuZENvbG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9iYWNrZ3JvdW5kQ29sb3I7XG4gIH1cbiAgc2V0IGJhY2tncm91bmRDb2xvcih2OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy5fYmFja2dyb3VuZENvbG9yID0gdjtcbiAgICB0aGlzLnVwZGF0ZVNpemVzKCk7XG4gIH1cbiAgcHJpdmF0ZSBfYmFja2dyb3VuZENvbG9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgc291cmNlczogUGljdHVyZVNvdXJjZVtdID0gW107XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3JpY2hUZXh0RGF0YSAmJiAhdGhpcy5kYXRhKSB7XG4gICAgICB0aGlzLmRhdGEgPSB0aGlzLl9yaWNoVGV4dERhdGE7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTaXplcygpIHtcbiAgICB0aGlzLnNvdXJjZXMgPSB0aGlzLl9kYXRhID8gZ2VuZXJhdGVDb250ZW50ZnVsSW1hZ2VTb3VyY2VzKHRoaXMuX2RhdGEsIHRoaXMuc3Jjc2V0U2l6ZXMsIHRoaXMuYmFja2dyb3VuZENvbG9yKSA6IFtdO1xuXG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=
|
|
@@ -83,4 +83,4 @@ export const generateContentfulImageSources = (data, srcsetSizes, backgroundColo
|
|
|
83
83
|
}
|
|
84
84
|
return sources;
|
|
85
85
|
};
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGZ1bC1pbWFnZS5jb21wb25lbnQudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbnRlbnRmdWwvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlL2NvbnRlbnRmdWwtaW1hZ2UuY29tcG9uZW50LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoRCxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxDQUFDLElBQXFCLEVBQWlCLEVBQUU7SUFDM0YsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFbEMsT0FBTztRQUNMLElBQUksRUFBRSxXQUFXO1FBQ2pCLE1BQU0sRUFBRSxHQUFHO0tBQ1osQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGOzs7Ozs7O0lBT0k7QUFDSixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLElBQVksRUFBbUQsRUFBRTtJQUN4RyxJQUFJLEtBQUssR0FBOEIsSUFBSSxDQUFDO0lBQzVDLElBQUksTUFBTSxHQUE4QixJQUFJLENBQUM7SUFFN0MsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3RCLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUvQixLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsTUFBTSxHQUFHLENBQUMsQ0FBQztLQUNaO1NBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzdCLE1BQU0sR0FBRyxJQUFJLENBQUM7S0FDZjtTQUFNO1FBQ0wsS0FBSyxHQUFHLElBQUksQ0FBQztLQUNkO0lBRUQsT0FBTztRQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFD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SixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtTQUMxRixDQUFDLENBQUM7S0FDSjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpY3R1cmVTb3VyY2UgfSBmcm9tICdAZXRobGV0ZS9jZGsnO1xuaW1wb3J0IHsgQ29udGVudGZ1bEFzc2V0LCBDb250ZW50ZnVsSW1hZ2UgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBpc0NvbnRlbnRmdWxJbWFnZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlRGVmYXVsdENvbnRlbnRmdWxJbWFnZVNvdXJjZSA9IChkYXRhOiBDb250ZW50ZnVsQXNzZXQpOiBQaWN0dXJlU291cmNlID0+IHtcbiAgY29uc3QgeyB1cmwsIGNvbnRlbnRUeXBlIH0gPSBkYXRhO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogY29udGVudFR5cGUsXG4gICAgc3Jjc2V0OiB1cmwsXG4gIH07XG59O1xuXG4vKipcbiAqIFBhcnNlcyBzb3VyY2Ugc2V0IHNpemVzIGludG8gYW4gb2JqZWN0IGNvbnRhaW5pbmcgd2l0aCBhbmQgaGVpZ2h0LiBFZy5cbiAqIC0gYFwiNDAwXCJgIC0gNDAwcHggd2lkdGhcbiAqIC0gYFwiNDAweDMwMFwiYCAtIDQwMHB4IHdpZHRoIGFuZCAzMDBweCBoZWlnaHRcbiAqIC0gYFwiNDAwd1wiYCAtIDQwMHB4IHdpZHRoXG4gKiAtIGBcIjQwMGhcImAgLSA0MDBweCBoZWlnaHRcbiAqIC0gYFwiNDAwd3gzMDBoXCJgIC0gNDAwcHggd2lkdGggYW5kIDMwMHB4IGhlaWdodFxuICoqL1xuZXhwb3J0IGNvbnN0IHBhcnNlQ29udGVudGZ1bEltYWdlU2l6ZSA9IChzaXplOiBzdHJpbmcpOiB7IHdpZHRoOiBudW1iZXIgfCBudWxsOyBoZWlnaHQ6IG51bWJlciB8IG51bGwgfSA9PiB7XG4gIGxldCB3aWR0aDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XG4gIGxldCBoZWlnaHQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xuXG4gIGlmIChzaXplLmluY2x1ZGVzKCd4JykpIHtcbiAgICBjb25zdCBbdywgaF0gPSBzaXplLnNwbGl0KCd4Jyk7XG5cbiAgICB3aWR0aCA9IHc7XG4gICAgaGVpZ2h0ID0gaDtcbiAgfSBlbHNlIGlmIChzaXplLmluY2x1ZGVzKCdoJykpIHtcbiAgICBoZWlnaHQgPSBzaXplO1xuICB9IGVsc2Uge1xuICAgIHdpZHRoID0gc2l6ZTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgd2lkdGg6IHdpZHRoID8gcGFyc2VJbnQod2lkdGgsIDEwKSA6IG51bGwsXG4gICAgaGVpZ2h0OiBoZWlnaHQgPyBwYXJzZUludChoZWlnaHQsIDEwKSA6IG51bGwsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVDb250ZW50ZnVsSW1hZ2VTb3VyY2VzID0gKFxuICBkYXRhOiBDb250ZW50ZnVsQXNzZXQgfCBDb250ZW50ZnVsSW1hZ2UsXG4gIHNyY3NldFNpemVzOiBzdHJpbmdbXSxcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmcgfCBudWxsLFxuKTogUGljdHVyZVNvdXJjZVtdID0+IHtcbiAgY29uc3QgYXNzZXREYXRhID0gaXNDb250ZW50ZnVsSW1hZ2UoZGF0YSkgPyBkYXRhLmFzc2V0IDogZGF0YTtcbiAgY29uc3QgaW1hZ2VEYXRhID0gaXNDb250ZW50ZnVsSW1hZ2UoZGF0YSkgPyBkYXRhIDogbnVsbDtcblxuICBpZiAoIWFzc2V0RGF0YSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHNvdXJjZXM6IFBpY3R1cmVTb3VyY2VbXSA9IFtdO1xuXG4gIGNvbnN0IFNPVVJDRV9UWVBFUyA9IFsnaW1hZ2UvYXZpZicsICdpbWFnZS93ZWJwJywgJ2ltYWdlL3BuZycsICdpbWFnZS9qcGcnXTtcblxuICBmb3IgKGNvbnN0IHR5cGUgb2YgU09VUkNFX1RZUEVTKSB7XG4gICAgY29uc3QgYmFzZVVybCA9IGFzc2V0RGF0YS51cmw7XG4gICAgY29uc3Qgc291cmNlU2V0czogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBxdWVyeVBhcmFtczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIFNldCB0aGUgZm9ybWF0IChlLmcuICdmbT13ZWJwJylcbiAgICBxdWVyeVBhcmFtcy5wdXNoKGBmbT0ke3R5cGUuc3BsaXQoJy8nKVsxXX1gKTtcblxuICAgIGlmIChiYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgIHF1ZXJ5UGFyYW1zLnB1c2goYGJnPXJnYjoke2JhY2tncm91bmRDb2xvcn1gKTtcbiAgICB9XG5cbiAgICBpZiAoaW1hZ2VEYXRhKSB7XG4gICAgICBpZiAoaW1hZ2VEYXRhLnF1YWxpdHkpIHtcbiAgICAgICAgcXVlcnlQYXJhbXMucHVzaChgcT0ke2ltYWdlRGF0YS5xdWFsaXR5fWApO1xuICAgICAgfVxuXG4gICAgICBpZiAoaW1hZ2VEYXRhLmZvY3VzQXJlYSkge1xuICAgICAgICBxdWVyeVBhcmFtcy5wdXNoKGBmPSR7aW1hZ2VEYXRhLmZvY3VzQXJlYX1gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGltYWdlRGF0YS5yZXNpemVCZWhhdmlvcikge1xuICAgICAgICBxdWVyeVBhcmFtcy5wdXNoKGBmaXQ9JHtpbWFnZURhdGEucmVzaXplQmVoYXZpb3J9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNyY3NldFNpemVzPy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHVybFdpdGhQYXJhbXMgPSBgJHtiYXNlVXJsfT8ke3F1ZXJ5UGFyYW1zLmpvaW4oJyYnKX1gO1xuXG4gICAgICBmb3IgKGNvbnN0IHNpemUgb2Ygc3Jjc2V0U2l6ZXMpIHtcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBwYXJzZUNvbnRlbnRmdWxJbWFnZVNpemUoc2l6ZSk7XG5cbiAgICAgICAgaWYgKHdpZHRoICYmIGhlaWdodCkge1xuICAgICAgICAgIHNvdXJjZVNldHMucHVzaChgJHt1cmxXaXRoUGFyYW1zfSZ3PSR7d2lkdGh9Jmg9JHtoZWlnaHR9ICR7d2lkdGh9d2ApO1xuICAgICAgICB9IGVsc2UgaWYgKHdpZHRoKSB7XG4gICAgICAgICAgc291cmNlU2V0cy5wdXNoKGAke3VybFdpdGhQYXJhbXN9Jnc9JHt3aWR0aH0gJHt3aWR0aH13YCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaGVpZ2h0KSB7XG4gICAgICAgICAgc291cmNlU2V0cy5wdXNoKGAke3VybFdpdGhQYXJhbXN9Jmg9JHtoZWlnaHR9ICR7aGVpZ2h0fWhgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHNvdXJjZXMucHVzaCh7XG4gICAgICB0eXBlLFxuICAgICAgc3Jjc2V0OiBzb3VyY2VTZXRzLmxlbmd0aCA/IHNvdXJjZVNldHMuam9pbignLCAnKSA6IGAke2Jhc2VVcmx9PyR7cXVlcnlQYXJhbXMuam9pbignJicpfWAsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gc291cmNlcztcbn07XG4iXX0=
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';
|
|
2
|
+
import { DOCUMENT } from '@angular/common';
|
|
3
|
+
import { ApplicationRef, ChangeDetectionStrategy, Component, ComponentFactoryResolver, ElementRef, inject, Injector, Input, Renderer2, ViewEncapsulation, } from '@angular/core';
|
|
4
|
+
import { ContentfulImageComponent } from '..';
|
|
5
|
+
import { CONTENTFUL_CONFIG } from '../../constants/contentful.constants';
|
|
6
|
+
import { createContentfulConfig } from '../../utils/contentful-config';
|
|
7
|
+
import { RICH_TEXT_RENDERER_COMPONENT_DATA } from './rich-text-renderer.constants';
|
|
8
|
+
import { createRenderCommandsFromContentfulRichText } from './rich-text-renderer.util';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
class ContentfulRichTextRendererComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this._richText = null;
|
|
13
|
+
this._renderer = inject(Renderer2);
|
|
14
|
+
this._elementRef = inject(ElementRef);
|
|
15
|
+
this._componentFactoryResolver = inject(ComponentFactoryResolver);
|
|
16
|
+
this._document = inject(DOCUMENT);
|
|
17
|
+
this._appRef = inject(ApplicationRef);
|
|
18
|
+
this._injector = inject(Injector);
|
|
19
|
+
this._config = inject(CONTENTFUL_CONFIG, { optional: true }) ?? createContentfulConfig();
|
|
20
|
+
}
|
|
21
|
+
get richText() {
|
|
22
|
+
return this._richText;
|
|
23
|
+
}
|
|
24
|
+
set richText(v) {
|
|
25
|
+
this._richText = v ?? null;
|
|
26
|
+
this.resetAndRender();
|
|
27
|
+
}
|
|
28
|
+
resetAndRender() {
|
|
29
|
+
// clear childNodes to prevent appending new richtext elements to existing one
|
|
30
|
+
const childElements = this._elementRef.nativeElement.childNodes;
|
|
31
|
+
for (const child of childElements) {
|
|
32
|
+
this._renderer.removeChild(this._elementRef.nativeElement, child);
|
|
33
|
+
}
|
|
34
|
+
if (!this._richText) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const commands = createRenderCommandsFromContentfulRichText({ data: this._richText, config: this._config });
|
|
38
|
+
this._render(commands);
|
|
39
|
+
}
|
|
40
|
+
_render(commands) {
|
|
41
|
+
// create a document fragment to hold the elements while we create them
|
|
42
|
+
const fragment = document.createDocumentFragment();
|
|
43
|
+
const hostCommand = {
|
|
44
|
+
payload: 'document',
|
|
45
|
+
children: commands,
|
|
46
|
+
};
|
|
47
|
+
// loop over the commands
|
|
48
|
+
this._executeCommand({ command: hostCommand, parent: fragment });
|
|
49
|
+
// append the fragment to the host element
|
|
50
|
+
this._renderer.appendChild(this._elementRef.nativeElement, fragment);
|
|
51
|
+
}
|
|
52
|
+
_executeCommand(data) {
|
|
53
|
+
const { command, parent } = data;
|
|
54
|
+
let element = null;
|
|
55
|
+
if (command.payload !== 'document') {
|
|
56
|
+
if (typeof command.payload === 'string') {
|
|
57
|
+
element = this._renderer.createElement(command.payload);
|
|
58
|
+
if (command.data) {
|
|
59
|
+
this._renderer.setProperty(element, 'innerText', command.data);
|
|
60
|
+
}
|
|
61
|
+
if (command.attributes) {
|
|
62
|
+
for (const [name, value] of Object.entries(command.attributes)) {
|
|
63
|
+
this._renderer.setAttribute(element, name, value);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
this._renderer.appendChild(parent, element);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const injector = Injector.create({
|
|
70
|
+
providers: [
|
|
71
|
+
{
|
|
72
|
+
provide: RICH_TEXT_RENDERER_COMPONENT_DATA,
|
|
73
|
+
useValue: command.data,
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
parent: this._injector,
|
|
77
|
+
});
|
|
78
|
+
const portal = new DomPortalOutlet(parent, this._componentFactoryResolver, this._appRef, injector, this._document);
|
|
79
|
+
const comp = new ComponentPortal(command.payload);
|
|
80
|
+
const ref = comp.attach(portal);
|
|
81
|
+
if (ref.instance instanceof ContentfulImageComponent) {
|
|
82
|
+
ref.instance.sizes = this._config.imageOptions.sizes;
|
|
83
|
+
ref.instance.srcsetSizes = this._config.imageOptions.srcsetSizes;
|
|
84
|
+
ref.instance.backgroundColor = this._config.imageOptions.backgroundColor;
|
|
85
|
+
}
|
|
86
|
+
element = ref.location.nativeElement;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// loop over the commands
|
|
90
|
+
for (const childCommand of command.children) {
|
|
91
|
+
this._executeCommand({ command: childCommand, parent: element ?? parent });
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ContentfulRichTextRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ContentfulRichTextRendererComponent, isStandalone: true, selector: "et-contentful-rich-text-renderer", inputs: { richText: "richText" }, host: { classAttribute: "et-contentful-rich-text-renderer" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
96
|
+
}
|
|
97
|
+
export { ContentfulRichTextRendererComponent };
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ContentfulRichTextRendererComponent, decorators: [{
|
|
99
|
+
type: Component,
|
|
100
|
+
args: [{
|
|
101
|
+
selector: 'et-contentful-rich-text-renderer',
|
|
102
|
+
template: ``,
|
|
103
|
+
encapsulation: ViewEncapsulation.None,
|
|
104
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
105
|
+
standalone: true,
|
|
106
|
+
host: {
|
|
107
|
+
class: 'et-contentful-rich-text-renderer',
|
|
108
|
+
},
|
|
109
|
+
}]
|
|
110
|
+
}], propDecorators: { richText: [{
|
|
111
|
+
type: Input
|
|
112
|
+
}] } });
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC10ZXh0LXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29udGVudGZ1bC9zcmMvbGliL2NvbXBvbmVudHMvcmljaC10ZXh0LXJlbmRlcmVyL3JpY2gtdGV4dC1yZW5kZXJlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFekUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFbkYsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRXZGLE1BVWEsbUNBQW1DO0lBVmhEO1FBb0JVLGNBQVMsR0FBNEIsSUFBSSxDQUFDO1FBRTFDLGNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsOEJBQXlCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDN0QsY0FBUyxHQUFHLE1BQU0sQ0FBVyxRQUFRLENBQUMsQ0FBQztRQUN2QyxZ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Q0gsQ0FBQzs4R0ExR1UsbUNBQW1DO2tHQUFuQyxtQ0FBbUMsNExBUnBDLEVBQUU7O1NBUUQsbUNBQW1DOzJGQUFuQyxtQ0FBbUM7a0JBVi9DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtDQUFrQztvQkFDNUMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxrQ0FBa0M7cUJBQzFDO2lCQUNGOzhCQUdLLFFBQVE7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgRG9tUG9ydGFsT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250ZW50ZnVsSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBDT05URU5URlVMX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb250ZW50ZnVsLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBSaWNoVGV4dFJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGVudGZ1bENvbmZpZyB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbnRlbnRmdWwtY29uZmlnJztcbmltcG9ydCB7IFJJQ0hfVEVYVF9SRU5ERVJFUl9DT01QT05FTlRfREFUQSB9IGZyb20gJy4vcmljaC10ZXh0LXJlbmRlcmVyLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBSaWNoVGV4dFJlbmRlckNvbW1hbmQgfSBmcm9tICcuL3JpY2gtdGV4dC1yZW5kZXJlci50eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVSZW5kZXJDb21tYW5kc0Zyb21Db250ZW50ZnVsUmljaFRleHQgfSBmcm9tICcuL3JpY2gtdGV4dC1yZW5kZXJlci51dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtY29udGVudGZ1bC1yaWNoLXRleHQtcmVuZGVyZXInLFxuICB0ZW1wbGF0ZTogYGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1jb250ZW50ZnVsLXJpY2gtdGV4dC1yZW5kZXJlcicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRmdWxSaWNoVGV4dFJlbmRlcmVyQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgZ2V0IHJpY2hUZXh0KCkge1xuICAgIHJldHVybiB0aGlzLl9yaWNoVGV4dDtcbiAgfVxuICBzZXQgcmljaFRleHQodjogUmljaFRleHRSZXNwb25zZSB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9yaWNoVGV4dCA9IHYgPz8gbnVsbDtcblxuICAgIHRoaXMucmVzZXRBbmRSZW5kZXIoKTtcbiAgfVxuICBwcml2YXRlIF9yaWNoVGV4dDogUmljaFRleHRSZXNwb25zZSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX3JlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHByaXZhdGUgX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlciA9IGluamVjdChDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpO1xuICBwcml2YXRlIF9kb2N1bWVudCA9IGluamVjdDxEb2N1bWVudD4oRE9DVU1FTlQpO1xuICBwcml2YXRlIF9hcHBSZWYgPSBpbmplY3QoQXBwbGljYXRpb25SZWYpO1xuICBwcml2YXRlIF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgX2NvbmZpZyA9IGluamVjdChDT05URU5URlVMX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyBjcmVhdGVDb250ZW50ZnVsQ29uZmlnKCk7XG5cbiAgcmVzZXRBbmRSZW5kZXIoKSB7XG4gICAgLy8gY2xlYXIgY2hpbGROb2RlcyB0byBwcmV2ZW50IGFwcGVuZGluZyBuZXcgcmljaHRleHQgZWxlbWVudHMgdG8gZXhpc3Rpbmcgb25lXG4gICAgY29uc3QgY2hpbGRFbGVtZW50cyA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzO1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRFbGVtZW50cykge1xuICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjaGlsZCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9yaWNoVGV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbW1hbmRzID0gY3JlYXRlUmVuZGVyQ29tbWFuZHNGcm9tQ29udGVudGZ1bFJpY2hUZXh0KHsgZGF0YTogdGhpcy5fcmljaFRleHQsIGNvbmZpZzogdGhpcy5fY29uZmlnIH0pO1xuXG4gICAgdGhpcy5fcmVuZGVyKGNvbW1hbmRzKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlcihjb21tYW5kczogUmljaFRleHRSZW5kZXJDb21tYW5kW10pIHtcbiAgICAvLyBjcmVhdGUgYSBkb2N1bWVudCBmcmFnbWVudCB0byBob2xkIHRoZSBlbGVtZW50cyB3aGlsZSB3ZSBjcmVhdGUgdGhlbVxuICAgIGNvbnN0IGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuXG4gICAgY29uc3QgaG9zdENvbW1hbmQ6IFJpY2hUZXh0UmVuZGVyQ29tbWFuZCA9IHtcbiAgICAgIHBheWxvYWQ6ICdkb2N1bWVudCcsXG4gICAgICBjaGlsZHJlbjogY29tbWFuZHMsXG4gICAgfTtcblxuICAgIC8vIGxvb3Agb3ZlciB0aGUgY29tbWFuZHNcbiAgICB0aGlzLl9leGVjdXRlQ29tbWFuZCh7IGNvbW1hbmQ6IGhvc3RDb21tYW5kLCBwYXJlbnQ6IGZyYWdtZW50IH0pO1xuXG4gICAgLy8gYXBwZW5kIHRoZSBmcmFnbWVudCB0byB0aGUgaG9zdCBlbGVtZW50XG4gICAgdGhpcy5fcmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBmcmFnbWVudCk7XG4gIH1cblxuICBwcml2YXRlIF9leGVjdXRlQ29tbWFuZChkYXRhOiB7IGNvbW1hbmQ6IFJpY2hUZXh0UmVuZGVyQ29tbWFuZDsgcGFyZW50OiBFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCB9KSB7XG4gICAgY29uc3QgeyBjb21tYW5kLCBwYXJlbnQgfSA9IGRhdGE7XG5cbiAgICBsZXQgZWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIGlmIChjb21tYW5kLnBheWxvYWQgIT09ICdkb2N1bWVudCcpIHtcbiAgICAgIGlmICh0eXBlb2YgY29tbWFuZC5wYXlsb2FkID09PSAnc3RyaW5nJykge1xuICAgICAgICBlbGVtZW50ID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudChjb21tYW5kLnBheWxvYWQpO1xuXG4gICAgICAgIGlmIChjb21tYW5kLmRhdGEpIHtcbiAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShlbGVtZW50LCAnaW5uZXJUZXh0JywgY29tbWFuZC5kYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb21tYW5kLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoY29tbWFuZC5hdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsIG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuYXBwZW5kQ2hpbGQocGFyZW50LCBlbGVtZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcHJvdmlkZTogUklDSF9URVhUX1JFTkRFUkVSX0NPTVBPTkVOVF9EQVRBLFxuICAgICAgICAgICAgICB1c2VWYWx1ZTogY29tbWFuZC5kYXRhLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHBhcmVudDogdGhpcy5faW5qZWN0b3IsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICAgICAgcGFyZW50IGFzIEVsZW1lbnQsXG4gICAgICAgICAgdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICAgIHRoaXMuX2FwcFJlZixcbiAgICAgICAgICBpbmplY3RvcixcbiAgICAgICAgICB0aGlzLl9kb2N1bWVudCxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBjb21wID0gbmV3IENvbXBvbmVudFBvcnRhbChjb21tYW5kLnBheWxvYWQpO1xuICAgICAgICBjb25zdCByZWYgPSBjb21wLmF0dGFjaChwb3J0YWwpO1xuXG4gICAgICAgIGlmIChyZWYuaW5zdGFuY2UgaW5zdGFuY2VvZiBDb250ZW50ZnVsSW1hZ2VDb21wb25lbnQpIHtcbiAgICAgICAgICByZWYuaW5zdGFuY2Uuc2l6ZXMgPSB0aGlzLl9jb25maWcuaW1hZ2VPcHRpb25zLnNpemVzO1xuICAgICAgICAgIHJlZi5pbnN0YW5jZS5zcmNzZXRTaXplcyA9IHRoaXMuX2NvbmZpZy5pbWFnZU9wdGlvbnMuc3Jjc2V0U2l6ZXM7XG4gICAgICAgICAgcmVmLmluc3RhbmNlLmJhY2tncm91bmRDb2xvciA9IHRoaXMuX2NvbmZpZy5pbWFnZU9wdGlvbnMuYmFja2dyb3VuZENvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudCA9IHJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGxvb3Agb3ZlciB0aGUgY29tbWFuZHNcbiAgICBmb3IgKGNvbnN0IGNoaWxkQ29tbWFuZCBvZiBjb21tYW5kLmNoaWxkcmVuKSB7XG4gICAgICB0aGlzLl9leGVjdXRlQ29tbWFuZCh7IGNvbW1hbmQ6IGNoaWxkQ29tbWFuZCwgcGFyZW50OiBlbGVtZW50ID8/IHBhcmVudCB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { NgClass, NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { RICH_TEXT_RENDERER_COMPONENT_DATA } from '../rich-text-renderer';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
class ContentfulVideoComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._richTextData = inject(RICH_TEXT_RENDERER_COMPONENT_DATA, { optional: true });
|
|
8
|
+
this._data = null;
|
|
9
|
+
this.videoClass = null;
|
|
10
|
+
}
|
|
11
|
+
get data() {
|
|
12
|
+
return this._data;
|
|
13
|
+
}
|
|
14
|
+
set data(v) {
|
|
15
|
+
if (v && !v.contentType) {
|
|
16
|
+
this._data = null;
|
|
17
|
+
console.warn('The provided asset is invalid', v);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (v && !v.contentType.startsWith('video/')) {
|
|
21
|
+
throw new Error('The provided asset is not an video');
|
|
22
|
+
}
|
|
23
|
+
this._data = v ?? null;
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
if (this._richTextData && !this.data) {
|
|
27
|
+
this.data = this._richTextData;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ContentfulVideoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ContentfulVideoComponent, isStandalone: true, selector: "et-contentful-video", inputs: { data: "data", videoClass: "videoClass" }, ngImport: i0, template: `
|
|
32
|
+
<video *ngIf="data" [ngClass]="videoClass" controls>
|
|
33
|
+
<source src="{{ data.url }}" type="{{ data.contentType }}" />
|
|
34
|
+
</video>
|
|
35
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
36
|
+
}
|
|
37
|
+
export { ContentfulVideoComponent };
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ContentfulVideoComponent, decorators: [{
|
|
39
|
+
type: Component,
|
|
40
|
+
args: [{
|
|
41
|
+
selector: 'et-contentful-video',
|
|
42
|
+
template: `
|
|
43
|
+
<video *ngIf="data" [ngClass]="videoClass" controls>
|
|
44
|
+
<source src="{{ data.url }}" type="{{ data.contentType }}" />
|
|
45
|
+
</video>
|
|
46
|
+
`,
|
|
47
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
48
|
+
encapsulation: ViewEncapsulation.None,
|
|
49
|
+
standalone: true,
|
|
50
|
+
imports: [NgIf, NgClass],
|
|
51
|
+
}]
|
|
52
|
+
}], propDecorators: { data: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], videoClass: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}] } });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGZ1bC12aWRlby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbnRlbnRmdWwvc3JjL2xpYi9jb21wb25lbnRzL3ZpZGVvL2NvbnRlbnRmdWwtdmlkZW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUUxRSxNQVlhLHdCQUF3QjtJQVpyQztRQWFVLGtCQUFhLEdBQUcsTUFBTSxDQUFrQixpQ0FBaUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBcUIvRixVQUFLLEdBQTJCLElBQUksQ0FBQztRQUc3QyxlQUFVLEdBQWdCLElBQUksQ0FBQztLQU9oQztJQTdCQyxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLENBQXFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUVsQixPQUFPLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRWpELE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFNRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDaEM7SUFDSCxDQUFDOzhHQS9CVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixtSUFWekI7Ozs7R0FJVCw0REFJUyxJQUFJLDZGQUFFLE9BQU87O1NBRVosd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBWnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQztpQkFDekI7OEJBS0ssSUFBSTtzQkFEUCxLQUFLO2dCQXNCTixVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3NUeXBlIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBDb250ZW50ZnVsQXNzZXQgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBSSUNIX1RFWFRfUkVOREVSRVJfQ09NUE9ORU5UX0RBVEEgfSBmcm9tICcuLi9yaWNoLXRleHQtcmVuZGVyZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1jb250ZW50ZnVsLXZpZGVvJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmlkZW8gKm5nSWY9XCJkYXRhXCIgW25nQ2xhc3NdPVwidmlkZW9DbGFzc1wiIGNvbnRyb2xzPlxuICAgICAgPHNvdXJjZSBzcmM9XCJ7eyBkYXRhLnVybCB9fVwiIHR5cGU9XCJ7eyBkYXRhLmNvbnRlbnRUeXBlIH19XCIgLz5cbiAgICA8L3ZpZGVvPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIE5nQ2xhc3NdLFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50ZnVsVmlkZW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIF9yaWNoVGV4dERhdGEgPSBpbmplY3Q8Q29udGVudGZ1bEFzc2V0PihSSUNIX1RFWFRfUkVOREVSRVJfQ09NUE9ORU5UX0RBVEEsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IGRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cbiAgc2V0IGRhdGEodjogQ29udGVudGZ1bEFzc2V0IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2ICYmICF2LmNvbnRlbnRUeXBlKSB7XG4gICAgICB0aGlzLl9kYXRhID0gbnVsbDtcblxuICAgICAgY29uc29sZS53YXJuKCdUaGUgcHJvdmlkZWQgYXNzZXQgaXMgaW52YWxpZCcsIHYpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHYgJiYgIXYuY29udGVudFR5cGUuc3RhcnRzV2l0aCgndmlkZW8vJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHByb3ZpZGVkIGFzc2V0IGlzIG5vdCBhbiB2aWRlbycpO1xuICAgIH1cblxuICAgIHRoaXMuX2RhdGEgPSB2ID8/IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBfZGF0YTogQ29udGVudGZ1bEFzc2V0IHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgdmlkZW9DbGFzczogTmdDbGFzc1R5cGUgPSBudWxsO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yaWNoVGV4dERhdGEgJiYgIXRoaXMuZGF0YSkge1xuICAgICAgdGhpcy5kYXRhID0gdGhpcy5fcmljaFRleHREYXRhO1xuICAgIH1cbiAgfVxufVxuIl19
|