@dotcms/angular 1.0.2-next.1 → 1.0.2-next.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/fesm2022/dotcms-angular.mjs +97 -105
- package/fesm2022/dotcms-angular.mjs.map +1 -1
- package/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts.map +1 -1
- package/lib/components/dotcms-block-editor-renderer/blocks/table.component.d.ts.map +1 -1
- package/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts.map +1 -1
- package/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts.map +1 -1
- package/lib/components/dotcms-editable-text/dotcms-editable-text.component.d.ts.map +1 -1
- package/lib/components/dotcms-layout-body/components/column/column.component.d.ts.map +1 -1
- package/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts.map +1 -1
- package/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts.map +1 -1
- package/lib/components/dotcms-layout-body/components/container/container.component.d.ts.map +1 -1
- package/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts.map +1 -1
- package/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts.map +1 -1
- package/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts.map +1 -1
- package/lib/components/dotcms-layout-body/components/row/row.component.d.ts.map +1 -1
- package/lib/components/dotcms-layout-body/dotcms-layout-body.component.d.ts.map +1 -1
- package/lib/providers/dotcms-client/dotcms-client.provider.d.ts.map +1 -1
- package/package.json +1 -3
- package/esm2022/dotcms-angular.mjs +0 -5
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/code.component.mjs +0 -49
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.mjs +0 -125
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/image.component.mjs +0 -25
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/list.component.mjs +0 -66
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/table.component.mjs +0 -97
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/text.component.mjs +0 -231
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/unknown.component.mjs +0 -65
- package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/video.component.mjs +0 -48
- package/esm2022/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.mjs +0 -50
- package/esm2022/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.mjs +0 -45
- package/esm2022/lib/components/dotcms-editable-text/dotcms-editable-text.component.mjs +0 -240
- package/esm2022/lib/components/dotcms-editable-text/utils.mjs +0 -20
- package/esm2022/lib/components/dotcms-layout-body/components/column/column.component.mjs +0 -45
- package/esm2022/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.mjs +0 -52
- package/esm2022/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.mjs +0 -47
- package/esm2022/lib/components/dotcms-layout-body/components/container/container.component.mjs +0 -99
- package/esm2022/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.mjs +0 -145
- package/esm2022/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.mjs +0 -47
- package/esm2022/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.mjs +0 -55
- package/esm2022/lib/components/dotcms-layout-body/components/row/row.component.mjs +0 -46
- package/esm2022/lib/components/dotcms-layout-body/dotcms-layout-body.component.mjs +0 -69
- package/esm2022/lib/directives/dotcms-show-when/dotcms-show-when.directive.mjs +0 -49
- package/esm2022/lib/models/index.mjs +0 -3
- package/esm2022/lib/providers/dotcms-client/dotcms-client.provider.mjs +0 -52
- package/esm2022/lib/providers/dotcms-image-loader/dotcms-image_loader.mjs +0 -74
- package/esm2022/lib/services/dotcms-editable-page.service.mjs +0 -93
- package/esm2022/lib/store/dotcms.store.mjs +0 -61
- package/esm2022/public_api.mjs +0 -8
package/esm2022/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.mjs
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { AsyncPipe, NgComponentOutlet } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, Input, HostBinding, signal, ViewChild } from '@angular/core';
|
|
3
|
-
import { CUSTOM_NO_COMPONENT, getDotContentletAttributes } from '@dotcms/uve/internal';
|
|
4
|
-
import { DotCMSStore } from '../../../../store/dotcms.store';
|
|
5
|
-
import { FallbackComponent } from '../fallback-component/fallback-component.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* @description Contentlet component that renders DotCMS content with development mode support
|
|
9
|
-
*
|
|
10
|
-
* @component
|
|
11
|
-
* @param {DotCMSContentlet} contentlet - The contentlet to be rendered
|
|
12
|
-
* @param {string} container - The container identifier
|
|
13
|
-
* @class ContentletComponent
|
|
14
|
-
*/
|
|
15
|
-
export class ContentletComponent {
|
|
16
|
-
constructor() {
|
|
17
|
-
this.dotObject = 'contentlet';
|
|
18
|
-
this.#dotCMSStore = inject(DotCMSStore);
|
|
19
|
-
this.$contentlet = signal(null);
|
|
20
|
-
this.$UserComponent = signal(null);
|
|
21
|
-
this.$UserNoComponent = signal(null);
|
|
22
|
-
this.$isDevMode = this.#dotCMSStore.$isDevMode;
|
|
23
|
-
this.$haveContent = signal(false);
|
|
24
|
-
this.$style = computed(() => this.$isDevMode() && !this.$haveContent() ? { minHeight: '4rem' } : {});
|
|
25
|
-
this.$dotAttributes = computed(() => {
|
|
26
|
-
const contentlet = this.$contentlet();
|
|
27
|
-
if (!contentlet || !this.$isDevMode())
|
|
28
|
-
return {};
|
|
29
|
-
return getDotContentletAttributes(contentlet, this.containerData.identifier);
|
|
30
|
-
});
|
|
31
|
-
this.identifier = null;
|
|
32
|
-
this.basetype = null;
|
|
33
|
-
this.title = null;
|
|
34
|
-
this.inode = null;
|
|
35
|
-
this.type = null;
|
|
36
|
-
this.containerAttribute = null;
|
|
37
|
-
this.onNumberOfPages = null;
|
|
38
|
-
this.styleAttribute = null;
|
|
39
|
-
}
|
|
40
|
-
#dotCMSStore;
|
|
41
|
-
ngOnChanges() {
|
|
42
|
-
this.$contentlet.set(this.contentlet);
|
|
43
|
-
this.setupComponents();
|
|
44
|
-
this.identifier = this.$dotAttributes()['data-dot-identifier'];
|
|
45
|
-
this.basetype = this.$dotAttributes()['data-dot-basetype'];
|
|
46
|
-
this.title = this.$dotAttributes()['data-dot-title'];
|
|
47
|
-
this.inode = this.$dotAttributes()['data-dot-inode'];
|
|
48
|
-
this.type = this.$dotAttributes()['data-dot-type'];
|
|
49
|
-
this.containerAttribute = JSON.stringify(this.containerData);
|
|
50
|
-
this.onNumberOfPages = this.$dotAttributes()['data-dot-on-number-of-pages'];
|
|
51
|
-
this.styleAttribute = this.$style();
|
|
52
|
-
}
|
|
53
|
-
ngAfterViewInit() {
|
|
54
|
-
this.checkContent();
|
|
55
|
-
}
|
|
56
|
-
setupComponents() {
|
|
57
|
-
const store = this.#dotCMSStore.store;
|
|
58
|
-
if (!store)
|
|
59
|
-
return;
|
|
60
|
-
if (!store?.components)
|
|
61
|
-
return;
|
|
62
|
-
this.$UserComponent.set(store.components[this.contentlet?.contentType]);
|
|
63
|
-
this.$UserNoComponent.set(store.components[CUSTOM_NO_COMPONENT]);
|
|
64
|
-
}
|
|
65
|
-
checkContent() {
|
|
66
|
-
const element = this.contentletRef?.nativeElement;
|
|
67
|
-
if (element) {
|
|
68
|
-
const hasContent = element.getBoundingClientRect().height > 0;
|
|
69
|
-
this.$haveContent.set(hasContent);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ContentletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: ContentletComponent, isStandalone: true, selector: "dotcms-contentlet", inputs: { contentlet: "contentlet", containerData: "containerData" }, host: { properties: { "attr.data-dot-object": "this.dotObject", "attr.data-dot-identifier": "this.identifier", "attr.data-dot-basetype": "this.basetype", "attr.data-dot-title": "this.title", "attr.data-dot-inode": "this.inode", "attr.data-dot-type": "this.type", "attr.data-dot-container": "this.containerAttribute", "attr.data-dot-on-number-of-pages": "this.onNumberOfPages", "style": "this.styleAttribute" } }, viewQueries: [{ propertyName: "contentletRef", first: true, predicate: ["contentletRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
74
|
-
@if ($UserComponent()) {
|
|
75
|
-
<ng-container
|
|
76
|
-
*ngComponentOutlet="
|
|
77
|
-
$UserComponent() | async;
|
|
78
|
-
inputs: { contentlet: $contentlet() ?? contentlet }
|
|
79
|
-
" />
|
|
80
|
-
} @else if ($isDevMode()) {
|
|
81
|
-
<dotcms-fallback-component
|
|
82
|
-
[UserNoComponent]="$UserNoComponent()"
|
|
83
|
-
[contentlet]="$contentlet() ?? contentlet" />
|
|
84
|
-
}
|
|
85
|
-
`, isInline: true, dependencies: [{ kind: "component", type: FallbackComponent, selector: "dotcms-fallback-component", inputs: ["UserNoComponent", "contentlet"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
86
|
-
}
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ContentletComponent, decorators: [{
|
|
88
|
-
type: Component,
|
|
89
|
-
args: [{
|
|
90
|
-
selector: 'dotcms-contentlet',
|
|
91
|
-
standalone: true,
|
|
92
|
-
imports: [FallbackComponent, AsyncPipe, NgComponentOutlet],
|
|
93
|
-
template: `
|
|
94
|
-
@if ($UserComponent()) {
|
|
95
|
-
<ng-container
|
|
96
|
-
*ngComponentOutlet="
|
|
97
|
-
$UserComponent() | async;
|
|
98
|
-
inputs: { contentlet: $contentlet() ?? contentlet }
|
|
99
|
-
" />
|
|
100
|
-
} @else if ($isDevMode()) {
|
|
101
|
-
<dotcms-fallback-component
|
|
102
|
-
[UserNoComponent]="$UserNoComponent()"
|
|
103
|
-
[contentlet]="$contentlet() ?? contentlet" />
|
|
104
|
-
}
|
|
105
|
-
`,
|
|
106
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
107
|
-
}]
|
|
108
|
-
}], propDecorators: { contentlet: [{
|
|
109
|
-
type: Input,
|
|
110
|
-
args: [{ required: true }]
|
|
111
|
-
}], containerData: [{
|
|
112
|
-
type: Input,
|
|
113
|
-
args: [{ required: true }]
|
|
114
|
-
}], contentletRef: [{
|
|
115
|
-
type: ViewChild,
|
|
116
|
-
args: ['contentletRef']
|
|
117
|
-
}], dotObject: [{
|
|
118
|
-
type: HostBinding,
|
|
119
|
-
args: ['attr.data-dot-object']
|
|
120
|
-
}], identifier: [{
|
|
121
|
-
type: HostBinding,
|
|
122
|
-
args: ['attr.data-dot-identifier']
|
|
123
|
-
}], basetype: [{
|
|
124
|
-
type: HostBinding,
|
|
125
|
-
args: ['attr.data-dot-basetype']
|
|
126
|
-
}], title: [{
|
|
127
|
-
type: HostBinding,
|
|
128
|
-
args: ['attr.data-dot-title']
|
|
129
|
-
}], inode: [{
|
|
130
|
-
type: HostBinding,
|
|
131
|
-
args: ['attr.data-dot-inode']
|
|
132
|
-
}], type: [{
|
|
133
|
-
type: HostBinding,
|
|
134
|
-
args: ['attr.data-dot-type']
|
|
135
|
-
}], containerAttribute: [{
|
|
136
|
-
type: HostBinding,
|
|
137
|
-
args: ['attr.data-dot-container']
|
|
138
|
-
}], onNumberOfPages: [{
|
|
139
|
-
type: HostBinding,
|
|
140
|
-
args: ['attr.data-dot-on-number-of-pages']
|
|
141
|
-
}], styleAttribute: [{
|
|
142
|
-
type: HostBinding,
|
|
143
|
-
args: ['style']
|
|
144
|
-
}] } });
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGxldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9kb3RjbXMtbGF5b3V0LWJvZHkvY29tcG9uZW50cy9jb250ZW50bGV0L2NvbnRlbnRsZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBRUwsV0FBVyxFQUNYLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOztBQUV2Rjs7Ozs7OztHQU9HO0FBb0JILE1BQU0sT0FBTyxtQkFBbUI7SUFuQmhDO1FBdUJ5QyxjQUFTLEdBQUcsWUFBWSxDQUFDO1FBRTlELGlCQUFZLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5DLGdCQUFXLEdBQUcsTUFBTSxDQUErQixJQUFJLENBQUMsQ0FBQztRQUN6RCxtQkFBYyxHQUFHLE1BQU0sQ0FBZ0MsSUFBSSxDQUFDLENBQUM7UUFDN0QscUJBQWdCLEdBQUcsTUFBTSxDQUFnQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxlQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDMUMsaUJBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsV0FBTSxH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dXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIHNpZ25hbCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERvdENNU0Jhc2ljQ29udGVudGxldCwgRWRpdGFibGVDb250YWluZXJEYXRhIH0gZnJvbSAnQGRvdGNtcy90eXBlcyc7XG5pbXBvcnQgeyBEb3RDb250ZW50bGV0QXR0cmlidXRlcyB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMvaW50ZXJuYWwnO1xuaW1wb3J0IHsgQ1VTVE9NX05PX0NPTVBPTkVOVCwgZ2V0RG90Q29udGVudGxldEF0dHJpYnV0ZXMgfSBmcm9tICdAZG90Y21zL3V2ZS9pbnRlcm5hbCc7XG5cbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRFbnRpdHkgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRG90Q01TU3RvcmUgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9kb3RjbXMuc3RvcmUnO1xuaW1wb3J0IHsgRmFsbGJhY2tDb21wb25lbnQgfSBmcm9tICcuLi9mYWxsYmFjay1jb21wb25lbnQvZmFsbGJhY2stY29tcG9uZW50LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnRlbnRsZXQgY29tcG9uZW50IHRoYXQgcmVuZGVycyBEb3RDTVMgY29udGVudCB3aXRoIGRldmVsb3BtZW50IG1vZGUgc3VwcG9ydFxuICpcbiAqIEBjb21wb25lbnRcbiAqIEBwYXJhbSB7RG90Q01TQ29udGVudGxldH0gY29udGVudGxldCAtIFRoZSBjb250ZW50bGV0IHRvIGJlIHJlbmRlcmVkXG4gKiBAcGFyYW0ge3N0cmluZ30gY29udGFpbmVyIC0gVGhlIGNvbnRhaW5lciBpZGVudGlmaWVyXG4gKiBAY2xhc3MgQ29udGVudGxldENvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1jb250ZW50bGV0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGYWxsYmFja0NvbXBvbmVudCwgQXN5bmNQaXBlLCBOZ0NvbXBvbmVudE91dGxldF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmICgkVXNlckNvbXBvbmVudCgpKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICRVc2VyQ29tcG9uZW50KCkgfCBhc3luYztcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRzOiB7IGNvbnRlbnRsZXQ6ICRjb250ZW50bGV0KCkgPz8gY29udGVudGxldCB9XG4gICAgICAgICAgICAgICAgXCIgLz5cbiAgICAgICAgfSBAZWxzZSBpZiAoJGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICA8ZG90Y21zLWZhbGxiYWNrLWNvbXBvbmVudFxuICAgICAgICAgICAgICAgIFtVc2VyTm9Db21wb25lbnRdPVwiJFVzZXJOb0NvbXBvbmVudCgpXCJcbiAgICAgICAgICAgICAgICBbY29udGVudGxldF09XCIkY29udGVudGxldCgpID8/IGNvbnRlbnRsZXRcIiAvPlxuICAgICAgICB9XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50bGV0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb250ZW50bGV0ITogRG90Q01TQmFzaWNDb250ZW50bGV0O1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbnRhaW5lckRhdGEhOiBFZGl0YWJsZUNvbnRhaW5lckRhdGE7XG4gICAgQFZpZXdDaGlsZCgnY29udGVudGxldFJlZicpIGNvbnRlbnRsZXRSZWYhOiBFbGVtZW50UmVmO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRvdC1vYmplY3QnKSBkb3RPYmplY3QgPSAnY29udGVudGxldCc7XG5cbiAgICAjZG90Q01TU3RvcmUgPSBpbmplY3QoRG90Q01TU3RvcmUpO1xuXG4gICAgJGNvbnRlbnRsZXQgPSBzaWduYWw8RG90Q01TQmFzaWNDb250ZW50bGV0IHwgbnVsbD4obnVsbCk7XG4gICAgJFVzZXJDb21wb25lbnQgPSBzaWduYWw8RHluYW1pY0NvbXBvbmVudEVudGl0eSB8IG51bGw+KG51bGwpO1xuICAgICRVc2VyTm9Db21wb25lbnQgPSBzaWduYWw8RHluYW1pY0NvbXBvbmVudEVudGl0eSB8IG51bGw+KG51bGwpO1xuICAgICRpc0Rldk1vZGUgPSB0aGlzLiNkb3RDTVNTdG9yZS4kaXNEZXZNb2RlO1xuICAgICRoYXZlQ29udGVudCA9IHNpZ25hbChmYWxzZSk7XG4gICAgJHN0eWxlID0gY29tcHV0ZWQoKCkgPT5cbiAgICAgICAgdGhpcy4kaXNEZXZNb2RlKCkgJiYgIXRoaXMuJGhhdmVDb250ZW50KCkgPyB7IG1pbkhlaWdodDogJzRyZW0nIH0gOiB7fVxuICAgICk7XG4gICAgJGRvdEF0dHJpYnV0ZXMgPSBjb21wdXRlZDxEb3RDb250ZW50bGV0QXR0cmlidXRlcz4oKCkgPT4ge1xuICAgICAgICBjb25zdCBjb250ZW50bGV0ID0gdGhpcy4kY29udGVudGxldCgpO1xuICAgICAgICBpZiAoIWNvbnRlbnRsZXQgfHwgIXRoaXMuJGlzRGV2TW9kZSgpKSByZXR1cm4ge30gYXMgRG90Q29udGVudGxldEF0dHJpYnV0ZXM7XG5cbiAgICAgICAgcmV0dXJuIGdldERvdENvbnRlbnRsZXRBdHRyaWJ1dGVzKGNvbnRlbnRsZXQsIHRoaXMuY29udGFpbmVyRGF0YS5pZGVudGlmaWVyKTtcbiAgICB9KTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRvdC1pZGVudGlmaWVyJykgaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZG90LWJhc2V0eXBlJykgYmFzZXR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRvdC10aXRsZScpIHRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3QtaW5vZGUnKSBpbm9kZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZG90LXR5cGUnKSB0eXBlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3QtY29udGFpbmVyJykgY29udGFpbmVyQXR0cmlidXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3Qtb24tbnVtYmVyLW9mLXBhZ2VzJykgb25OdW1iZXJPZlBhZ2VzOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlJykgc3R5bGVBdHRyaWJ1dGU6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9IHwgbnVsbCA9IG51bGw7XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy4kY29udGVudGxldC5zZXQodGhpcy5jb250ZW50bGV0KTtcbiAgICAgICAgdGhpcy5zZXR1cENvbXBvbmVudHMoKTtcblxuICAgICAgICB0aGlzLmlkZW50aWZpZXIgPSB0aGlzLiRkb3RBdHRyaWJ1dGVzKClbJ2RhdGEtZG90LWlkZW50aWZpZXInXTtcbiAgICAgICAgdGhpcy5iYXNldHlwZSA9IHRoaXMuJGRvdEF0dHJpYnV0ZXMoKVsnZGF0YS1kb3QtYmFzZXR5cGUnXTtcbiAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMuJGRvdEF0dHJpYnV0ZXMoKVsnZGF0YS1kb3QtdGl0bGUnXTtcbiAgICAgICAgdGhpcy5pbm9kZSA9IHRoaXMuJGRvdEF0dHJpYnV0ZXMoKVsnZGF0YS1kb3QtaW5vZGUnXTtcbiAgICAgICAgdGhpcy50eXBlID0gdGhpcy4kZG90QXR0cmlidXRlcygpWydkYXRhLWRvdC10eXBlJ107XG4gICAgICAgIHRoaXMuY29udGFpbmVyQXR0cmlidXRlID0gSlNPTi5zdHJpbmdpZnkodGhpcy5jb250YWluZXJEYXRhKTtcbiAgICAgICAgdGhpcy5vbk51bWJlck9mUGFnZXMgPSB0aGlzLiRkb3RBdHRyaWJ1dGVzKClbJ2RhdGEtZG90LW9uLW51bWJlci1vZi1wYWdlcyddO1xuICAgICAgICB0aGlzLnN0eWxlQXR0cmlidXRlID0gdGhpcy4kc3R5bGUoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuY2hlY2tDb250ZW50KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cENvbXBvbmVudHMoKSB7XG4gICAgICAgIGNvbnN0IHN0b3JlID0gdGhpcy4jZG90Q01TU3RvcmUuc3RvcmU7XG4gICAgICAgIGlmICghc3RvcmUpIHJldHVybjtcblxuICAgICAgICBpZiAoIXN0b3JlPy5jb21wb25lbnRzKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy4kVXNlckNvbXBvbmVudC5zZXQoc3RvcmUuY29tcG9uZW50c1t0aGlzLmNvbnRlbnRsZXQ/LmNvbnRlbnRUeXBlXSk7XG4gICAgICAgIHRoaXMuJFVzZXJOb0NvbXBvbmVudC5zZXQoc3RvcmUuY29tcG9uZW50c1tDVVNUT01fTk9fQ09NUE9ORU5UXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0NvbnRlbnQoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmNvbnRlbnRsZXRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBoYXNDb250ZW50ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgPiAwO1xuICAgICAgICAgICAgdGhpcy4kaGF2ZUNvbnRlbnQuc2V0KGhhc0NvbnRlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { AsyncPipe, NgComponentOutlet } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* @description Fallback component that renders when no custom component is found for a contentlet
|
|
6
|
-
* @category Components
|
|
7
|
-
* @internal
|
|
8
|
-
* @class FallbackComponent
|
|
9
|
-
*/
|
|
10
|
-
export class FallbackComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.UserNoComponent = null;
|
|
13
|
-
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: FallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: FallbackComponent, isStandalone: true, selector: "dotcms-fallback-component", inputs: { UserNoComponent: "UserNoComponent", contentlet: "contentlet" }, ngImport: i0, template: `
|
|
16
|
-
@if (UserNoComponent) {
|
|
17
|
-
<ng-container *ngComponentOutlet="UserNoComponent | async; inputs: { contentlet }" />
|
|
18
|
-
} @else {
|
|
19
|
-
<div data-testid="dotcms-fallback-component">
|
|
20
|
-
<p>No component found for content type: {{ contentlet.contentType }}</p>
|
|
21
|
-
</div>
|
|
22
|
-
}
|
|
23
|
-
`, isInline: true, dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
|
-
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: FallbackComponent, decorators: [{
|
|
26
|
-
type: Component,
|
|
27
|
-
args: [{
|
|
28
|
-
selector: 'dotcms-fallback-component',
|
|
29
|
-
standalone: true,
|
|
30
|
-
imports: [AsyncPipe, NgComponentOutlet],
|
|
31
|
-
template: `
|
|
32
|
-
@if (UserNoComponent) {
|
|
33
|
-
<ng-container *ngComponentOutlet="UserNoComponent | async; inputs: { contentlet }" />
|
|
34
|
-
} @else {
|
|
35
|
-
<div data-testid="dotcms-fallback-component">
|
|
36
|
-
<p>No component found for content type: {{ contentlet.contentType }}</p>
|
|
37
|
-
</div>
|
|
38
|
-
}
|
|
39
|
-
`,
|
|
40
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
41
|
-
}]
|
|
42
|
-
}], propDecorators: { UserNoComponent: [{
|
|
43
|
-
type: Input
|
|
44
|
-
}], contentlet: [{
|
|
45
|
-
type: Input
|
|
46
|
-
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsbGJhY2stY29tcG9uZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2RvdGNtcy1sYXlvdXQtYm9keS9jb21wb25lbnRzL2ZhbGxiYWNrLWNvbXBvbmVudC9mYWxsYmFjay1jb21wb25lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNMUU7Ozs7O0dBS0c7QUFnQkgsTUFBTSxPQUFPLGlCQUFpQjtJQWY5QjtRQWdCYSxvQkFBZSxHQUFrQyxJQUFJLENBQUM7S0FFbEU7OEdBSFksaUJBQWlCO2tHQUFqQixpQkFBaUIsK0pBWGhCOzs7Ozs7OztLQVFULHVEQVRTLFNBQVMsOENBQUUsaUJBQWlCOzsyRkFZN0IsaUJBQWlCO2tCQWY3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUM7b0JBQ3ZDLFFBQVEsRUFBRTs7Ozs7Ozs7S0FRVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OEJBRVksZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NvbXBvbmVudE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3RDTVNCYXNpY0NvbnRlbnRsZXQgfSBmcm9tICdAZG90Y21zL3R5cGVzJztcblxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEVudGl0eSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEZhbGxiYWNrIGNvbXBvbmVudCB0aGF0IHJlbmRlcnMgd2hlbiBubyBjdXN0b20gY29tcG9uZW50IGlzIGZvdW5kIGZvciBhIGNvbnRlbnRsZXRcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKiBAaW50ZXJuYWxcbiAqIEBjbGFzcyBGYWxsYmFja0NvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1mYWxsYmFjay1jb21wb25lbnQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgTmdDb21wb25lbnRPdXRsZXRdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoVXNlck5vQ29tcG9uZW50KSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cIlVzZXJOb0NvbXBvbmVudCB8IGFzeW5jOyBpbnB1dHM6IHsgY29udGVudGxldCB9XCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGRhdGEtdGVzdGlkPVwiZG90Y21zLWZhbGxiYWNrLWNvbXBvbmVudFwiPlxuICAgICAgICAgICAgICAgIDxwPk5vIGNvbXBvbmVudCBmb3VuZCBmb3IgY29udGVudCB0eXBlOiB7eyBjb250ZW50bGV0LmNvbnRlbnRUeXBlIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZhbGxiYWNrQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBVc2VyTm9Db21wb25lbnQ6IER5bmFtaWNDb21wb25lbnRFbnRpdHkgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoKSBjb250ZW50bGV0ITogRG90Q01TQmFzaWNDb250ZW50bGV0O1xufVxuIl19
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* @description This component is used to display a message when a page is missing the required `layout.body` property.
|
|
5
|
-
* @internal
|
|
6
|
-
* @class PageErrorMessageComponent
|
|
7
|
-
*/
|
|
8
|
-
export class PageErrorMessageComponent {
|
|
9
|
-
ngOnInit() {
|
|
10
|
-
console.warn('Missing required layout.body property in page');
|
|
11
|
-
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: PageErrorMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: PageErrorMessageComponent, isStandalone: true, selector: "dotcms-page-error-message", ngImport: i0, template: `
|
|
14
|
-
<div
|
|
15
|
-
data-testid="error-message"
|
|
16
|
-
style="padding: 1rem; border: 1px solid #e0e0e0; border-radius: 4px;">
|
|
17
|
-
<p style="margin: 0 0 0.5rem; color: #666;">
|
|
18
|
-
The
|
|
19
|
-
<code>page</code>
|
|
20
|
-
is missing the required
|
|
21
|
-
<code>layout.body</code>
|
|
22
|
-
property.
|
|
23
|
-
</p>
|
|
24
|
-
<p style="margin: 0; color: #666;">
|
|
25
|
-
Make sure the page asset is properly loaded and includes a layout configuration.
|
|
26
|
-
</p>
|
|
27
|
-
</div>
|
|
28
|
-
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29
|
-
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: PageErrorMessageComponent, decorators: [{
|
|
31
|
-
type: Component,
|
|
32
|
-
args: [{
|
|
33
|
-
selector: 'dotcms-page-error-message',
|
|
34
|
-
standalone: true,
|
|
35
|
-
imports: [],
|
|
36
|
-
template: `
|
|
37
|
-
<div
|
|
38
|
-
data-testid="error-message"
|
|
39
|
-
style="padding: 1rem; border: 1px solid #e0e0e0; border-radius: 4px;">
|
|
40
|
-
<p style="margin: 0 0 0.5rem; color: #666;">
|
|
41
|
-
The
|
|
42
|
-
<code>page</code>
|
|
43
|
-
is missing the required
|
|
44
|
-
<code>layout.body</code>
|
|
45
|
-
property.
|
|
46
|
-
</p>
|
|
47
|
-
<p style="margin: 0; color: #666;">
|
|
48
|
-
Make sure the page asset is properly loaded and includes a layout configuration.
|
|
49
|
-
</p>
|
|
50
|
-
</div>
|
|
51
|
-
`,
|
|
52
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
53
|
-
}]
|
|
54
|
-
}] });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1lcnJvci1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2RvdGNtcy1sYXlvdXQtYm9keS9jb21wb25lbnRzL3BhZ2UtZXJyb3ItbWVzc2FnZS9wYWdlLWVycm9yLW1lc3NhZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBRTNFOzs7O0dBSUc7QUF1QkgsTUFBTSxPQUFPLHlCQUF5QjtJQUNsQyxRQUFRO1FBQ0osT0FBTyxDQUFDLElBQUksQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7OEdBSFEseUJBQXlCO2tHQUF6Qix5QkFBeUIscUZBbEJ4Qjs7Ozs7Ozs7Ozs7Ozs7O0tBZVQ7OzJGQUdRLHlCQUF5QjtrQkF0QnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7O0tBZVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gZGlzcGxheSBhIG1lc3NhZ2Ugd2hlbiBhIHBhZ2UgaXMgbWlzc2luZyB0aGUgcmVxdWlyZWQgYGxheW91dC5ib2R5YCBwcm9wZXJ0eS5cbiAqIEBpbnRlcm5hbFxuICogQGNsYXNzIFBhZ2VFcnJvck1lc3NhZ2VDb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtcGFnZS1lcnJvci1tZXNzYWdlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDFyZW07IGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7IGJvcmRlci1yYWRpdXM6IDRweDtcIj5cbiAgICAgICAgICAgIDxwIHN0eWxlPVwibWFyZ2luOiAwIDAgMC41cmVtOyBjb2xvcjogIzY2NjtcIj5cbiAgICAgICAgICAgICAgICBUaGVcbiAgICAgICAgICAgICAgICA8Y29kZT5wYWdlPC9jb2RlPlxuICAgICAgICAgICAgICAgIGlzIG1pc3NpbmcgdGhlIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgPGNvZGU+bGF5b3V0LmJvZHk8L2NvZGU+XG4gICAgICAgICAgICAgICAgcHJvcGVydHkuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cCBzdHlsZT1cIm1hcmdpbjogMDsgY29sb3I6ICM2NjY7XCI+XG4gICAgICAgICAgICAgICAgTWFrZSBzdXJlIHRoZSBwYWdlIGFzc2V0IGlzIHByb3Blcmx5IGxvYWRlZCBhbmQgaW5jbHVkZXMgYSBsYXlvdXQgY29uZmlndXJhdGlvbi5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlRXJyb3JNZXNzYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdNaXNzaW5nIHJlcXVpcmVkIGxheW91dC5ib2R5IHByb3BlcnR5IGluIHBhZ2UnKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, signal } from '@angular/core';
|
|
2
|
-
import { combineClasses } from '@dotcms/uve/internal';
|
|
3
|
-
import { ColumnComponent } from '../column/column.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* @description This component renders a row with all its content using the layout provided by dotCMS Page API.
|
|
7
|
-
*
|
|
8
|
-
* @see {@link https://www.dotcms.com/docs/latest/page-rest-api-layout-as-a-service-laas}
|
|
9
|
-
* @category Components
|
|
10
|
-
* @internal
|
|
11
|
-
* @class RowComponent
|
|
12
|
-
*/
|
|
13
|
-
export class RowComponent {
|
|
14
|
-
constructor() {
|
|
15
|
-
this.customClasses = signal('');
|
|
16
|
-
}
|
|
17
|
-
ngOnChanges() {
|
|
18
|
-
this.customClasses.set(combineClasses([this.row.styleClass || 'dot-row']));
|
|
19
|
-
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: RowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: RowComponent, isStandalone: true, selector: "dotcms-row", inputs: { row: "row" }, usesOnChanges: true, ngImport: i0, template: `
|
|
22
|
-
<div class="dot-row-container">
|
|
23
|
-
<div [class]="customClasses()" data-dot-object="row" data-testid="dotcms-row">
|
|
24
|
-
@for (column of row.columns; track $index) {
|
|
25
|
-
<dotcms-column [column]="column" />
|
|
26
|
-
}
|
|
27
|
-
</div>
|
|
28
|
-
</div>
|
|
29
|
-
`, isInline: true, styles: [".dot-row{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}\n"], dependencies: [{ kind: "component", type: ColumnComponent, selector: "dotcms-column", inputs: ["column"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: RowComponent, decorators: [{
|
|
32
|
-
type: Component,
|
|
33
|
-
args: [{ selector: 'dotcms-row', standalone: true, imports: [ColumnComponent], template: `
|
|
34
|
-
<div class="dot-row-container">
|
|
35
|
-
<div [class]="customClasses()" data-dot-object="row" data-testid="dotcms-row">
|
|
36
|
-
@for (column of row.columns; track $index) {
|
|
37
|
-
<dotcms-column [column]="column" />
|
|
38
|
-
}
|
|
39
|
-
</div>
|
|
40
|
-
</div>
|
|
41
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".dot-row{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}\n"] }]
|
|
42
|
-
}], propDecorators: { row: [{
|
|
43
|
-
type: Input,
|
|
44
|
-
args: [{ required: true }]
|
|
45
|
-
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2RvdGNtcy1sYXlvdXQtYm9keS9jb21wb25lbnRzL3Jvdy9yb3cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUU3RDs7Ozs7OztHQU9HO0FBaUJILE1BQU0sT0FBTyxZQUFZO0lBaEJ6QjtRQXNCSSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUs5QjtJQUhHLFdBQVc7UUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQzs4R0FWUSxZQUFZO2tHQUFaLFlBQVksbUhBWlg7Ozs7Ozs7O0tBUVQsZ0pBVFMsZUFBZTs7MkZBYWhCLFlBQVk7a0JBaEJ4QixTQUFTOytCQUNJLFlBQVksY0FDVixJQUFJLFdBQ1AsQ0FBQyxlQUFlLENBQUMsWUFDaEI7Ozs7Ozs7O0tBUVQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07OEJBTXBCLEdBQUc7c0JBQTdCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERvdFBhZ2VBc3NldExheW91dFJvdyB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuaW1wb3J0IHsgY29tYmluZUNsYXNzZXMgfSBmcm9tICdAZG90Y21zL3V2ZS9pbnRlcm5hbCc7XG5cbmltcG9ydCB7IENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbHVtbi9jb2x1bW4uY29tcG9uZW50JztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhpcyBjb21wb25lbnQgcmVuZGVycyBhIHJvdyB3aXRoIGFsbCBpdHMgY29udGVudCB1c2luZyB0aGUgbGF5b3V0IHByb3ZpZGVkIGJ5IGRvdENNUyBQYWdlIEFQSS5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL3d3dy5kb3RjbXMuY29tL2RvY3MvbGF0ZXN0L3BhZ2UtcmVzdC1hcGktbGF5b3V0LWFzLWEtc2VydmljZS1sYWFzfVxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqIEBpbnRlcm5hbFxuICogQGNsYXNzIFJvd0NvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1yb3cnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbHVtbkNvbXBvbmVudF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImRvdC1yb3ctY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCJjdXN0b21DbGFzc2VzKClcIiBkYXRhLWRvdC1vYmplY3Q9XCJyb3dcIiBkYXRhLXRlc3RpZD1cImRvdGNtcy1yb3dcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChjb2x1bW4gb2Ygcm93LmNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8ZG90Y21zLWNvbHVtbiBbY29sdW1uXT1cImNvbHVtblwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgc3R5bGVVcmw6ICcuL3Jvdy5jb21wb25lbnQuY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSb3dDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIC8qKlxuICAgICAqIFRoZSByb3cgZGF0YSB0byBiZSByZW5kZXJlZFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHJvdyE6IERvdFBhZ2VBc3NldExheW91dFJvdztcblxuICAgIGN1c3RvbUNsYXNzZXMgPSBzaWduYWwoJycpO1xuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tQ2xhc3Nlcy5zZXQoY29tYmluZUNsYXNzZXMoW3RoaXMucm93LnN0eWxlQ2xhc3MgfHwgJ2RvdC1yb3cnXSkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, inject, Input, signal } from '@angular/core';
|
|
2
|
-
import { PageErrorMessageComponent } from './components/page-error-message/page-error-message.component';
|
|
3
|
-
import { RowComponent } from './components/row/row.component';
|
|
4
|
-
import { DotCMSStore } from '../../store/dotcms.store';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
/**
|
|
7
|
-
* @description This component is used to render the layout for a DotCMS page.
|
|
8
|
-
* @param {DotCMSPageAsset} page - The page to render the layout for
|
|
9
|
-
* @param {DotCMSPageComponent} components - The components to render the layout for
|
|
10
|
-
* @param {DotCMSPageRendererMode} mode - The mode to render the layout for
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* <dotcms-layout-body [page]="page" [components]="components" [mode]="'development'" />
|
|
14
|
-
*
|
|
15
|
-
* @export
|
|
16
|
-
* @implements {OnChanges}
|
|
17
|
-
* @class DotCMSLayoutBodyComponent
|
|
18
|
-
*/
|
|
19
|
-
export class DotCMSLayoutBodyComponent {
|
|
20
|
-
constructor() {
|
|
21
|
-
this.components = {};
|
|
22
|
-
this.mode = 'production';
|
|
23
|
-
this.#dotCMSStore = inject(DotCMSStore);
|
|
24
|
-
this.$isDevMode = this.#dotCMSStore.$isDevMode;
|
|
25
|
-
this.$rows = signal([]);
|
|
26
|
-
this.$isEmpty = signal(false);
|
|
27
|
-
}
|
|
28
|
-
#dotCMSStore;
|
|
29
|
-
ngOnChanges() {
|
|
30
|
-
this.#dotCMSStore.setStore({
|
|
31
|
-
page: this.page,
|
|
32
|
-
components: this.components,
|
|
33
|
-
mode: this.mode
|
|
34
|
-
});
|
|
35
|
-
this.$isEmpty.set(!this.page?.layout?.body);
|
|
36
|
-
this.$rows.set(this.page?.layout?.body?.rows ?? []);
|
|
37
|
-
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSLayoutBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotCMSLayoutBodyComponent, isStandalone: true, selector: "dotcms-layout-body", inputs: { page: "page", components: "components", mode: "mode" }, providers: [DotCMSStore], usesOnChanges: true, ngImport: i0, template: `
|
|
40
|
-
@if ($isEmpty() && $isDevMode()) {
|
|
41
|
-
<dotcms-page-error-message />
|
|
42
|
-
} @else {
|
|
43
|
-
@for (row of $rows(); track row.identifier) {
|
|
44
|
-
<dotcms-row [row]="row" />
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: PageErrorMessageComponent, selector: "dotcms-page-error-message" }, { kind: "component", type: RowComponent, selector: "dotcms-row", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSLayoutBodyComponent, decorators: [{
|
|
50
|
-
type: Component,
|
|
51
|
-
args: [{ selector: 'dotcms-layout-body', standalone: true, imports: [PageErrorMessageComponent, RowComponent], providers: [DotCMSStore], template: `
|
|
52
|
-
@if ($isEmpty() && $isDevMode()) {
|
|
53
|
-
<dotcms-page-error-message />
|
|
54
|
-
} @else {
|
|
55
|
-
@for (row of $rows(); track row.identifier) {
|
|
56
|
-
<dotcms-row [row]="row" />
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
|
|
60
|
-
}], propDecorators: { page: [{
|
|
61
|
-
type: Input,
|
|
62
|
-
args: [{ required: true }]
|
|
63
|
-
}], components: [{
|
|
64
|
-
type: Input,
|
|
65
|
-
args: [{ required: true }]
|
|
66
|
-
}], mode: [{
|
|
67
|
-
type: Input
|
|
68
|
-
}] } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWxheW91dC1ib2R5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2RvdGNtcy1sYXlvdXQtYm9keS9kb3RjbXMtbGF5b3V0LWJvZHkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUc5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBQ3ZEOzs7Ozs7Ozs7Ozs7R0FZRztBQWtCSCxNQUFNLE9BQU8seUJBQXlCO0lBakJ0QztRQW1CK0IsZUFBVSxHQUF3QixFQUFFLENBQUM7UUFDdkQsU0FBSSxHQUEyQixZQUFZLENBQUM7UUFFckQsaUJBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbkMsZUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO1FBRTFDLFVBQUssR0FBRyxNQUFNLENBQTBCLEVBQUUsQ0FBQyxDQUFDO1FBRTVDLGFBQVEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7S0FhNUI7SUFuQkcsWUFBWSxDQUF1QjtJQVFuQyxXQUFXO1FBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs4R0F2QlEseUJBQXlCO2tHQUF6Qix5QkFBeUIsbUlBYnZCLENBQUMsV0FBVyxDQUFDLCtDQUNkOzs7Ozs7OztLQVFULGdHQVZTLHlCQUF5QixzRUFBRSxZQUFZOzsyRkFjeEMseUJBQXlCO2tCQWpCckMsU0FBUzsrQkFDSSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDLGFBQ3ZDLENBQUMsV0FBVyxDQUFDLFlBQ2Q7Ozs7Ozs7O0tBUVQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07OEJBR3BCLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFVBQVU7c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRG90Q01TUGFnZUFzc2V0LCBEb3RDTVNQYWdlUmVuZGVyZXJNb2RlLCBEb3RQYWdlQXNzZXRMYXlvdXRSb3cgfSBmcm9tICdAZG90Y21zL3R5cGVzJztcblxuaW1wb3J0IHsgUGFnZUVycm9yTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlLWVycm9yLW1lc3NhZ2UvcGFnZS1lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb3dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm93L3Jvdy5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBEb3RDTVNQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IERvdENNU1N0b3JlIH0gZnJvbSAnLi4vLi4vc3RvcmUvZG90Y21zLnN0b3JlJztcbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoaXMgY29tcG9uZW50IGlzIHVzZWQgdG8gcmVuZGVyIHRoZSBsYXlvdXQgZm9yIGEgRG90Q01TIHBhZ2UuXG4gKiBAcGFyYW0ge0RvdENNU1BhZ2VBc3NldH0gcGFnZSAtIFRoZSBwYWdlIHRvIHJlbmRlciB0aGUgbGF5b3V0IGZvclxuICogQHBhcmFtIHtEb3RDTVNQYWdlQ29tcG9uZW50fSBjb21wb25lbnRzIC0gVGhlIGNvbXBvbmVudHMgdG8gcmVuZGVyIHRoZSBsYXlvdXQgZm9yXG4gKiBAcGFyYW0ge0RvdENNU1BhZ2VSZW5kZXJlck1vZGV9IG1vZGUgLSBUaGUgbW9kZSB0byByZW5kZXIgdGhlIGxheW91dCBmb3JcbiAqXG4gKiBAZXhhbXBsZVxuICogPGRvdGNtcy1sYXlvdXQtYm9keSBbcGFnZV09XCJwYWdlXCIgW2NvbXBvbmVudHNdPVwiY29tcG9uZW50c1wiIFttb2RlXT1cIidkZXZlbG9wbWVudCdcIiAvPlxuICpcbiAqIEBleHBvcnRcbiAqIEBpbXBsZW1lbnRzIHtPbkNoYW5nZXN9XG4gKiBAY2xhc3MgRG90Q01TTGF5b3V0Qm9keUNvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1sYXlvdXQtYm9keScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbUGFnZUVycm9yTWVzc2FnZUNvbXBvbmVudCwgUm93Q29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtEb3RDTVNTdG9yZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmICgkaXNFbXB0eSgpICYmICRpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgPGRvdGNtcy1wYWdlLWVycm9yLW1lc3NhZ2UgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAZm9yIChyb3cgb2YgJHJvd3MoKTsgdHJhY2sgcm93LmlkZW50aWZpZXIpIHtcbiAgICAgICAgICAgICAgICA8ZG90Y21zLXJvdyBbcm93XT1cInJvd1wiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBgLFxuICAgIHN0eWxlVXJsOiAnLi9kb3RjbXMtbGF5b3V0LWJvZHkuY29tcG9uZW50LmNzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRG90Q01TTGF5b3V0Qm9keUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcGFnZSE6IERvdENNU1BhZ2VBc3NldDtcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb21wb25lbnRzOiBEb3RDTVNQYWdlQ29tcG9uZW50ID0ge307XG4gICAgQElucHV0KCkgbW9kZTogRG90Q01TUGFnZVJlbmRlcmVyTW9kZSA9ICdwcm9kdWN0aW9uJztcblxuICAgICNkb3RDTVNTdG9yZSA9IGluamVjdChEb3RDTVNTdG9yZSk7XG5cbiAgICAkaXNEZXZNb2RlID0gdGhpcy4jZG90Q01TU3RvcmUuJGlzRGV2TW9kZTtcblxuICAgICRyb3dzID0gc2lnbmFsPERvdFBhZ2VBc3NldExheW91dFJvd1tdPihbXSk7XG5cbiAgICAkaXNFbXB0eSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy4jZG90Q01TU3RvcmUuc2V0U3RvcmUoe1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgICAgICAgY29tcG9uZW50czogdGhpcy5jb21wb25lbnRzLFxuICAgICAgICAgICAgbW9kZTogdGhpcy5tb2RlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuJGlzRW1wdHkuc2V0KCF0aGlzLnBhZ2U/LmxheW91dD8uYm9keSk7XG5cbiAgICAgICAgdGhpcy4kcm93cy5zZXQodGhpcy5wYWdlPy5sYXlvdXQ/LmJvZHk/LnJvd3MgPz8gW10pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, ViewContainerRef, TemplateRef, inject } from '@angular/core';
|
|
2
|
-
import { UVE_MODE } from '@dotcms/types';
|
|
3
|
-
import { getUVEState } from '@dotcms/uve';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* Directive to show a template when the UVE is in a specific mode.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* <div *dotCMSShowWhen="UVE_MODE.EDIT">
|
|
10
|
-
* This will be shown when the UVE is in edit mode.
|
|
11
|
-
* </div>
|
|
12
|
-
*
|
|
13
|
-
* @export
|
|
14
|
-
* @class DotCMSShowWhenDirective
|
|
15
|
-
*/
|
|
16
|
-
export class DotCMSShowWhenDirective {
|
|
17
|
-
#when = UVE_MODE.EDIT;
|
|
18
|
-
#hasView = false;
|
|
19
|
-
set dotCMSShowWhen(value) {
|
|
20
|
-
this.#when = value;
|
|
21
|
-
this.updateViewContainer();
|
|
22
|
-
}
|
|
23
|
-
#viewContainerRef = inject(ViewContainerRef);
|
|
24
|
-
#templateRef = inject(TemplateRef);
|
|
25
|
-
updateViewContainer() {
|
|
26
|
-
const state = getUVEState();
|
|
27
|
-
const shouldShow = state?.mode === this.#when;
|
|
28
|
-
if (shouldShow && !this.#hasView) {
|
|
29
|
-
this.#viewContainerRef.createEmbeddedView(this.#templateRef);
|
|
30
|
-
this.#hasView = true;
|
|
31
|
-
}
|
|
32
|
-
else if (!shouldShow && this.#hasView) {
|
|
33
|
-
this.#viewContainerRef.clear();
|
|
34
|
-
this.#hasView = false;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSShowWhenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
38
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.3", type: DotCMSShowWhenDirective, isStandalone: true, selector: "[dotCMSShowWhen]", inputs: { dotCMSShowWhen: "dotCMSShowWhen" }, ngImport: i0 }); }
|
|
39
|
-
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotCMSShowWhenDirective, decorators: [{
|
|
41
|
-
type: Directive,
|
|
42
|
-
args: [{
|
|
43
|
-
selector: '[dotCMSShowWhen]',
|
|
44
|
-
standalone: true
|
|
45
|
-
}]
|
|
46
|
-
}], propDecorators: { dotCMSShowWhen: [{
|
|
47
|
-
type: Input
|
|
48
|
-
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLXNob3ctd2hlbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvZGlyZWN0aXZlcy9kb3RjbXMtc2hvdy13aGVuL2RvdGNtcy1zaG93LXdoZW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUUxQzs7Ozs7Ozs7OztHQVVHO0FBS0gsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxLQUFLLEdBQWEsUUFBUSxDQUFDLElBQUksQ0FBQztJQUNoQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRWpCLElBQWEsY0FBYyxDQUFDLEtBQWU7UUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdDLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFM0IsbUJBQW1CO1FBQ3ZCLE1BQU0sS0FBSyxHQUF5QixXQUFXLEVBQUUsQ0FBQztRQUVsRCxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFOUMsSUFBSSxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO2FBQU0sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDOzhHQXhCUSx1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBS2dCLGNBQWM7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBWaWV3Q29udGFpbmVyUmVmLCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFVWRV9NT0RFLCBVVkVTdGF0ZSB9IGZyb20gJ0Bkb3RjbXMvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0VVZFU3RhdGUgfSBmcm9tICdAZG90Y21zL3V2ZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIHNob3cgYSB0ZW1wbGF0ZSB3aGVuIHRoZSBVVkUgaXMgaW4gYSBzcGVjaWZpYyBtb2RlLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8ZGl2ICpkb3RDTVNTaG93V2hlbj1cIlVWRV9NT0RFLkVESVRcIj5cbiAqICAgICBUaGlzIHdpbGwgYmUgc2hvd24gd2hlbiB0aGUgVVZFIGlzIGluIGVkaXQgbW9kZS5cbiAqIDwvZGl2PlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBEb3RDTVNTaG93V2hlbkRpcmVjdGl2ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tkb3RDTVNTaG93V2hlbl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRG90Q01TU2hvd1doZW5EaXJlY3RpdmUge1xuICAgICN3aGVuOiBVVkVfTU9ERSA9IFVWRV9NT0RFLkVESVQ7XG4gICAgI2hhc1ZpZXcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHNldCBkb3RDTVNTaG93V2hlbih2YWx1ZTogVVZFX01PREUpIHtcbiAgICAgICAgdGhpcy4jd2hlbiA9IHZhbHVlO1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXdDb250YWluZXIoKTtcbiAgICB9XG5cbiAgICAjdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICAjdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuXG4gICAgcHJpdmF0ZSB1cGRhdGVWaWV3Q29udGFpbmVyKCkge1xuICAgICAgICBjb25zdCBzdGF0ZTogVVZFU3RhdGUgfCB1bmRlZmluZWQgPSBnZXRVVkVTdGF0ZSgpO1xuXG4gICAgICAgIGNvbnN0IHNob3VsZFNob3cgPSBzdGF0ZT8ubW9kZSA9PT0gdGhpcy4jd2hlbjtcblxuICAgICAgICBpZiAoc2hvdWxkU2hvdyAmJiAhdGhpcy4jaGFzVmlldykge1xuICAgICAgICAgICAgdGhpcy4jdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy4jdGVtcGxhdGVSZWYpO1xuICAgICAgICAgICAgdGhpcy4jaGFzVmlldyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZFNob3cgJiYgdGhpcy4jaGFzVmlldykge1xuICAgICAgICAgICAgdGhpcy4jdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgICAgICAgdGhpcy4jaGFzVmlldyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
export {};
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3RDTVNQYWdlQXNzZXQsIERvdENNU1BhZ2VSZW5kZXJlck1vZGUgfSBmcm9tICdAZG90Y21zL3R5cGVzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZHluYW1pYyBjb21wb25lbnQgZW50aXR5LlxuICogQHR5cGVkZWYge1Byb21pc2U8VHlwZTxhbnk+Pn0gRHluYW1pY0NvbXBvbmVudEVudGl0eVxuICogQG1lbWJlcm9mIEBkb3RjbXMvYW5ndWxhclxuICovXG5leHBvcnQgdHlwZSBEeW5hbWljQ29tcG9uZW50RW50aXR5ID0gUHJvbWlzZTxUeXBlPGFueT4+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGNvbnRleHQgb2YgYSBEb3RDTVMgcGFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb3RDTVNQYWdlU3RvcmUge1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIERvdENNUyBwYWdlIGFzc2V0LlxuICAgICAqIEB0eXBlIHtEb3RDTVNQYWdlQXNzZXR9XG4gICAgICogQG1lbWJlcm9mIERvdENNU1BhZ2VTdG9yZVxuICAgICAqL1xuICAgIHBhZ2U6IERvdENNU1BhZ2VBc3NldDtcblxuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIGR5bmFtaWMgY29tcG9uZW50cyBvZiB0aGUgcGFnZSBmb3IgZWFjaCBDb250ZW50IFR5cGUuXG4gICAgICogQHR5cGUge0RvdENNU1BhZ2VDb21wb25lbnR9XG4gICAgICogQG1lbWJlcm9mIERvdENNU1BhZ2VTdG9yZVxuICAgICAqL1xuICAgIGNvbXBvbmVudHM6IERvdENNU1BhZ2VDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgdGhlIHJlbmRlcmVyIG1vZGUuXG4gICAgICogQHR5cGUge0RvdENNU1BhZ2VSZW5kZXJlck1vZGV9XG4gICAgICogQG1lbWJlcm9mIERvdENNU1BhZ2VTdG9yZVxuICAgICAqL1xuICAgIG1vZGU6IERvdENNU1BhZ2VSZW5kZXJlck1vZGU7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIERvdENNUyBwYWdlIGNvbXBvbmVudC5cbiAqIFVzZWQgdG8gc3RvcmUgdGhlIGR5bmFtaWMgY29tcG9uZW50cyBvZiBhIERvdENNUyBwYWdlLlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIER5bmFtaWNDb21wb25lbnRFbnRpdHk+fSBEb3RDTVNQYWdlQ29tcG9uZW50XG4gKiBAbWVtYmVyb2YgQGRvdGNtcy9hbmd1bGFyXG4gKi9cbmV4cG9ydCB0eXBlIERvdENNU1BhZ2VDb21wb25lbnQgPSBSZWNvcmQ8c3RyaW5nLCBEeW5hbWljQ29tcG9uZW50RW50aXR5PjtcbiJdfQ==
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { makeEnvironmentProviders } from '@angular/core';
|
|
2
|
-
import { createDotCMSClient } from '@dotcms/client';
|
|
3
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
|
|
4
|
-
export class DotCMSClient {
|
|
5
|
-
constructor(client) {
|
|
6
|
-
return client;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Creates environment providers for the DotCMS client to be used in Angular applications.
|
|
11
|
-
* This function configures the DI container to provide a DotCMSClient instance
|
|
12
|
-
* throughout the application using the specified configuration.
|
|
13
|
-
*
|
|
14
|
-
* The provider should be registered at the application level (typically in main.ts)
|
|
15
|
-
* to ensure a single instance is shared across the entire application.
|
|
16
|
-
*
|
|
17
|
-
* @param options - Configuration object for the DotCMS client
|
|
18
|
-
* @param options.apiUrl - The base URL for the DotCMS API
|
|
19
|
-
* @param options.authToken - Authentication token for API requests (optional)
|
|
20
|
-
* @param options.siteId - The site identifier (optional)
|
|
21
|
-
* @returns Environment providers array that can be used with bootstrapApplication
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ```typescript
|
|
25
|
-
* // main.ts
|
|
26
|
-
* import { bootstrapApplication } from '@angular/platform-browser';
|
|
27
|
-
* import { AppComponent } from './app/app.component';
|
|
28
|
-
* import { provideDotCMSClient } from '@dotcms/angular';
|
|
29
|
-
*
|
|
30
|
-
* bootstrapApplication(AppComponent, {
|
|
31
|
-
* providers: [
|
|
32
|
-
* provideDotCMSClient({
|
|
33
|
-
* apiUrl: 'https://demo.dotcms.com',
|
|
34
|
-
* authToken: 'your-auth-token',
|
|
35
|
-
* siteId: 'your-site-id'
|
|
36
|
-
* }),
|
|
37
|
-
* // other providers...
|
|
38
|
-
* ]
|
|
39
|
-
* });
|
|
40
|
-
* ```
|
|
41
|
-
*
|
|
42
|
-
*/
|
|
43
|
-
export function provideDotCMSClient(options) {
|
|
44
|
-
const dotCMSClient = createDotCMSClient(options);
|
|
45
|
-
return makeEnvironmentProviders([
|
|
46
|
-
{
|
|
47
|
-
provide: DotCMSClient,
|
|
48
|
-
useFactory: () => new DotCMSClient(dotCMSClient)
|
|
49
|
-
}
|
|
50
|
-
]);
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWNsaWVudC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9wcm92aWRlcnMvZG90Y21zLWNsaWVudC9kb3RjbXMtY2xpZW50LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUF3QnBELDRFQUE0RTtBQUM1RSxNQUFNLE9BQU8sWUFBWTtJQUNyQixZQUFZLE1BQWtCO1FBQzFCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsT0FBMkI7SUFDM0QsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakQsT0FBTyx3QkFBd0IsQ0FBQztRQUM1QjtZQUNJLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUM7U0FDbkQ7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLCBFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjcmVhdGVEb3RDTVNDbGllbnQgfSBmcm9tICdAZG90Y21zL2NsaWVudCc7XG5pbXBvcnQgeyBEb3RDTVNDbGllbnRDb25maWcgfSBmcm9tICdAZG90Y21zL3R5cGVzJztcblxuLyoqXG4gKiBUeXBlIGFsaWFzIGZvciB0aGUgcmV0dXJuIHR5cGUgb2YgY3JlYXRlRG90Q01TQ2xpZW50IGZ1bmN0aW9uLlxuICogVXNlZCB0byBlbnN1cmUgdHlwZSBjb25zaXN0ZW5jeSBhY3Jvc3MgdGhlIERvdENNU0NsaWVudCBpbnRlcmZhY2UgYW5kIGNsYXNzLlxuICovXG50eXBlIENsaWVudFR5cGUgPSBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVEb3RDTVNDbGllbnQ+O1xuXG4vLyBUaGlzIGlzIGEgaGFjayBpbnNwaXJlZCBieSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyZmlyZS9ibG9iL2MxYzZhZjk3NzkxNTRjYWZmNmJjMGQ5YjgzN2Y2YzNlMmQ5MTM0NTYvc3JjL2ZpcmVzdG9yZS9maXJlc3RvcmUudHMjTDhcblxuLyoqXG4gKiBJbnRlcmZhY2UgdGhhdCBleHRlbmRzIHRoZSBjbGllbnQgdHlwZSBjcmVhdGVkIGJ5IGNyZWF0ZURvdENNU0NsaWVudC5cbiAqIFRoaXMgaW50ZXJmYWNlIHByb3ZpZGVzIHR5cGUgc2FmZXR5IGFuZCBJbnRlbGxpU2Vuc2Ugc3VwcG9ydCBmb3IgdGhlIERvdENNUyBjbGllbnRcbiAqIHdoZW4gdXNlZCBhcyBhIGRlcGVuZGVuY3kgaW5qZWN0aW9uIHRva2VuIGluIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBkb3RjbXNDbGllbnQgPSBpbmplY3QoRG90Q01TQ2xpZW50KTtcbiAqIGBgYFxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1kZWNsYXJhdGlvbi1tZXJnaW5nLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIERvdENNU0NsaWVudCBleHRlbmRzIENsaWVudFR5cGUge31cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZGVjbGFyYXRpb24tbWVyZ2luZ1xuZXhwb3J0IGNsYXNzIERvdENNU0NsaWVudCB7XG4gICAgY29uc3RydWN0b3IoY2xpZW50OiBDbGllbnRUeXBlKSB7XG4gICAgICAgIHJldHVybiBjbGllbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgZW52aXJvbm1lbnQgcHJvdmlkZXJzIGZvciB0aGUgRG90Q01TIGNsaWVudCB0byBiZSB1c2VkIGluIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICogVGhpcyBmdW5jdGlvbiBjb25maWd1cmVzIHRoZSBESSBjb250YWluZXIgdG8gcHJvdmlkZSBhIERvdENNU0NsaWVudCBpbnN0YW5jZVxuICogdGhyb3VnaG91dCB0aGUgYXBwbGljYXRpb24gdXNpbmcgdGhlIHNwZWNpZmllZCBjb25maWd1cmF0aW9uLlxuICpcbiAqIFRoZSBwcm92aWRlciBzaG91bGQgYmUgcmVnaXN0ZXJlZCBhdCB0aGUgYXBwbGljYXRpb24gbGV2ZWwgKHR5cGljYWxseSBpbiBtYWluLnRzKVxuICogdG8gZW5zdXJlIGEgc2luZ2xlIGluc3RhbmNlIGlzIHNoYXJlZCBhY3Jvc3MgdGhlIGVudGlyZSBhcHBsaWNhdGlvbi5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgRG90Q01TIGNsaWVudFxuICogQHBhcmFtIG9wdGlvbnMuYXBpVXJsIC0gVGhlIGJhc2UgVVJMIGZvciB0aGUgRG90Q01TIEFQSVxuICogQHBhcmFtIG9wdGlvbnMuYXV0aFRva2VuIC0gQXV0aGVudGljYXRpb24gdG9rZW4gZm9yIEFQSSByZXF1ZXN0cyAob3B0aW9uYWwpXG4gKiBAcGFyYW0gb3B0aW9ucy5zaXRlSWQgLSBUaGUgc2l0ZSBpZGVudGlmaWVyIChvcHRpb25hbClcbiAqIEByZXR1cm5zIEVudmlyb25tZW50IHByb3ZpZGVycyBhcnJheSB0aGF0IGNhbiBiZSB1c2VkIHdpdGggYm9vdHN0cmFwQXBwbGljYXRpb25cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gbWFpbi50c1xuICogaW1wb3J0IHsgYm9vdHN0cmFwQXBwbGljYXRpb24gfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbiAqIGltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gJy4vYXBwL2FwcC5jb21wb25lbnQnO1xuICogaW1wb3J0IHsgcHJvdmlkZURvdENNU0NsaWVudCB9IGZyb20gJ0Bkb3RjbXMvYW5ndWxhcic7XG4gKlxuICogYm9vdHN0cmFwQXBwbGljYXRpb24oQXBwQ29tcG9uZW50LCB7XG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHByb3ZpZGVEb3RDTVNDbGllbnQoe1xuICogICAgICAgYXBpVXJsOiAnaHR0cHM6Ly9kZW1vLmRvdGNtcy5jb20nLFxuICogICAgICAgYXV0aFRva2VuOiAneW91ci1hdXRoLXRva2VuJyxcbiAqICAgICAgIHNpdGVJZDogJ3lvdXItc2l0ZS1pZCdcbiAqICAgICB9KSxcbiAqICAgICAvLyBvdGhlciBwcm92aWRlcnMuLi5cbiAqICAgXVxuICogfSk7XG4gKiBgYGBcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRG90Q01TQ2xpZW50KG9wdGlvbnM6IERvdENNU0NsaWVudENvbmZpZyk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgICBjb25zdCBkb3RDTVNDbGllbnQgPSBjcmVhdGVEb3RDTVNDbGllbnQob3B0aW9ucyk7XG5cbiAgICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRG90Q01TQ2xpZW50LFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4gbmV3IERvdENNU0NsaWVudChkb3RDTVNDbGllbnQpXG4gICAgICAgIH1cbiAgICBdKTtcbn1cbiJdfQ==
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { IMAGE_LOADER } from '@angular/common';
|
|
2
|
-
/**
|
|
3
|
-
* Validates if a given path is a valid URL string
|
|
4
|
-
*
|
|
5
|
-
* @param path - The path to validate
|
|
6
|
-
* @returns boolean indicating if the path is valid
|
|
7
|
-
*/
|
|
8
|
-
function isValidPath(path) {
|
|
9
|
-
if (typeof path !== 'string' || path.trim() === '') {
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
try {
|
|
13
|
-
new URL(path);
|
|
14
|
-
return true;
|
|
15
|
-
}
|
|
16
|
-
catch {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Provides a DotCMS image loader configuration for the Angular Image directive
|
|
22
|
-
*
|
|
23
|
-
* @param path - The base URL path to the DotCMS instance, or empty to use current site
|
|
24
|
-
* @returns An array of providers for the IMAGE_LOADER token
|
|
25
|
-
* @throws Error if the provided path is invalid
|
|
26
|
-
* @example
|
|
27
|
-
* ```typescript
|
|
28
|
-
* // In your app.config.ts
|
|
29
|
-
* export const appConfig: ApplicationConfig = {
|
|
30
|
-
* providers: [
|
|
31
|
-
* provideDotCMSImageLoader('https://demo.dotcms.com')
|
|
32
|
-
* // Or use current site:
|
|
33
|
-
* // provideDotCMSImageLoader()
|
|
34
|
-
* ]
|
|
35
|
-
* };
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
export function provideDotCMSImageLoader(path) {
|
|
39
|
-
// If path is provided, validate it
|
|
40
|
-
if (path && !isValidPath(path)) {
|
|
41
|
-
throw new Error(`Image loader has detected an invalid path (\`${path}\`). ` +
|
|
42
|
-
`To fix this, supply either the full URL to the dotCMS site, or leave it empty to use the current site.`);
|
|
43
|
-
}
|
|
44
|
-
return [
|
|
45
|
-
{
|
|
46
|
-
provide: IMAGE_LOADER,
|
|
47
|
-
useValue: (config) => createDotCMSURL(config, path)
|
|
48
|
-
}
|
|
49
|
-
];
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Creates a DotCMS-compatible URL for image loading
|
|
53
|
-
*
|
|
54
|
-
* @param config - The image loader configuration
|
|
55
|
-
* @param path - The base URL path to the DotCMS instance
|
|
56
|
-
* @returns A fully qualified URL for the image
|
|
57
|
-
* @internal
|
|
58
|
-
*/
|
|
59
|
-
function createDotCMSURL(config, path) {
|
|
60
|
-
const { loaderParams, src, width } = config;
|
|
61
|
-
const params = loaderParams;
|
|
62
|
-
if (params?.isOutsideSRC) {
|
|
63
|
-
return src;
|
|
64
|
-
}
|
|
65
|
-
// Use empty string as fallback to support using current site
|
|
66
|
-
const dotcmsHost = path ? new URL(path).origin : '';
|
|
67
|
-
const imageSRC = src.includes('/dA/') ? src : `/dA/${src}`;
|
|
68
|
-
const languageId = params?.languageId ?? '1';
|
|
69
|
-
if (width) {
|
|
70
|
-
return `${dotcmsHost}${imageSRC}/${width}w?language_id=${languageId}`;
|
|
71
|
-
}
|
|
72
|
-
return `${dotcmsHost}${imageSRC}?language_id=${languageId}`;
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWltYWdlX2xvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9wcm92aWRlcnMvZG90Y21zLWltYWdlLWxvYWRlci9kb3RjbXMtaW1hZ2VfbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0saUJBQWlCLENBQUM7QUFXbEU7Ozs7O0dBS0c7QUFDSCxTQUFTLFdBQVcsQ0FBQyxJQUFhO0lBQzlCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNqRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFZCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ0wsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsSUFBYTtJQUNsRCxtQ0FBbUM7SUFDbkMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksS0FBSyxDQUNYLGdEQUFnRCxJQUFJLE9BQU87WUFDdkQsd0dBQXdHLENBQy9HLENBQUM7SUFDTixDQUFDO0lBRUQsT0FBTztRQUNIO1lBQ0ksT0FBTyxFQUFFLFlBQVk7WUFDckIsUUFBUSxFQUFFLENBQUMsTUFBeUIsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7U0FDekU7S0FDSixDQUFDO0FBQ04sQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLGVBQWUsQ0FBQyxNQUF5QixFQUFFLElBQWE7SUFDN0QsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHLFlBQXVDLENBQUM7SUFFdkQsSUFBSSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUM7UUFDdkIsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQsNkRBQTZEO0lBQzdELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQzNELE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxVQUFVLElBQUksR0FBRyxDQUFDO0lBRTdDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDUixPQUFPLEdBQUcsVUFBVSxHQUFHLFFBQVEsSUFBSSxLQUFLLGlCQUFpQixVQUFVLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsT0FBTyxHQUFHLFVBQVUsR0FBRyxRQUFRLGdCQUFnQixVQUFVLEVBQUUsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU1BR0VfTE9BREVSLCBJbWFnZUxvYWRlckNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIERvdENNUyBpbWFnZSBsb2FkZXIgcGFyYW1ldGVyc1xuICovXG5pbnRlcmZhY2UgRG90Q01TSW1hZ2VMb2FkZXJQYXJhbXMge1xuICAgIGlzT3V0c2lkZVNSQz86IGJvb2xlYW47XG4gICAgbGFuZ3VhZ2VJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgaWYgYSBnaXZlbiBwYXRoIGlzIGEgdmFsaWQgVVJMIHN0cmluZ1xuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgcGF0aCBpcyB2YWxpZFxuICovXG5mdW5jdGlvbiBpc1ZhbGlkUGF0aChwYXRoOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJyB8fCBwYXRoLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAgIG5ldyBVUkwocGF0aCk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbi8qKlxuICogUHJvdmlkZXMgYSBEb3RDTVMgaW1hZ2UgbG9hZGVyIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBBbmd1bGFyIEltYWdlIGRpcmVjdGl2ZVxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIGJhc2UgVVJMIHBhdGggdG8gdGhlIERvdENNUyBpbnN0YW5jZSwgb3IgZW1wdHkgdG8gdXNlIGN1cnJlbnQgc2l0ZVxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgcHJvdmlkZXJzIGZvciB0aGUgSU1BR0VfTE9BREVSIHRva2VuXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBwcm92aWRlZCBwYXRoIGlzIGludmFsaWRcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiB5b3VyIGFwcC5jb25maWcudHNcbiAqIGV4cG9ydCBjb25zdCBhcHBDb25maWc6IEFwcGxpY2F0aW9uQ29uZmlnID0ge1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlRG90Q01TSW1hZ2VMb2FkZXIoJ2h0dHBzOi8vZGVtby5kb3RjbXMuY29tJylcbiAqICAgICAvLyBPciB1c2UgY3VycmVudCBzaXRlOlxuICogICAgIC8vIHByb3ZpZGVEb3RDTVNJbWFnZUxvYWRlcigpXG4gKiAgIF1cbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEb3RDTVNJbWFnZUxvYWRlcihwYXRoPzogc3RyaW5nKTogUHJvdmlkZXJbXSB7XG4gICAgLy8gSWYgcGF0aCBpcyBwcm92aWRlZCwgdmFsaWRhdGUgaXRcbiAgICBpZiAocGF0aCAmJiAhaXNWYWxpZFBhdGgocGF0aCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEltYWdlIGxvYWRlciBoYXMgZGV0ZWN0ZWQgYW4gaW52YWxpZCBwYXRoIChcXGAke3BhdGh9XFxgKS4gYCArXG4gICAgICAgICAgICAgICAgYFRvIGZpeCB0aGlzLCBzdXBwbHkgZWl0aGVyIHRoZSBmdWxsIFVSTCB0byB0aGUgZG90Q01TIHNpdGUsIG9yIGxlYXZlIGl0IGVtcHR5IHRvIHVzZSB0aGUgY3VycmVudCBzaXRlLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBJTUFHRV9MT0FERVIsXG4gICAgICAgICAgICB1c2VWYWx1ZTogKGNvbmZpZzogSW1hZ2VMb2FkZXJDb25maWcpID0+IGNyZWF0ZURvdENNU1VSTChjb25maWcsIHBhdGgpXG4gICAgICAgIH1cbiAgICBdO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBEb3RDTVMtY29tcGF0aWJsZSBVUkwgZm9yIGltYWdlIGxvYWRpbmdcbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gVGhlIGltYWdlIGxvYWRlciBjb25maWd1cmF0aW9uXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBiYXNlIFVSTCBwYXRoIHRvIHRoZSBEb3RDTVMgaW5zdGFuY2VcbiAqIEByZXR1cm5zIEEgZnVsbHkgcXVhbGlmaWVkIFVSTCBmb3IgdGhlIGltYWdlXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gY3JlYXRlRG90Q01TVVJMKGNvbmZpZzogSW1hZ2VMb2FkZXJDb25maWcsIHBhdGg/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgbG9hZGVyUGFyYW1zLCBzcmMsIHdpZHRoIH0gPSBjb25maWc7XG4gICAgY29uc3QgcGFyYW1zID0gbG9hZGVyUGFyYW1zIGFzIERvdENNU0ltYWdlTG9hZGVyUGFyYW1zO1xuXG4gICAgaWYgKHBhcmFtcz8uaXNPdXRzaWRlU1JDKSB7XG4gICAgICAgIHJldHVybiBzcmM7XG4gICAgfVxuXG4gICAgLy8gVXNlIGVtcHR5IHN0cmluZyBhcyBmYWxsYmFjayB0byBzdXBwb3J0IHVzaW5nIGN1cnJlbnQgc2l0ZVxuICAgIGNvbnN0IGRvdGNtc0hvc3QgPSBwYXRoID8gbmV3IFVSTChwYXRoKS5vcmlnaW4gOiAnJztcbiAgICBjb25zdCBpbWFnZVNSQyA9IHNyYy5pbmNsdWRlcygnL2RBLycpID8gc3JjIDogYC9kQS8ke3NyY31gO1xuICAgIGNvbnN0IGxhbmd1YWdlSWQgPSBwYXJhbXM/Lmxhbmd1YWdlSWQgPz8gJzEnO1xuXG4gICAgaWYgKHdpZHRoKSB7XG4gICAgICAgIHJldHVybiBgJHtkb3RjbXNIb3N0fSR7aW1hZ2VTUkN9LyR7d2lkdGh9dz9sYW5ndWFnZV9pZD0ke2xhbmd1YWdlSWR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7ZG90Y21zSG9zdH0ke2ltYWdlU1JDfT9sYW5ndWFnZV9pZD0ke2xhbmd1YWdlSWR9YDtcbn1cbiJdfQ==
|