@dotcms/angular 0.0.1-alpha.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +134 -0
  2. package/dotcms-angular.d.ts.map +1 -0
  3. package/esm2022/dotcms-angular.mjs +5 -0
  4. package/esm2022/index.mjs +4 -0
  5. package/esm2022/lib/components/no-component/no-component.component.mjs +23 -0
  6. package/esm2022/lib/layout/column/column.component.mjs +33 -0
  7. package/esm2022/lib/layout/container/container.component.mjs +78 -0
  8. package/esm2022/lib/layout/contentlet/contentlet.component.mjs +65 -0
  9. package/esm2022/lib/layout/dotcms-layout/dotcms-layout.component.mjs +62 -0
  10. package/esm2022/lib/layout/row/row.component.mjs +19 -0
  11. package/esm2022/lib/models/dotcms.model.mjs +3 -0
  12. package/esm2022/lib/models/index.mjs +3 -0
  13. package/esm2022/lib/services/dotcms-context/page-context.service.mjs +35 -0
  14. package/esm2022/lib/utils/index.mjs +57 -0
  15. package/fesm2022/dotcms-angular.mjs +361 -0
  16. package/fesm2022/dotcms-angular.mjs.map +1 -0
  17. package/index.d.ts +4 -0
  18. package/index.d.ts.map +1 -0
  19. package/lib/components/no-component/no-component.component.d.ts +13 -0
  20. package/lib/components/no-component/no-component.component.d.ts.map +1 -0
  21. package/lib/layout/column/column.component.d.ts +11 -0
  22. package/lib/layout/column/column.component.d.ts.map +1 -0
  23. package/lib/layout/container/container.component.d.ts +34 -0
  24. package/lib/layout/container/container.component.d.ts.map +1 -0
  25. package/lib/layout/contentlet/contentlet.component.d.ts +19 -0
  26. package/lib/layout/contentlet/contentlet.component.d.ts.map +1 -0
  27. package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts +24 -0
  28. package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts.map +1 -0
  29. package/lib/layout/row/row.component.d.ts +8 -0
  30. package/lib/layout/row/row.component.d.ts.map +1 -0
  31. package/lib/models/dotcms.model.d.ts +403 -0
  32. package/lib/models/dotcms.model.d.ts.map +1 -0
  33. package/lib/models/index.d.ts +11 -0
  34. package/lib/models/index.d.ts.map +1 -0
  35. package/lib/services/dotcms-context/page-context.service.d.ts +18 -0
  36. package/lib/services/dotcms-context/page-context.service.d.ts.map +1 -0
  37. package/lib/utils/index.d.ts +49 -0
  38. package/lib/utils/index.d.ts.map +1 -0
  39. package/package.json +48 -0
@@ -0,0 +1,57 @@
1
+ //Changed the type, to avoid SQ issue.
2
+ //This should be put inside a lib
3
+ const endClassMap = {
4
+ 1: 'col-end-1',
5
+ 2: 'col-end-2',
6
+ 3: 'col-end-3',
7
+ 4: 'col-end-4',
8
+ 5: 'col-end-5',
9
+ 6: 'col-end-6',
10
+ 7: 'col-end-7',
11
+ 8: 'col-end-8',
12
+ 9: 'col-end-9',
13
+ 10: 'col-end-10',
14
+ 11: 'col-end-11',
15
+ 12: 'col-end-12',
16
+ 13: 'col-end-13'
17
+ };
18
+ //Changed the type, to avoid SQ issue.
19
+ //This should be put inside a lib
20
+ const startClassMap = {
21
+ 1: 'col-start-1',
22
+ 2: 'col-start-2',
23
+ 3: 'col-start-3',
24
+ 4: 'col-start-4',
25
+ 5: 'col-start-5',
26
+ 6: 'col-start-6',
27
+ 7: 'col-start-7',
28
+ 8: 'col-start-8',
29
+ 9: 'col-start-9',
30
+ 10: 'col-start-10',
31
+ 11: 'col-start-11',
32
+ 12: 'col-start-12'
33
+ };
34
+ export const getContainersData = (containers, containerRef) => {
35
+ const { identifier, uuid } = containerRef;
36
+ const { containerStructures, container } = containers[identifier];
37
+ const { variantId } = container?.parentPermissionable || {};
38
+ const acceptTypes = containerStructures
39
+ .map((structure) => structure.contentTypeVar)
40
+ .join(',');
41
+ const contentlets = containers[identifier].contentlets[`uuid-${uuid}`];
42
+ return {
43
+ ...containers[identifier].container,
44
+ acceptTypes,
45
+ contentlets,
46
+ variantId
47
+ };
48
+ };
49
+ export const getPositionStyleClasses = (start, end) => {
50
+ const startClass = startClassMap[start];
51
+ const endClass = endClassMap[end];
52
+ return {
53
+ startClass,
54
+ endClass
55
+ };
56
+ };
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsc0NBQXNDO0FBQ3RDLGlDQUFpQztBQUNqQyxNQUFNLFdBQVcsR0FBa0M7SUFDL0MsQ0FBQyxFQUFFLFdBQVc7SUFDZCxDQUFDLEVBQUUsV0FBVztJQUNkLENBQUMsRUFBRSxXQUFXO0lBQ2QsQ0FBQyxFQUFFLFdBQVc7SUFDZCxDQUFDLEVBQUUsV0FBVztJQUNkLENBQUMsRUFBRSxXQUFXO0lBQ2QsQ0FBQyxFQUFFLFdBQVc7SUFDZCxDQUFDLEVBQUUsV0FBVztJQUNkLENBQUMsRUFBRSxXQUFXO0lBQ2QsRUFBRSxFQUFFLFlBQVk7SUFDaEIsRUFBRSxFQUFFLFlBQVk7SUFDaEIsRUFBRSxFQUFFLFlBQVk7SUFDaEIsRUFBRSxFQUFFLFlBQVk7Q0FDbkIsQ0FBQztBQUVGLHNDQUFzQztBQUN0QyxpQ0FBaUM7QUFDakMsTUFBTSxhQUFhLEdBQWtDO0lBQ2pELENBQUMsRUFBRSxhQUFhO0lBQ2hCLENBQUMsRUFBRSxhQUFhO0lBQ2hCLENBQUMsRUFBRSxhQUFhO0lBQ2hCLENBQUMsRUFBRSxhQUFhO0lBQ2hCLENBQUMsRUFBRSxhQUFhO0lBQ2hCLENBQUMsRUFBRSxhQUFhO0lBQ2hCLENBQUMsRUFBRSxhQUFhO0lBQ2hCLENBQUMsRUFBRSxhQUFhO0lBQ2hCLENBQUMsRUFBRSxhQUFhO0lBQ2hCLEVBQUUsRUFBRSxjQUFjO0lBQ2xCLEVBQUUsRUFBRSxjQUFjO0lBQ2xCLEVBQUUsRUFBRSxjQUFjO0NBQ3JCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUM3QixVQUFvQyxFQUNwQyxZQUE2QixFQUMvQixFQUFFO0lBQ0EsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLENBQUM7SUFFMUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVsRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsU0FBUyxFQUFFLG9CQUFvQixJQUFJLEVBQUUsQ0FBQztJQUU1RCxNQUFNLFdBQVcsR0FBVyxtQkFBbUI7U0FDMUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO1NBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVmLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXZFLE9BQU87UUFDSCxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTO1FBQ25DLFdBQVc7UUFDWCxXQUFXO1FBQ1gsU0FBUztLQUNaLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWEsRUFBRSxHQUFXLEVBQUUsRUFBRTtJQUNsRSxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWxDLE9BQU87UUFDSCxVQUFVO1FBQ1YsUUFBUTtLQUNYLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb3RDTVNDb250YWluZXIsIERvdENNU1BhZ2VBc3NldENvbnRhaW5lciB9IGZyb20gJy4uL21vZGVscy9kb3RjbXMubW9kZWwnO1xuXG4vL0NoYW5nZWQgdGhlIHR5cGUsIHRvIGF2b2lkIFNRIGlzc3VlLlxuLy9UaGlzIHNob3VsZCBiZSBwdXQgaW5zaWRlIGEgbGliXG5jb25zdCBlbmRDbGFzc01hcDogUmVjb3JkPG51bWJlciwgc3RyaW5nIHwgbnVsbD4gPSB7XG4gICAgMTogJ2NvbC1lbmQtMScsXG4gICAgMjogJ2NvbC1lbmQtMicsXG4gICAgMzogJ2NvbC1lbmQtMycsXG4gICAgNDogJ2NvbC1lbmQtNCcsXG4gICAgNTogJ2NvbC1lbmQtNScsXG4gICAgNjogJ2NvbC1lbmQtNicsXG4gICAgNzogJ2NvbC1lbmQtNycsXG4gICAgODogJ2NvbC1lbmQtOCcsXG4gICAgOTogJ2NvbC1lbmQtOScsXG4gICAgMTA6ICdjb2wtZW5kLTEwJyxcbiAgICAxMTogJ2NvbC1lbmQtMTEnLFxuICAgIDEyOiAnY29sLWVuZC0xMicsXG4gICAgMTM6ICdjb2wtZW5kLTEzJ1xufTtcblxuLy9DaGFuZ2VkIHRoZSB0eXBlLCB0byBhdm9pZCBTUSBpc3N1ZS5cbi8vVGhpcyBzaG91bGQgYmUgcHV0IGluc2lkZSBhIGxpYlxuY29uc3Qgc3RhcnRDbGFzc01hcDogUmVjb3JkPG51bWJlciwgc3RyaW5nIHwgbnVsbD4gPSB7XG4gICAgMTogJ2NvbC1zdGFydC0xJyxcbiAgICAyOiAnY29sLXN0YXJ0LTInLFxuICAgIDM6ICdjb2wtc3RhcnQtMycsXG4gICAgNDogJ2NvbC1zdGFydC00JyxcbiAgICA1OiAnY29sLXN0YXJ0LTUnLFxuICAgIDY6ICdjb2wtc3RhcnQtNicsXG4gICAgNzogJ2NvbC1zdGFydC03JyxcbiAgICA4OiAnY29sLXN0YXJ0LTgnLFxuICAgIDk6ICdjb2wtc3RhcnQtOScsXG4gICAgMTA6ICdjb2wtc3RhcnQtMTAnLFxuICAgIDExOiAnY29sLXN0YXJ0LTExJyxcbiAgICAxMjogJ2NvbC1zdGFydC0xMidcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb250YWluZXJzRGF0YSA9IChcbiAgICBjb250YWluZXJzOiBEb3RDTVNQYWdlQXNzZXRDb250YWluZXIsXG4gICAgY29udGFpbmVyUmVmOiBEb3RDTVNDb250YWluZXJcbikgPT4ge1xuICAgIGNvbnN0IHsgaWRlbnRpZmllciwgdXVpZCB9ID0gY29udGFpbmVyUmVmO1xuXG4gICAgY29uc3QgeyBjb250YWluZXJTdHJ1Y3R1cmVzLCBjb250YWluZXIgfSA9IGNvbnRhaW5lcnNbaWRlbnRpZmllcl07XG5cbiAgICBjb25zdCB7IHZhcmlhbnRJZCB9ID0gY29udGFpbmVyPy5wYXJlbnRQZXJtaXNzaW9uYWJsZSB8fCB7fTtcblxuICAgIGNvbnN0IGFjY2VwdFR5cGVzOiBzdHJpbmcgPSBjb250YWluZXJTdHJ1Y3R1cmVzXG4gICAgICAgIC5tYXAoKHN0cnVjdHVyZSkgPT4gc3RydWN0dXJlLmNvbnRlbnRUeXBlVmFyKVxuICAgICAgICAuam9pbignLCcpO1xuXG4gICAgY29uc3QgY29udGVudGxldHMgPSBjb250YWluZXJzW2lkZW50aWZpZXJdLmNvbnRlbnRsZXRzW2B1dWlkLSR7dXVpZH1gXTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNvbnRhaW5lcnNbaWRlbnRpZmllcl0uY29udGFpbmVyLFxuICAgICAgICBhY2NlcHRUeXBlcyxcbiAgICAgICAgY29udGVudGxldHMsXG4gICAgICAgIHZhcmlhbnRJZFxuICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UG9zaXRpb25TdHlsZUNsYXNzZXMgPSAoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBzdGFydENsYXNzID0gc3RhcnRDbGFzc01hcFtzdGFydF07XG4gICAgY29uc3QgZW5kQ2xhc3MgPSBlbmRDbGFzc01hcFtlbmRdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnRDbGFzcyxcbiAgICAgICAgZW5kQ2xhc3NcbiAgICB9O1xufTtcbiJdfQ==
@@ -0,0 +1,361 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Component, ChangeDetectionStrategy, Input, HostBinding, inject, signal, computed, DestroyRef } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { ActivatedRoute, Router } from '@angular/router';
5
+ import { filter } from 'rxjs/operators';
6
+ import { isInsideEditor, initEditor, updateNavigation } from '@dotcms/client';
7
+ import { AsyncPipe, NgComponentOutlet } from '@angular/common';
8
+
9
+ /* eslint-disable @typescript-eslint/no-explicit-any */
10
+ class PageContextService {
11
+ constructor() {
12
+ this.pageContext = null;
13
+ }
14
+ get pageContextValue() {
15
+ return this.pageContext;
16
+ }
17
+ /**
18
+ * Set the context
19
+ *
20
+ * @protected
21
+ * @param {DotCMSPageAsset} value
22
+ * @memberof DotcmsContextService
23
+ */
24
+ setContext(pageAsset, components) {
25
+ this.pageContext = {
26
+ components,
27
+ pageAsset,
28
+ isInsideEditor: isInsideEditor()
29
+ };
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: PageContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: PageContextService, providedIn: 'root' }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: PageContextService, decorators: [{
35
+ type: Injectable,
36
+ args: [{
37
+ providedIn: 'root'
38
+ }]
39
+ }] });
40
+
41
+ //Changed the type, to avoid SQ issue.
42
+ //This should be put inside a lib
43
+ const endClassMap = {
44
+ 1: 'col-end-1',
45
+ 2: 'col-end-2',
46
+ 3: 'col-end-3',
47
+ 4: 'col-end-4',
48
+ 5: 'col-end-5',
49
+ 6: 'col-end-6',
50
+ 7: 'col-end-7',
51
+ 8: 'col-end-8',
52
+ 9: 'col-end-9',
53
+ 10: 'col-end-10',
54
+ 11: 'col-end-11',
55
+ 12: 'col-end-12',
56
+ 13: 'col-end-13'
57
+ };
58
+ //Changed the type, to avoid SQ issue.
59
+ //This should be put inside a lib
60
+ const startClassMap = {
61
+ 1: 'col-start-1',
62
+ 2: 'col-start-2',
63
+ 3: 'col-start-3',
64
+ 4: 'col-start-4',
65
+ 5: 'col-start-5',
66
+ 6: 'col-start-6',
67
+ 7: 'col-start-7',
68
+ 8: 'col-start-8',
69
+ 9: 'col-start-9',
70
+ 10: 'col-start-10',
71
+ 11: 'col-start-11',
72
+ 12: 'col-start-12'
73
+ };
74
+ const getContainersData = (containers, containerRef) => {
75
+ const { identifier, uuid } = containerRef;
76
+ const { containerStructures, container } = containers[identifier];
77
+ const { variantId } = container?.parentPermissionable || {};
78
+ const acceptTypes = containerStructures
79
+ .map((structure) => structure.contentTypeVar)
80
+ .join(',');
81
+ const contentlets = containers[identifier].contentlets[`uuid-${uuid}`];
82
+ return {
83
+ ...containers[identifier].container,
84
+ acceptTypes,
85
+ contentlets,
86
+ variantId
87
+ };
88
+ };
89
+ const getPositionStyleClasses = (start, end) => {
90
+ const startClass = startClassMap[start];
91
+ const endClass = endClassMap[end];
92
+ return {
93
+ startClass,
94
+ endClass
95
+ };
96
+ };
97
+
98
+ /**
99
+ * This is part of the Angular SDK.
100
+ * This is a component for the `NoComponentComponent` component.
101
+ */
102
+ class NoComponent {
103
+ constructor() {
104
+ this.testId = 'no-component';
105
+ }
106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: NoComponent, isStandalone: true, selector: "dotcms-no-component", inputs: { contentlet: "contentlet" }, host: { properties: { "attr.data-testid": "this.testId" } }, ngImport: i0, template: `No Component for {{ contentlet.contentType }}`, isInline: true, styles: [":host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
108
+ }
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NoComponent, decorators: [{
110
+ type: Component,
111
+ args: [{ selector: 'dotcms-no-component', standalone: true, template: `No Component for {{ contentlet.contentType }}`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
112
+ }], propDecorators: { contentlet: [{
113
+ type: Input
114
+ }], testId: [{
115
+ type: HostBinding,
116
+ args: ['attr.data-testid']
117
+ }] } });
118
+
119
+ class ContentletComponent {
120
+ constructor() {
121
+ this.identifier = null;
122
+ this.baseType = null;
123
+ this.title = null;
124
+ this.inode = null;
125
+ this.dotType = null;
126
+ this.dotContainer = null;
127
+ this.numberOfPages = null;
128
+ this.dotContent = null;
129
+ }
130
+ ngOnChanges() {
131
+ this.identifier = this.contentlet.identifier;
132
+ this.baseType = this.contentlet.baseType;
133
+ this.title = this.contentlet.title;
134
+ this.inode = this.contentlet.inode;
135
+ this.dotType = this.contentlet.contentType;
136
+ this.dotContainer = this.container;
137
+ this.numberOfPages = this.contentlet['onNumberOfPages'];
138
+ this.dotContent = 'contentlet';
139
+ }
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: ContentletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: ContentletComponent, isStandalone: true, selector: "dotcms-contentlet-wrapper", inputs: { contentlet: "contentlet", container: "container" }, host: { properties: { "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.dotType", "attr.data-dot-container": "this.dotContainer", "attr.data-dot-on-number-of-pages": "this.numberOfPages", "attr.data-dot-object": "this.dotContent" } }, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
142
+ }
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: ContentletComponent, decorators: [{
144
+ type: Component,
145
+ args: [{
146
+ selector: 'dotcms-contentlet-wrapper',
147
+ standalone: true,
148
+ template: '<ng-content></ng-content>',
149
+ changeDetection: ChangeDetectionStrategy.OnPush
150
+ }]
151
+ }], propDecorators: { contentlet: [{
152
+ type: Input,
153
+ args: [{ required: true }]
154
+ }], container: [{
155
+ type: Input
156
+ }], identifier: [{
157
+ type: HostBinding,
158
+ args: ['attr.data-dot-identifier']
159
+ }], baseType: [{
160
+ type: HostBinding,
161
+ args: ['attr.data-dot-basetype']
162
+ }], title: [{
163
+ type: HostBinding,
164
+ args: ['attr.data-dot-title']
165
+ }], inode: [{
166
+ type: HostBinding,
167
+ args: ['attr.data-dot-inode']
168
+ }], dotType: [{
169
+ type: HostBinding,
170
+ args: ['attr.data-dot-type']
171
+ }], dotContainer: [{
172
+ type: HostBinding,
173
+ args: ['attr.data-dot-container']
174
+ }], numberOfPages: [{
175
+ type: HostBinding,
176
+ args: ['attr.data-dot-on-number-of-pages']
177
+ }], dotContent: [{
178
+ type: HostBinding,
179
+ args: ['attr.data-dot-object']
180
+ }] } });
181
+
182
+ class ContainerComponent {
183
+ constructor() {
184
+ this.pageContextService = inject(PageContextService);
185
+ this.NoComponent = NoComponent;
186
+ this.$isInsideEditor = signal(false);
187
+ this.$contentlets = signal([]);
188
+ this.$dotContainer = signal(null);
189
+ this.$dotContainerAsString = computed(() => JSON.stringify(this.$dotContainer()));
190
+ this.acceptTypes = null;
191
+ this.identifier = null;
192
+ this.maxContentlets = null;
193
+ this.uuid = null;
194
+ this.class = null;
195
+ this.dotObject = null;
196
+ this.testId = 'dot-container';
197
+ }
198
+ ngOnChanges() {
199
+ const { pageAsset: { containers }, components, isInsideEditor } = this.pageContextService.pageContextValue;
200
+ const { acceptTypes, maxContentlets, variantId, path, contentlets } = getContainersData(containers, this.container);
201
+ const { identifier, uuid } = this.container;
202
+ this.componentsMap = components;
203
+ this.$isInsideEditor.set(isInsideEditor);
204
+ this.$contentlets.set(contentlets);
205
+ this.$dotContainer.set({
206
+ identifier: path ?? identifier,
207
+ acceptTypes,
208
+ maxContentlets,
209
+ variantId,
210
+ uuid
211
+ });
212
+ if (this.$isInsideEditor()) {
213
+ this.acceptTypes = acceptTypes;
214
+ this.identifier = identifier;
215
+ this.maxContentlets = maxContentlets;
216
+ this.uuid = uuid;
217
+ this.class = this.$contentlets().length ? null : 'empty-container';
218
+ this.dotObject = 'container';
219
+ }
220
+ }
221
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: ContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
222
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: ContainerComponent, isStandalone: true, selector: "dotcms-container", inputs: { container: "container" }, host: { properties: { "attr.data-dot-accept-types": "this.acceptTypes", "attr.data-dot-identifier": "this.identifier", "attr.data-max-contentlets": "this.maxContentlets", "attr.data-dot-uuid": "this.uuid", "class": "this.class", "attr.data-dot-object": "this.dotObject", "attr.data-testid": "this.testId" } }, usesOnChanges: true, ngImport: i0, template: "@if ($isInsideEditor()) { @if($contentlets().length){ @for (contentlet of $contentlets(); track\n$index) {\n\n<dotcms-contentlet-wrapper [contentlet]=\"contentlet\" [container]=\"$dotContainerAsString()\">\n <ng-container\n *ngComponentOutlet=\"\n (componentsMap[contentlet.contentType] | async) || NoComponent;\n inputs: { contentlet }\n \" />\n</dotcms-contentlet-wrapper>\n} } @else { This container is empty. } } @else { @for (contentlet of $contentlets(); track $index) {\n<ng-container\n *ngComponentOutlet=\"\n (componentsMap[contentlet.contentType] | async) || NoComponent;\n inputs: { contentlet }\n \" />\n} }\n", styles: [":host.empty-container{width:100%;background-color:#ecf0fd;display:flex;justify-content:center;align-items:center;color:#030e32;height:10rem}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: ContentletComponent, selector: "dotcms-contentlet-wrapper", inputs: ["contentlet", "container"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
223
+ }
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: ContainerComponent, decorators: [{
225
+ type: Component,
226
+ args: [{ selector: 'dotcms-container', standalone: true, imports: [AsyncPipe, NgComponentOutlet, NoComponent, ContentletComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if ($isInsideEditor()) { @if($contentlets().length){ @for (contentlet of $contentlets(); track\n$index) {\n\n<dotcms-contentlet-wrapper [contentlet]=\"contentlet\" [container]=\"$dotContainerAsString()\">\n <ng-container\n *ngComponentOutlet=\"\n (componentsMap[contentlet.contentType] | async) || NoComponent;\n inputs: { contentlet }\n \" />\n</dotcms-contentlet-wrapper>\n} } @else { This container is empty. } } @else { @for (contentlet of $contentlets(); track $index) {\n<ng-container\n *ngComponentOutlet=\"\n (componentsMap[contentlet.contentType] | async) || NoComponent;\n inputs: { contentlet }\n \" />\n} }\n", styles: [":host.empty-container{width:100%;background-color:#ecf0fd;display:flex;justify-content:center;align-items:center;color:#030e32;height:10rem}\n"] }]
227
+ }], propDecorators: { container: [{
228
+ type: Input,
229
+ args: [{ required: true }]
230
+ }], acceptTypes: [{
231
+ type: HostBinding,
232
+ args: ['attr.data-dot-accept-types']
233
+ }], identifier: [{
234
+ type: HostBinding,
235
+ args: ['attr.data-dot-identifier']
236
+ }], maxContentlets: [{
237
+ type: HostBinding,
238
+ args: ['attr.data-max-contentlets']
239
+ }], uuid: [{
240
+ type: HostBinding,
241
+ args: ['attr.data-dot-uuid']
242
+ }], class: [{
243
+ type: HostBinding,
244
+ args: ['class']
245
+ }], dotObject: [{
246
+ type: HostBinding,
247
+ args: ['attr.data-dot-object']
248
+ }], testId: [{
249
+ type: HostBinding,
250
+ args: ['attr.data-testid']
251
+ }] } });
252
+
253
+ class ColumnComponent {
254
+ constructor() {
255
+ this.containerClasses = '';
256
+ }
257
+ ngOnInit() {
258
+ const { startClass, endClass } = getPositionStyleClasses(this.column.leftOffset, this.column.width + this.column.leftOffset);
259
+ this.containerClasses = `${startClass} ${endClass}`;
260
+ }
261
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: ColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
262
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: ColumnComponent, isStandalone: true, selector: "dotcms-column", inputs: { column: "column" }, host: { properties: { "class": "this.containerClasses" } }, ngImport: i0, template: `
263
+ @for(container of column.containers; track $index) {
264
+ <dotcms-container [container]="container" />
265
+ }
266
+ `, isInline: true, styles: [":host.col-start-1{grid-column-start:1}:host.col-start-2{grid-column-start:2}:host.col-start-3{grid-column-start:3}:host.col-start-4{grid-column-start:4}:host.col-start-5{grid-column-start:5}:host.col-start-6{grid-column-start:6}:host.col-start-7{grid-column-start:7}:host.col-start-8{grid-column-start:8}:host.col-start-9{grid-column-start:9}:host.col-start-10{grid-column-start:10}:host.col-start-11{grid-column-start:11}:host.col-start-12{grid-column-start:12}:host.col-end-1{grid-column-end:1}:host.col-end-2{grid-column-end:2}:host.col-end-3{grid-column-end:3}:host.col-end-4{grid-column-end:4}:host.col-end-5{grid-column-end:5}:host.col-end-6{grid-column-end:6}:host.col-end-7{grid-column-end:7}:host.col-end-8{grid-column-end:8}:host.col-end-9{grid-column-end:9}:host.col-end-10{grid-column-end:10}:host.col-end-11{grid-column-end:11}:host.col-end-12{grid-column-end:12}:host.col-end-13{grid-column-end:13}\n"], dependencies: [{ kind: "component", type: ContainerComponent, selector: "dotcms-container", inputs: ["container"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
267
+ }
268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: ColumnComponent, decorators: [{
269
+ type: Component,
270
+ args: [{ selector: 'dotcms-column', standalone: true, imports: [ContainerComponent], template: `
271
+ @for(container of column.containers; track $index) {
272
+ <dotcms-container [container]="container" />
273
+ }
274
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host.col-start-1{grid-column-start:1}:host.col-start-2{grid-column-start:2}:host.col-start-3{grid-column-start:3}:host.col-start-4{grid-column-start:4}:host.col-start-5{grid-column-start:5}:host.col-start-6{grid-column-start:6}:host.col-start-7{grid-column-start:7}:host.col-start-8{grid-column-start:8}:host.col-start-9{grid-column-start:9}:host.col-start-10{grid-column-start:10}:host.col-start-11{grid-column-start:11}:host.col-start-12{grid-column-start:12}:host.col-end-1{grid-column-end:1}:host.col-end-2{grid-column-end:2}:host.col-end-3{grid-column-end:3}:host.col-end-4{grid-column-end:4}:host.col-end-5{grid-column-end:5}:host.col-end-6{grid-column-end:6}:host.col-end-7{grid-column-end:7}:host.col-end-8{grid-column-end:8}:host.col-end-9{grid-column-end:9}:host.col-end-10{grid-column-end:10}:host.col-end-11{grid-column-end:11}:host.col-end-12{grid-column-end:12}:host.col-end-13{grid-column-end:13}\n"] }]
275
+ }], propDecorators: { column: [{
276
+ type: Input
277
+ }], containerClasses: [{
278
+ type: HostBinding,
279
+ args: ['class']
280
+ }] } });
281
+
282
+ class RowComponent {
283
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: RowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
284
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: RowComponent, isStandalone: true, selector: "dotcms-row", inputs: { row: "row" }, ngImport: i0, template: `@for(column of row.columns; track $index) {
285
+ <dotcms-column [column]="column" />
286
+ }`, isInline: true, styles: [":host{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;row-gap:1rem}\n"], dependencies: [{ kind: "component", type: ColumnComponent, selector: "dotcms-column", inputs: ["column"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
287
+ }
288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: RowComponent, decorators: [{
289
+ type: Component,
290
+ args: [{ selector: 'dotcms-row', standalone: true, imports: [ColumnComponent], template: `@for(column of row.columns; track $index) {
291
+ <dotcms-column [column]="column" />
292
+ }`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;row-gap:1rem}\n"] }]
293
+ }], propDecorators: { row: [{
294
+ type: Input,
295
+ args: [{ required: true }]
296
+ }] } });
297
+
298
+ /**
299
+ * `DotcmsLayoutComponent` is a class that represents the layout for a DotCMS page.
300
+ * It includes a `pageAsset` property that represents the DotCMS page asset and a `components` property that represents the dynamic components for the page.
301
+ *
302
+ * @export
303
+ * @class DotcmsLayoutComponent
304
+ */
305
+ class DotcmsLayoutComponent {
306
+ constructor() {
307
+ this.route = inject(ActivatedRoute);
308
+ this.router = inject(Router);
309
+ this.pageContextService = inject(PageContextService);
310
+ this.destroyRef$ = inject(DestroyRef);
311
+ }
312
+ ngOnInit() {
313
+ this.route.url
314
+ .pipe(takeUntilDestroyed(this.destroyRef$), filter(() => isInsideEditor()))
315
+ .subscribe((urlSegments) => {
316
+ const pathname = '/' + urlSegments.join('/');
317
+ const config = {
318
+ pathname,
319
+ onReload: () => {
320
+ // Reload the page when the user edit the page
321
+ this.router.navigate([pathname], {
322
+ onSameUrlNavigation: 'reload' // Force Angular to reload the page
323
+ });
324
+ }
325
+ };
326
+ initEditor(config);
327
+ updateNavigation(pathname || '/');
328
+ });
329
+ }
330
+ ngOnChanges() {
331
+ //Each time the layout changes, we need to update the context
332
+ this.pageContextService.setContext(this.pageAsset, this.components);
333
+ }
334
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: DotcmsLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
335
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: DotcmsLayoutComponent, isStandalone: true, selector: "dotcms-layout", inputs: { pageAsset: "pageAsset", components: "components" }, usesOnChanges: true, ngImport: i0, template: `@for(row of pageAsset.layout.body.rows; track $index) {
336
+ <dotcms-row [row]="row" />
337
+ }`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: RowComponent, selector: "dotcms-row", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
338
+ }
339
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: DotcmsLayoutComponent, decorators: [{
340
+ type: Component,
341
+ args: [{ selector: 'dotcms-layout', standalone: true, imports: [RowComponent], template: `@for(row of pageAsset.layout.body.rows; track $index) {
342
+ <dotcms-row [row]="row" />
343
+ }`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
344
+ }], propDecorators: { pageAsset: [{
345
+ type: Input,
346
+ args: [{ required: true }]
347
+ }], components: [{
348
+ type: Input,
349
+ args: [{ required: true }]
350
+ }] } });
351
+
352
+ /* eslint-disable @typescript-eslint/no-explicit-any */
353
+
354
+ /* eslint-disable @typescript-eslint/no-explicit-any */
355
+
356
+ /**
357
+ * Generated bundle index. Do not edit.
358
+ */
359
+
360
+ export { DotcmsLayoutComponent, PageContextService };
361
+ //# sourceMappingURL=dotcms-angular.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotcms-angular.mjs","sources":["../../../../../libs/sdk/angular/src/lib/services/dotcms-context/page-context.service.ts","../../../../../libs/sdk/angular/src/lib/utils/index.ts","../../../../../libs/sdk/angular/src/lib/components/no-component/no-component.component.ts","../../../../../libs/sdk/angular/src/lib/layout/contentlet/contentlet.component.ts","../../../../../libs/sdk/angular/src/lib/layout/container/container.component.ts","../../../../../libs/sdk/angular/src/lib/layout/container/container.component.html","../../../../../libs/sdk/angular/src/lib/layout/column/column.component.ts","../../../../../libs/sdk/angular/src/lib/layout/row/row.component.ts","../../../../../libs/sdk/angular/src/lib/layout/dotcms-layout/dotcms-layout.component.ts","../../../../../libs/sdk/angular/src/lib/models/dotcms.model.ts","../../../../../libs/sdk/angular/src/lib/models/index.ts","../../../../../libs/sdk/angular/src/dotcms-angular.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Injectable } from '@angular/core';\n\nimport { isInsideEditor } from '@dotcms/client';\n\nimport { DotCMSPageComponent, DotCMSPageContext } from '../../models';\nimport { DotCMSPageAsset } from '../../models/dotcms.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PageContextService {\n private pageContext: DotCMSPageContext | null = null;\n\n get pageContextValue(): DotCMSPageContext {\n return this.pageContext as DotCMSPageContext;\n }\n\n /**\n * Set the context\n *\n * @protected\n * @param {DotCMSPageAsset} value\n * @memberof DotcmsContextService\n */\n setContext(pageAsset: DotCMSPageAsset, components: DotCMSPageComponent) {\n this.pageContext = {\n components,\n pageAsset,\n isInsideEditor: isInsideEditor()\n };\n }\n}\n","import { DotCMSContainer, DotCMSPageAssetContainer } from '../models/dotcms.model';\n\n//Changed the type, to avoid SQ issue.\n//This should be put inside a lib\nconst endClassMap: Record<number, string | null> = {\n 1: 'col-end-1',\n 2: 'col-end-2',\n 3: 'col-end-3',\n 4: 'col-end-4',\n 5: 'col-end-5',\n 6: 'col-end-6',\n 7: 'col-end-7',\n 8: 'col-end-8',\n 9: 'col-end-9',\n 10: 'col-end-10',\n 11: 'col-end-11',\n 12: 'col-end-12',\n 13: 'col-end-13'\n};\n\n//Changed the type, to avoid SQ issue.\n//This should be put inside a lib\nconst startClassMap: Record<number, string | null> = {\n 1: 'col-start-1',\n 2: 'col-start-2',\n 3: 'col-start-3',\n 4: 'col-start-4',\n 5: 'col-start-5',\n 6: 'col-start-6',\n 7: 'col-start-7',\n 8: 'col-start-8',\n 9: 'col-start-9',\n 10: 'col-start-10',\n 11: 'col-start-11',\n 12: 'col-start-12'\n};\n\nexport const getContainersData = (\n containers: DotCMSPageAssetContainer,\n containerRef: DotCMSContainer\n) => {\n const { identifier, uuid } = containerRef;\n\n const { containerStructures, container } = containers[identifier];\n\n const { variantId } = container?.parentPermissionable || {};\n\n const acceptTypes: string = containerStructures\n .map((structure) => structure.contentTypeVar)\n .join(',');\n\n const contentlets = containers[identifier].contentlets[`uuid-${uuid}`];\n\n return {\n ...containers[identifier].container,\n acceptTypes,\n contentlets,\n variantId\n };\n};\n\nexport const getPositionStyleClasses = (start: number, end: number) => {\n const startClass = startClassMap[start];\n const endClass = endClassMap[end];\n\n return {\n startClass,\n endClass\n };\n};\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { DotCMSContentlet } from '../../models';\n\n/**\n * This is part of the Angular SDK.\n * This is a component for the `NoComponentComponent` component.\n */\n@Component({\n selector: 'dotcms-no-component',\n standalone: true,\n template: `No Component for {{ contentlet.contentType }}`,\n styleUrl: './no-component.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NoComponent {\n @Input() contentlet!: DotCMSContentlet;\n @HostBinding('attr.data-testid') testId = 'no-component';\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges } from '@angular/core';\n\nimport { DotCMSContentlet } from '../../models';\n\n@Component({\n selector: 'dotcms-contentlet-wrapper',\n standalone: true,\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ContentletComponent implements OnChanges {\n @Input({ required: true }) contentlet!: DotCMSContentlet;\n @Input() container!: string;\n\n @HostBinding('attr.data-dot-identifier') identifier: string | null = null;\n @HostBinding('attr.data-dot-basetype') baseType: string | null = null;\n @HostBinding('attr.data-dot-title') title: string | null = null;\n @HostBinding('attr.data-dot-inode') inode: string | null = null;\n @HostBinding('attr.data-dot-type') dotType: string | null = null;\n @HostBinding('attr.data-dot-container') dotContainer: string | null = null;\n @HostBinding('attr.data-dot-on-number-of-pages') numberOfPages: string | null = null;\n @HostBinding('attr.data-dot-object') dotContent: string | null = null;\n\n ngOnChanges() {\n this.identifier = this.contentlet.identifier;\n this.baseType = this.contentlet.baseType;\n this.title = this.contentlet.title;\n this.inode = this.contentlet.inode;\n this.dotType = this.contentlet.contentType;\n this.dotContainer = this.container;\n this.numberOfPages = this.contentlet['onNumberOfPages'];\n this.dotContent = 'contentlet';\n }\n}\n","import { AsyncPipe, NgComponentOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnChanges,\n computed,\n inject,\n signal\n} from '@angular/core';\n\nimport { NoComponent } from '../../components/no-component/no-component.component';\nimport { DynamicComponentEntity } from '../../models';\nimport { DotCMSContainer, DotCMSContentlet } from '../../models/dotcms.model';\nimport { PageContextService } from '../../services/dotcms-context/page-context.service';\nimport { getContainersData } from '../../utils';\nimport { ContentletComponent } from '../contentlet/contentlet.component';\n\ninterface DotContainer {\n acceptTypes: string;\n identifier: string;\n maxContentlets: number;\n uuid: string;\n variantId?: string;\n}\n\n@Component({\n selector: 'dotcms-container',\n standalone: true,\n imports: [AsyncPipe, NgComponentOutlet, NoComponent, ContentletComponent],\n templateUrl: './container.component.html',\n styleUrl: './container.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ContainerComponent implements OnChanges {\n @Input({ required: true }) container!: DotCMSContainer;\n\n private readonly pageContextService: PageContextService = inject(PageContextService);\n protected readonly NoComponent = NoComponent;\n protected readonly $isInsideEditor = signal<boolean>(false);\n\n protected componentsMap!: Record<string, DynamicComponentEntity>;\n protected $contentlets = signal<DotCMSContentlet[]>([]);\n protected $dotContainer = signal<DotContainer | null>(null);\n protected $dotContainerAsString = computed(() => JSON.stringify(this.$dotContainer()));\n\n @HostBinding('attr.data-dot-accept-types') acceptTypes: string | null = null;\n @HostBinding('attr.data-dot-identifier') identifier: string | null = null;\n @HostBinding('attr.data-max-contentlets') maxContentlets: number | null = null;\n @HostBinding('attr.data-dot-uuid') uuid: string | null = null;\n @HostBinding('class') class: string | null = null;\n @HostBinding('attr.data-dot-object') dotObject: string | null = null;\n @HostBinding('attr.data-testid') testId = 'dot-container';\n\n ngOnChanges() {\n const {\n pageAsset: { containers },\n components,\n isInsideEditor\n } = this.pageContextService.pageContextValue;\n const { acceptTypes, maxContentlets, variantId, path, contentlets } = getContainersData(\n containers,\n this.container\n );\n const { identifier, uuid } = this.container;\n\n this.componentsMap = components;\n\n this.$isInsideEditor.set(isInsideEditor);\n this.$contentlets.set(contentlets);\n this.$dotContainer.set({\n identifier: path ?? identifier,\n acceptTypes,\n maxContentlets,\n variantId,\n uuid\n });\n\n if (this.$isInsideEditor()) {\n this.acceptTypes = acceptTypes;\n this.identifier = identifier;\n this.maxContentlets = maxContentlets;\n this.uuid = uuid;\n this.class = this.$contentlets().length ? null : 'empty-container';\n this.dotObject = 'container';\n }\n }\n}\n","@if ($isInsideEditor()) { @if($contentlets().length){ @for (contentlet of $contentlets(); track\n$index) {\n\n<dotcms-contentlet-wrapper [contentlet]=\"contentlet\" [container]=\"$dotContainerAsString()\">\n <ng-container\n *ngComponentOutlet=\"\n (componentsMap[contentlet.contentType] | async) || NoComponent;\n inputs: { contentlet }\n \" />\n</dotcms-contentlet-wrapper>\n} } @else { This container is empty. } } @else { @for (contentlet of $contentlets(); track $index) {\n<ng-container\n *ngComponentOutlet=\"\n (componentsMap[contentlet.contentType] | async) || NoComponent;\n inputs: { contentlet }\n \" />\n} }\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit } from '@angular/core';\n\nimport { DotPageAssetLayoutColumn } from '../../models';\nimport { getPositionStyleClasses } from '../../utils';\nimport { ContainerComponent } from '../container/container.component';\n\n@Component({\n selector: 'dotcms-column',\n standalone: true,\n imports: [ContainerComponent],\n template: `\n @for(container of column.containers; track $index) {\n <dotcms-container [container]=\"container\" />\n }\n `,\n styleUrl: './column.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ColumnComponent implements OnInit {\n @Input() column!: DotPageAssetLayoutColumn;\n @HostBinding('class') containerClasses = '';\n\n ngOnInit() {\n const { startClass, endClass } = getPositionStyleClasses(\n this.column.leftOffset,\n this.column.width + this.column.leftOffset\n );\n this.containerClasses = `${startClass} ${endClass}`;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { DotPageAssetLayoutRow } from '../../models';\nimport { ColumnComponent } from '../column/column.component';\n\n@Component({\n selector: 'dotcms-row',\n standalone: true,\n imports: [ColumnComponent],\n template: `@for(column of row.columns; track $index) {\n <dotcms-column [column]=\"column\" />\n }`,\n styleUrl: './row.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RowComponent {\n @Input({ required: true }) row!: DotPageAssetLayoutRow;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Input,\n OnInit,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { filter } from 'rxjs/operators';\n\nimport { initEditor, isInsideEditor, updateNavigation } from '@dotcms/client';\n\nimport { DynamicComponentEntity } from '../../models';\nimport { DotCMSPageAsset } from '../../models/dotcms.model';\nimport { PageContextService } from '../../services/dotcms-context/page-context.service';\nimport { RowComponent } from '../row/row.component';\n\n/**\n * `DotcmsLayoutComponent` is a class that represents the layout for a DotCMS page.\n * It includes a `pageAsset` property that represents the DotCMS page asset and a `components` property that represents the dynamic components for the page.\n *\n * @export\n * @class DotcmsLayoutComponent\n */\n@Component({\n selector: 'dotcms-layout',\n standalone: true,\n imports: [RowComponent],\n template: `@for(row of pageAsset.layout.body.rows; track $index) {\n <dotcms-row [row]=\"row\" />\n }`,\n styleUrl: './dotcms-layout.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DotcmsLayoutComponent implements OnInit {\n @Input({ required: true }) pageAsset!: DotCMSPageAsset;\n @Input({ required: true }) components!: Record<string, DynamicComponentEntity>;\n\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly pageContextService = inject(PageContextService);\n private readonly destroyRef$ = inject(DestroyRef);\n\n ngOnInit() {\n this.route.url\n .pipe(\n takeUntilDestroyed(this.destroyRef$),\n filter(() => isInsideEditor())\n )\n .subscribe((urlSegments) => {\n const pathname = '/' + urlSegments.join('/');\n const config = {\n pathname,\n onReload: () => {\n // Reload the page when the user edit the page\n this.router.navigate([pathname], {\n onSameUrlNavigation: 'reload' // Force Angular to reload the page\n });\n }\n };\n initEditor(config);\n updateNavigation(pathname || '/');\n });\n }\n\n ngOnChanges() {\n //Each time the layout changes, we need to update the context\n this.pageContextService.setContext(this.pageAsset, this.components);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport interface DotCMSPageAsset {\n canCreateTemplate: boolean;\n containers: DotCMSPageAssetContainer;\n layout: DotCMSLayout;\n page: DotCMSPage;\n site: DotCMSSite;\n template: DotCMSTemplate;\n viewAs: DotCMSViewAs;\n}\n\nexport interface DotPageAssetLayoutRow {\n identifier: number;\n value?: string;\n id?: string;\n columns: DotPageAssetLayoutColumn[];\n styleClass?: string;\n}\n\nexport interface DotPageAssetLayoutColumn {\n preview: boolean;\n containers: DotCMSContainer[];\n widthPercent: number;\n width: number;\n leftOffset: number;\n left: number;\n styleClass?: string;\n}\n\nexport interface DotCMSPageAssetContainer {\n [key: string]: {\n container: DotCMSContainer;\n containerStructures: DotCMSContainerStructure[];\n contentlets: {\n [key: string]: DotCMSContentlet[];\n };\n };\n}\n\nexport interface DotCMSContainer {\n identifier: string;\n uuid: string;\n iDate: number;\n type: string;\n owner?: string;\n inode: string;\n source: string;\n title: string;\n friendlyName: string;\n modDate: number;\n modUser: string;\n sortOrder: number;\n showOnMenu: boolean;\n code?: string;\n maxContentlets: number;\n useDiv: boolean;\n sortContentletsBy?: string;\n preLoop: string;\n postLoop: string;\n staticify: boolean;\n luceneQuery?: string;\n notes: string;\n languageId?: number;\n path?: string;\n live: boolean;\n locked: boolean;\n working: boolean;\n deleted: boolean;\n name: string;\n archived: boolean;\n permissionId: string;\n versionId: string;\n versionType: string;\n permissionType: string;\n categoryId: string;\n idate: number;\n new: boolean;\n acceptTypes: string;\n contentlets: DotCMSContentlet[];\n parentPermissionable: DotCMSSiteParentPermissionable;\n}\n\nexport interface DotCMSContentlet {\n archived: boolean;\n baseType: string;\n deleted?: boolean;\n binary?: string;\n binaryContentAsset?: string;\n binaryVersion?: string;\n contentType: string;\n file?: string;\n folder: string;\n hasLiveVersion?: boolean;\n hasTitleImage: boolean;\n host: string;\n hostName: string;\n identifier: string;\n inode: string;\n image?: string;\n languageId: number;\n language?: string;\n live: boolean;\n locked: boolean;\n mimeType?: string;\n modDate: string;\n modUser: string;\n modUserName: string;\n owner: string;\n sortOrder: number;\n stInode: string;\n title: string;\n titleImage: string;\n text?: string;\n url: string;\n working: boolean;\n body?: string;\n contentTypeIcon?: string;\n variant?: string;\n __icon__?: string;\n [key: string]: any; // This is a catch-all for any other custom properties that might be on the contentlet.\n}\n\nexport interface DotcmsNavigationItem {\n code?: any;\n folder: string;\n children?: DotcmsNavigationItem[];\n host: string;\n languageId: number;\n href: string;\n title: string;\n type: string;\n hash: number;\n target: string;\n order: number;\n}\n\ninterface DotCMSTemplate {\n iDate: number;\n type: string;\n owner: string;\n inode: string;\n identifier: string;\n source: string;\n title: string;\n friendlyName: string;\n modDate: number;\n modUser: string;\n sortOrder: number;\n showOnMenu: boolean;\n image: string;\n drawed: boolean;\n drawedBody: string;\n theme: string;\n anonymous: boolean;\n template: boolean;\n name: string;\n live: boolean;\n archived: boolean;\n locked: boolean;\n working: boolean;\n permissionId: string;\n versionId: string;\n versionType: string;\n deleted: boolean;\n permissionType: string;\n categoryId: string;\n idate: number;\n new: boolean;\n canEdit: boolean;\n}\n\ninterface DotCMSPage {\n template: string;\n modDate: number;\n metadata: string;\n cachettl: string;\n pageURI: string;\n title: string;\n type: string;\n showOnMenu: string;\n httpsRequired: boolean;\n inode: string;\n disabledWYSIWYG: any[];\n seokeywords: string;\n host: string;\n lastReview: number;\n working: boolean;\n locked: boolean;\n stInode: string;\n friendlyName: string;\n live: boolean;\n owner: string;\n identifier: string;\n nullProperties: any[];\n friendlyname: string;\n pagemetadata: string;\n languageId: number;\n url: string;\n seodescription: string;\n modUserName: string;\n folder: string;\n deleted: boolean;\n sortOrder: number;\n modUser: string;\n pageUrl: string;\n workingInode: string;\n shortyWorking: string;\n canEdit: boolean;\n canRead: boolean;\n canLock: boolean;\n lockedOn: number;\n lockedBy: string;\n lockedByName: string;\n liveInode: string;\n shortyLive: string;\n}\n\ninterface DotCMSViewAs {\n language: {\n id: number;\n languageCode: string;\n countryCode: string;\n language: string;\n country: string;\n };\n mode: string;\n}\n\ninterface DotCMSLayout {\n pageWidth: string;\n width: string;\n layout: string;\n title: string;\n header: boolean;\n footer: boolean;\n body: DotPageAssetLayoutBody;\n sidebar: DotPageAssetLayoutSidebar;\n}\n\ninterface DotCMSContainerStructure {\n id: string;\n structureId: string;\n containerInode: string;\n containerId: string;\n code: string;\n contentTypeVar: string;\n}\n\ninterface DotPageAssetLayoutSidebar {\n preview: boolean;\n containers: DotCMSContainer[];\n location: string;\n widthPercent: number;\n width: string;\n}\n\ninterface DotPageAssetLayoutBody {\n rows: DotPageAssetLayoutRow[];\n}\n\ninterface DotCMSSite {\n lowIndexPriority: boolean;\n name: string;\n default: boolean;\n aliases: string;\n parent: boolean;\n tagStorage: string;\n systemHost: boolean;\n inode: string;\n versionType: string;\n structureInode: string;\n hostname: string;\n hostThumbnail?: any;\n owner: string;\n permissionId: string;\n permissionType: string;\n type: string;\n identifier: string;\n modDate: number;\n host: string;\n live: boolean;\n indexPolicy: string;\n categoryId: string;\n actionId?: any;\n new: boolean;\n archived: boolean;\n locked: boolean;\n disabledWysiwyg: any[];\n modUser: string;\n working: boolean;\n titleImage: {\n present: boolean;\n };\n folder: string;\n htmlpage: boolean;\n fileAsset: boolean;\n vanityUrl: boolean;\n keyValue: boolean;\n structure?: DotCMSSiteStructure;\n title: string;\n languageId: number;\n indexPolicyDependencies: string;\n contentTypeId: string;\n versionId: string;\n lastReview: number;\n nextReview?: any;\n reviewInterval?: any;\n sortOrder: number;\n contentType: DotCMSSiteContentType;\n}\n\ninterface DotCMSSiteContentType {\n owner?: any;\n parentPermissionable: DotCMSSiteParentPermissionable;\n permissionId: string;\n permissionType: string;\n}\n\nexport interface DotCMSSiteParentPermissionable {\n Inode: string;\n Identifier: string;\n permissionByIdentifier: boolean;\n type: string;\n owner?: any;\n identifier: string;\n permissionId: string;\n parentPermissionable?: any;\n permissionType: string;\n inode: string;\n childrenPermissionable?: any;\n variantId?: string;\n}\n\ninterface DotCMSSiteStructure {\n iDate: number;\n type: string;\n owner?: any;\n inode: string;\n identifier: string;\n name: string;\n description: string;\n defaultStructure: boolean;\n reviewInterval?: any;\n reviewerRole?: any;\n pagedetail?: any;\n structureType: number;\n fixed: boolean;\n system: boolean;\n velocityVarName: string;\n urlMapPattern?: any;\n host: string;\n folder: string;\n publishDateVar?: any;\n expireDateVar?: any;\n modDate: number;\n fields: DotCMSSiteField[];\n widget: boolean;\n detailPage?: any;\n fieldsBySortOrder: DotCMSSiteField[];\n form: boolean;\n htmlpageAsset: boolean;\n content: boolean;\n fileAsset: boolean;\n persona: boolean;\n permissionId: string;\n permissionType: string;\n live: boolean;\n categoryId: string;\n idate: number;\n new: boolean;\n archived: boolean;\n locked: boolean;\n modUser: string;\n working: boolean;\n title: string;\n versionId: string;\n versionType: string;\n}\n\ninterface DotCMSSiteField {\n iDate: number;\n type: string;\n owner?: any;\n inode: string;\n identifier: string;\n structureInode: string;\n fieldName: string;\n fieldType: string;\n fieldRelationType?: any;\n fieldContentlet: string;\n required: boolean;\n velocityVarName: string;\n sortOrder: number;\n values?: any;\n regexCheck?: any;\n hint?: any;\n defaultValue?: any;\n indexed: boolean;\n listed: boolean;\n fixed: boolean;\n readOnly: boolean;\n searchable: boolean;\n unique: boolean;\n modDate: number;\n dataType: string;\n live: boolean;\n categoryId: string;\n idate: number;\n new: boolean;\n archived: boolean;\n locked: boolean;\n modUser: string;\n working: boolean;\n permissionId: string;\n parentPermissionable?: any;\n permissionType: string;\n title: string;\n versionId: string;\n versionType: string;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport * from './dotcms.model';\n\nimport { Type } from '@angular/core';\n\nimport { DotCMSPageAsset } from './dotcms.model';\n\nexport type DynamicComponentEntity = Promise<Type<any>>;\n\nexport interface DotCMSPageContext {\n pageAsset: DotCMSPageAsset;\n components: DotCMSPageComponent;\n isInsideEditor: boolean;\n}\n\nexport type DotCMSPageComponent = Record<string, DynamicComponentEntity>;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from './lib/layout/dotcms-layout/dotcms-layout.component';
2
+ export * from './lib/services/dotcms-context/page-context.service';
3
+ export * from './lib/models';
4
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../libs/sdk/angular/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oDAAoD,CAAC;AACnE,cAAc,oDAAoD,CAAC;AACnE,cAAc,cAAc,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { DotCMSContentlet } from '../../models';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * This is part of the Angular SDK.
5
+ * This is a component for the `NoComponentComponent` component.
6
+ */
7
+ export declare class NoComponent {
8
+ contentlet: DotCMSContentlet;
9
+ testId: string;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<NoComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<NoComponent, "dotcms-no-component", never, { "contentlet": { "alias": "contentlet"; "required": false; }; }, {}, never, never, true, never>;
12
+ }
13
+ //# sourceMappingURL=no-component.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-component.component.d.ts","sourceRoot":"","sources":["../../../../../../../libs/sdk/angular/src/lib/components/no-component/no-component.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;;AAEhD;;;GAGG;AACH,qBAOa,WAAW;IACX,UAAU,EAAG,gBAAgB,CAAC;IACN,MAAM,SAAkB;yCAFhD,WAAW;2CAAX,WAAW;CAGvB"}
@@ -0,0 +1,11 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { DotPageAssetLayoutColumn } from '../../models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ColumnComponent implements OnInit {
5
+ column: DotPageAssetLayoutColumn;
6
+ containerClasses: string;
7
+ ngOnInit(): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnComponent, "dotcms-column", never, { "column": { "alias": "column"; "required": false; }; }, {}, never, never, true, never>;
10
+ }
11
+ //# sourceMappingURL=column.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.component.d.ts","sourceRoot":"","sources":["../../../../../../../libs/sdk/angular/src/lib/layout/column/column.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0D,MAAM,EAAE,MAAM,eAAe,CAAC;AAE/F,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;;AAIxD,qBAYa,eAAgB,YAAW,MAAM;IACjC,MAAM,EAAG,wBAAwB,CAAC;IACrB,gBAAgB,SAAM;IAE5C,QAAQ;yCAJC,eAAe;2CAAf,eAAe;CAW3B"}
@@ -0,0 +1,34 @@
1
+ import { OnChanges } from '@angular/core';
2
+ import { NoComponent } from '../../components/no-component/no-component.component';
3
+ import { DynamicComponentEntity } from '../../models';
4
+ import { DotCMSContainer, DotCMSContentlet } from '../../models/dotcms.model';
5
+ import * as i0 from "@angular/core";
6
+ interface DotContainer {
7
+ acceptTypes: string;
8
+ identifier: string;
9
+ maxContentlets: number;
10
+ uuid: string;
11
+ variantId?: string;
12
+ }
13
+ export declare class ContainerComponent implements OnChanges {
14
+ container: DotCMSContainer;
15
+ private readonly pageContextService;
16
+ protected readonly NoComponent: typeof NoComponent;
17
+ protected readonly $isInsideEditor: import("@angular/core").WritableSignal<boolean>;
18
+ protected componentsMap: Record<string, DynamicComponentEntity>;
19
+ protected $contentlets: import("@angular/core").WritableSignal<DotCMSContentlet[]>;
20
+ protected $dotContainer: import("@angular/core").WritableSignal<DotContainer | null>;
21
+ protected $dotContainerAsString: import("@angular/core").Signal<string>;
22
+ acceptTypes: string | null;
23
+ identifier: string | null;
24
+ maxContentlets: number | null;
25
+ uuid: string | null;
26
+ class: string | null;
27
+ dotObject: string | null;
28
+ testId: string;
29
+ ngOnChanges(): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<ContainerComponent, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<ContainerComponent, "dotcms-container", never, { "container": { "alias": "container"; "required": true; }; }, {}, never, never, true, never>;
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=container.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.component.d.ts","sourceRoot":"","sources":["../../../../../../../libs/sdk/angular/src/lib/layout/container/container.component.ts"],"names":[],"mappings":"AACA,OAAO,EAKH,SAAS,EAIZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;;AAK9E,UAAU,YAAY;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAQa,kBAAmB,YAAW,SAAS;IACrB,SAAS,EAAG,eAAe,CAAC;IAEvD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAkD;IACrF,SAAS,CAAC,QAAQ,CAAC,WAAW,qBAAe;IAC7C,SAAS,CAAC,QAAQ,CAAC,eAAe,kDAA0B;IAE5D,SAAS,CAAC,aAAa,EAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACjE,SAAS,CAAC,YAAY,6DAAkC;IACxD,SAAS,CAAC,aAAa,8DAAqC;IAC5D,SAAS,CAAC,qBAAqB,yCAAwD;IAE5C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IACpC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAQ;IACxC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IACpC,MAAM,SAAmB;IAE1D,WAAW;yCApBF,kBAAkB;2CAAlB,kBAAkB;CAqD9B"}
@@ -0,0 +1,19 @@
1
+ import { OnChanges } from '@angular/core';
2
+ import { DotCMSContentlet } from '../../models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ContentletComponent implements OnChanges {
5
+ contentlet: DotCMSContentlet;
6
+ container: string;
7
+ identifier: string | null;
8
+ baseType: string | null;
9
+ title: string | null;
10
+ inode: string | null;
11
+ dotType: string | null;
12
+ dotContainer: string | null;
13
+ numberOfPages: string | null;
14
+ dotContent: string | null;
15
+ ngOnChanges(): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<ContentletComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<ContentletComponent, "dotcms-contentlet-wrapper", never, { "contentlet": { "alias": "contentlet"; "required": true; }; "container": { "alias": "container"; "required": false; }; }, {}, never, ["*"], true, never>;
18
+ }
19
+ //# sourceMappingURL=contentlet.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentlet.component.d.ts","sourceRoot":"","sources":["../../../../../../../libs/sdk/angular/src/lib/layout/contentlet/contentlet.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0D,SAAS,EAAE,MAAM,eAAe,CAAC;AAElG,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;;AAEhD,qBAMa,mBAAoB,YAAW,SAAS;IACtB,UAAU,EAAG,gBAAgB,CAAC;IAChD,SAAS,EAAG,MAAM,CAAC;IAEa,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEtE,WAAW;yCAbF,mBAAmB;2CAAnB,mBAAmB;CAuB/B"}