@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
package/README.md ADDED
@@ -0,0 +1,134 @@
1
+ # @dotcms/angular
2
+
3
+ `@dotcms/angular` is the official set of Angular components, services and resolver designed to work seamlessly with dotCMS, making it easy to render dotCMS pages an use the page builder
4
+
5
+ ## Features
6
+
7
+ - A collection of Angular components, services and resolver tailored to render
8
+ dotCMS pages.
9
+ - Streamlined integration with dotCMS page editor.
10
+ - Improved development experience with comprehensive TypeScript typings.
11
+
12
+ ## Installation
13
+
14
+ Install the package via npm:
15
+
16
+ ```bash
17
+ npm install @dotcms/angular
18
+ ```
19
+
20
+ Or using Yarn:
21
+
22
+ ```bash
23
+ yarn add @dotcms/angular
24
+ ```
25
+
26
+ ## Provider
27
+ ```
28
+ const DOTCMS_CLIENT_CONFIG: ClientConfig = {
29
+ dotcmsUrl: environment.dotcmsUrl,
30
+ authToken: environment.authToken,
31
+ siteId: environment.siteId
32
+ };
33
+ ```
34
+ Add the dotcms config in the Angular app ApplicationConfig
35
+ ```
36
+ export const appConfig: ApplicationConfig = {
37
+ providers: [
38
+ provideDotcmsClient(DOTCMS_CLIENT_CONFIG),
39
+ provideRouter(routes),
40
+ ],
41
+ };
42
+ ```
43
+ ## Resolver
44
+ ```javascript
45
+ export const routes: Routes = [
46
+ {
47
+ path: '**',
48
+ resolve: {
49
+ // This should be called `context`.
50
+ context: DotCMSPageResolver,
51
+ },
52
+ component: DotCMSPagesComponent,
53
+ runGuardsAndResolvers: 'always' // Run the resolver on every navigation. Even if the URL hasn't changed.
54
+ },
55
+ ];
56
+ ```
57
+
58
+ Then, in your component, you can read the data using
59
+
60
+ ```javascript
61
+ protected readonly context = signal(null);
62
+
63
+ ngOnInit() {
64
+ // Get the context data from the route
65
+ this.route.data.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(data => {
66
+ this.context.set(data['context']);
67
+ });
68
+ }
69
+ ```
70
+ ## Components
71
+
72
+ ### `DotcmsLayoutComponent`
73
+
74
+ A component that renders a layout for a dotCMS page.
75
+
76
+ #### Inputs
77
+
78
+ - **entity**: The context for a dotCMS page.
79
+ - **components**: An object with the relation of contentlets and the component to render each.
80
+
81
+
82
+ #### Usage
83
+
84
+ ```javascript
85
+ <dotcms-layout [entity]="pageAsset" [components]="components()" />
86
+
87
+ DYNAMIC_COMPONENTS: { [key: string]: DynamicComponentEntity } = {
88
+ Activity: import('../pages/content-types/activity/activity.component').then(
89
+ (c) => c.ActivityComponent,
90
+ ),
91
+ Banner: import('../pages/content-types/banner/banner.component').then(
92
+ (c) => c.BannerComponent,
93
+ ),
94
+ Image: import('../pages/content-types/image/image.component').then(
95
+ (c) => c.ImageComponent,
96
+ ),
97
+ webPageContent: import(
98
+ '../pages/content-types/web-page-content/web-page-content.component'
99
+ ).then((c) => c.WebPageContentComponent),
100
+ Product: import('../pages/content-types/product/product.component').then(
101
+ (c) => c.ProductComponent,
102
+ ),
103
+ };
104
+
105
+ components = signal(DYNAMIC_COMPONENTS);
106
+ ```
107
+
108
+ ## Contributing
109
+
110
+ GitHub pull requests are the preferred method to contribute code to dotCMS. Before any pull requests can be accepted, an automated tool will ask you to agree to the [dotCMS Contributor's Agreement](https://gist.github.com/wezell/85ef45298c48494b90d92755b583acb3).
111
+
112
+ ## Licensing
113
+
114
+ dotCMS comes in multiple editions and as such is dual licensed. The dotCMS Community Edition is licensed under the GPL 3.0 and is freely available for download, customization and deployment for use within organizations of all stripes. dotCMS Enterprise Editions (EE) adds a number of enterprise features and is available via a supported, indemnified commercial license from dotCMS. For the differences between the editions, see [the feature page](http://dotcms.com/cms-platform/features).
115
+
116
+ ## Support
117
+
118
+ If you need help or have any questions, please [open an issue](https://github.com/dotCMS/core/issues/new/choose) in the GitHub repository.
119
+
120
+ ## Documentation
121
+
122
+ Always refer to the official [DotCMS documentation](https://www.dotcms.com/docs/latest/) for comprehensive guides and API references.
123
+
124
+ ## Getting Help
125
+
126
+ | Source | Location |
127
+ | --------------- | ------------------------------------------------------------------- |
128
+ | Installation | [Installation](https://dotcms.com/docs/latest/installation) |
129
+ | Documentation | [Documentation](https://dotcms.com/docs/latest/table-of-contents) |
130
+ | Videos | [Helpful Videos](http://dotcms.com/videos/) |
131
+ | Code Examples | [Codeshare](https://dotcms.com/codeshare/) |
132
+ | Forums/Listserv | [via Google Groups](https://groups.google.com/forum/#!forum/dotCMS) |
133
+ | Twitter | @dotCMS |
134
+ | Main Site | [dotCMS.com](https://dotcms.com/) |
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotcms-angular.d.ts","sourceRoot":"","sources":["../../../../libs/sdk/angular/src/dotcms-angular.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9kb3RjbXMtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9sYXlvdXQvZG90Y21zLWxheW91dC9kb3RjbXMtbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9kb3RjbXMtY29udGV4dC9wYWdlLWNvbnRleHQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuIl19
@@ -0,0 +1,23 @@
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
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 class NoComponent {
8
+ constructor() {
9
+ this.testId = 'no-component';
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ 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 }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NoComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'dotcms-no-component', standalone: true, template: `No Component for {{ contentlet.contentType }}`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
17
+ }], propDecorators: { contentlet: [{
18
+ type: Input
19
+ }], testId: [{
20
+ type: HostBinding,
21
+ args: ['attr.data-testid']
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tY29tcG9uZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL25vLWNvbXBvbmVudC9uby1jb21wb25lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJdkY7OztHQUdHO0FBUUgsTUFBTSxPQUFPLFdBQVc7SUFQeEI7UUFTcUMsV0FBTSxHQUFHLGNBQWMsQ0FBQztLQUM1RDs4R0FIWSxXQUFXO2tHQUFYLFdBQVcsa0xBSlYsK0NBQStDOzsyRkFJaEQsV0FBVztrQkFQdkIsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxZQUNOLCtDQUErQyxtQkFFeEMsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsVUFBVTtzQkFBbEIsS0FBSztnQkFDMkIsTUFBTTtzQkFBdEMsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRG90Q01TQ29udGVudGxldCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbi8qKlxuICogVGhpcyBpcyBwYXJ0IG9mIHRoZSBBbmd1bGFyIFNESy5cbiAqIFRoaXMgaXMgYSBjb21wb25lbnQgZm9yIHRoZSBgTm9Db21wb25lbnRDb21wb25lbnRgIGNvbXBvbmVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtbm8tY29tcG9uZW50JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgTm8gQ29tcG9uZW50IGZvciB7eyBjb250ZW50bGV0LmNvbnRlbnRUeXBlIH19YCxcbiAgICBzdHlsZVVybDogJy4vbm8tY29tcG9uZW50LmNvbXBvbmVudC5jc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5vQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBjb250ZW50bGV0ITogRG90Q01TQ29udGVudGxldDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10ZXN0aWQnKSB0ZXN0SWQgPSAnbm8tY29tcG9uZW50Jztcbn1cbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
2
+ import { getPositionStyleClasses } from '../../utils';
3
+ import { ContainerComponent } from '../container/container.component';
4
+ import * as i0 from "@angular/core";
5
+ export class ColumnComponent {
6
+ constructor() {
7
+ this.containerClasses = '';
8
+ }
9
+ ngOnInit() {
10
+ const { startClass, endClass } = getPositionStyleClasses(this.column.leftOffset, this.column.width + this.column.leftOffset);
11
+ this.containerClasses = `${startClass} ${endClass}`;
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: ColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ 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: `
15
+ @for(container of column.containers; track $index) {
16
+ <dotcms-container [container]="container" />
17
+ }
18
+ `, 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 }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: ColumnComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'dotcms-column', standalone: true, imports: [ContainerComponent], template: `
23
+ @for(container of column.containers; track $index) {
24
+ <dotcms-container [container]="container" />
25
+ }
26
+ `, 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"] }]
27
+ }], propDecorators: { column: [{
28
+ type: Input
29
+ }], containerClasses: [{
30
+ type: HostBinding,
31
+ args: ['class']
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9sYXlvdXQvY29sdW1uL2NvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRy9GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFjdEUsTUFBTSxPQUFPLGVBQWU7SUFaNUI7UUFjMEIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO0tBUy9DO0lBUEcsUUFBUTtRQUNKLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsdUJBQXVCLENBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FDN0MsQ0FBQztRQUNGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLFVBQVUsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUN4RCxDQUFDOzhHQVZRLGVBQWU7a0dBQWYsZUFBZSxtS0FSZDs7OztLQUlULDQ5QkFMUyxrQkFBa0I7OzJGQVNuQixlQUFlO2tCQVozQixTQUFTOytCQUNJLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsQ0FBQyxZQUNuQjs7OztLQUlULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ2dCLGdCQUFnQjtzQkFBckMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRG90UGFnZUFzc2V0TGF5b3V0Q29sdW1uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IGdldFBvc2l0aW9uU3R5bGVDbGFzc2VzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1jb2x1bW4nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbnRhaW5lckNvbXBvbmVudF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGZvcihjb250YWluZXIgb2YgY29sdW1uLmNvbnRhaW5lcnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8ZG90Y21zLWNvbnRhaW5lciBbY29udGFpbmVyXT1cImNvbnRhaW5lclwiIC8+XG4gICAgICAgIH1cbiAgICBgLFxuICAgIHN0eWxlVXJsOiAnLi9jb2x1bW4uY29tcG9uZW50LmNzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBjb2x1bW4hOiBEb3RQYWdlQXNzZXRMYXlvdXRDb2x1bW47XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNvbnRhaW5lckNsYXNzZXMgPSAnJztcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCB7IHN0YXJ0Q2xhc3MsIGVuZENsYXNzIH0gPSBnZXRQb3NpdGlvblN0eWxlQ2xhc3NlcyhcbiAgICAgICAgICAgIHRoaXMuY29sdW1uLmxlZnRPZmZzZXQsXG4gICAgICAgICAgICB0aGlzLmNvbHVtbi53aWR0aCArIHRoaXMuY29sdW1uLmxlZnRPZmZzZXRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb250YWluZXJDbGFzc2VzID0gYCR7c3RhcnRDbGFzc30gJHtlbmRDbGFzc31gO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,78 @@
1
+ import { AsyncPipe, NgComponentOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, HostBinding, Input, computed, inject, signal } from '@angular/core';
3
+ import { NoComponent } from '../../components/no-component/no-component.component';
4
+ import { PageContextService } from '../../services/dotcms-context/page-context.service';
5
+ import { getContainersData } from '../../utils';
6
+ import { ContentletComponent } from '../contentlet/contentlet.component';
7
+ import * as i0 from "@angular/core";
8
+ export class ContainerComponent {
9
+ constructor() {
10
+ this.pageContextService = inject(PageContextService);
11
+ this.NoComponent = NoComponent;
12
+ this.$isInsideEditor = signal(false);
13
+ this.$contentlets = signal([]);
14
+ this.$dotContainer = signal(null);
15
+ this.$dotContainerAsString = computed(() => JSON.stringify(this.$dotContainer()));
16
+ this.acceptTypes = null;
17
+ this.identifier = null;
18
+ this.maxContentlets = null;
19
+ this.uuid = null;
20
+ this.class = null;
21
+ this.dotObject = null;
22
+ this.testId = 'dot-container';
23
+ }
24
+ ngOnChanges() {
25
+ const { pageAsset: { containers }, components, isInsideEditor } = this.pageContextService.pageContextValue;
26
+ const { acceptTypes, maxContentlets, variantId, path, contentlets } = getContainersData(containers, this.container);
27
+ const { identifier, uuid } = this.container;
28
+ this.componentsMap = components;
29
+ this.$isInsideEditor.set(isInsideEditor);
30
+ this.$contentlets.set(contentlets);
31
+ this.$dotContainer.set({
32
+ identifier: path ?? identifier,
33
+ acceptTypes,
34
+ maxContentlets,
35
+ variantId,
36
+ uuid
37
+ });
38
+ if (this.$isInsideEditor()) {
39
+ this.acceptTypes = acceptTypes;
40
+ this.identifier = identifier;
41
+ this.maxContentlets = maxContentlets;
42
+ this.uuid = uuid;
43
+ this.class = this.$contentlets().length ? null : 'empty-container';
44
+ this.dotObject = 'container';
45
+ }
46
+ }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: ContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
+ 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 }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: ContainerComponent, decorators: [{
51
+ type: Component,
52
+ 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"] }]
53
+ }], propDecorators: { container: [{
54
+ type: Input,
55
+ args: [{ required: true }]
56
+ }], acceptTypes: [{
57
+ type: HostBinding,
58
+ args: ['attr.data-dot-accept-types']
59
+ }], identifier: [{
60
+ type: HostBinding,
61
+ args: ['attr.data-dot-identifier']
62
+ }], maxContentlets: [{
63
+ type: HostBinding,
64
+ args: ['attr.data-max-contentlets']
65
+ }], uuid: [{
66
+ type: HostBinding,
67
+ args: ['attr.data-dot-uuid']
68
+ }], class: [{
69
+ type: HostBinding,
70
+ args: ['class']
71
+ }], dotObject: [{
72
+ type: HostBinding,
73
+ args: ['attr.data-dot-object']
74
+ }], testId: [{
75
+ type: HostBinding,
76
+ args: ['attr.data-testid']
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9sYXlvdXQvY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvbGF5b3V0L2NvbnRhaW5lci9jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBR25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFrQnpFLE1BQU0sT0FBTyxrQkFBa0I7SUFSL0I7UUFXcUIsdUJBQWtCLEdBQXVCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xFLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBR2xELGlCQUFZLEdBQUcsTUFBTSxDQUFxQixFQUFFLENBQUMsQ0FBQztRQUM5QyxrQkFBYSxHQUFHLE1BQU0sQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFDbEQsMEJBQXFCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU1QyxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFDcEMsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFDaEMsbUJBQWMsR0FBa0IsSUFBSSxDQUFDO1FBQzVDLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBQ3hDLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQ2IsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFDcEMsV0FBTSxHQUFHLGVBQWUsQ0FBQztLQW1DN0Q7SUFqQ0csV0FBVztRQUNQLE1BQU0sRUFDRixTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFDekIsVUFBVSxFQUNWLGNBQWMsRUFDakIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUM7UUFDN0MsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxpQkFBaUIsQ0FDbkYsVUFBVSxFQUNWLElBQUksQ0FBQyxTQUFTLENBQ2pCLENBQUM7UUFDRixNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUM7UUFFaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUM7WUFDbkIsVUFBVSxFQUFFLElBQUksSUFBSSxVQUFVO1lBQzlCLFdBQVc7WUFDWCxjQUFjO1lBQ2QsU0FBUztZQUNULElBQUk7U0FDUCxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztZQUNuRSxJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQztRQUNqQyxDQUFDO0lBQ0wsQ0FBQzs4R0FwRFEsa0JBQWtCO2tHQUFsQixrQkFBa0IsMmJDbkMvQiwwcUJBaUJBLG1NRGFjLFNBQVMsOENBQUUsaUJBQWlCLG9QQUFlLG1CQUFtQjs7MkZBSy9ELGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDSSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxtQkFHeEQsdUJBQXVCLENBQUMsTUFBTTs4QkFHcEIsU0FBUztzQkFBbkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBV2tCLFdBQVc7c0JBQXJELFdBQVc7dUJBQUMsNEJBQTRCO2dCQUNBLFVBQVU7c0JBQWxELFdBQVc7dUJBQUMsMEJBQTBCO2dCQUNHLGNBQWM7c0JBQXZELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUNMLElBQUk7c0JBQXRDLFdBQVc7dUJBQUMsb0JBQW9CO2dCQUNYLEtBQUs7c0JBQTFCLFdBQVc7dUJBQUMsT0FBTztnQkFDaUIsU0FBUztzQkFBN0MsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBQ0YsTUFBTTtzQkFBdEMsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ29tcG9uZW50T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBjb21wdXRlZCxcbiAgICBpbmplY3QsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOb0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbm8tY29tcG9uZW50L25vLWNvbXBvbmVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEVudGl0eSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBEb3RDTVNDb250YWluZXIsIERvdENNU0NvbnRlbnRsZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZG90Y21zLm1vZGVsJztcbmltcG9ydCB7IFBhZ2VDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RvdGNtcy1jb250ZXh0L3BhZ2UtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IGdldENvbnRhaW5lcnNEYXRhIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudGxldENvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRlbnRsZXQvY29udGVudGxldC5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgRG90Q29udGFpbmVyIHtcbiAgICBhY2NlcHRUeXBlczogc3RyaW5nO1xuICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICBtYXhDb250ZW50bGV0czogbnVtYmVyO1xuICAgIHV1aWQ6IHN0cmluZztcbiAgICB2YXJpYW50SWQ/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWNvbnRhaW5lcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBOZ0NvbXBvbmVudE91dGxldCwgTm9Db21wb25lbnQsIENvbnRlbnRsZXRDb21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9jb250YWluZXIuY29tcG9uZW50LmNzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb250YWluZXIhOiBEb3RDTVNDb250YWluZXI7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VDb250ZXh0U2VydmljZTogUGFnZUNvbnRleHRTZXJ2aWNlID0gaW5qZWN0KFBhZ2VDb250ZXh0U2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IE5vQ29tcG9uZW50ID0gTm9Db21wb25lbnQ7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5ICRpc0luc2lkZUVkaXRvciA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBwcm90ZWN0ZWQgY29tcG9uZW50c01hcCE6IFJlY29yZDxzdHJpbmcsIER5bmFtaWNDb21wb25lbnRFbnRpdHk+O1xuICAgIHByb3RlY3RlZCAkY29udGVudGxldHMgPSBzaWduYWw8RG90Q01TQ29udGVudGxldFtdPihbXSk7XG4gICAgcHJvdGVjdGVkICRkb3RDb250YWluZXIgPSBzaWduYWw8RG90Q29udGFpbmVyIHwgbnVsbD4obnVsbCk7XG4gICAgcHJvdGVjdGVkICRkb3RDb250YWluZXJBc1N0cmluZyA9IGNvbXB1dGVkKCgpID0+IEpTT04uc3RyaW5naWZ5KHRoaXMuJGRvdENvbnRhaW5lcigpKSk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3QtYWNjZXB0LXR5cGVzJykgYWNjZXB0VHlwZXM6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRvdC1pZGVudGlmaWVyJykgaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtbWF4LWNvbnRlbnRsZXRzJykgbWF4Q29udGVudGxldHM6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRvdC11dWlkJykgdXVpZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3Qtb2JqZWN0JykgZG90T2JqZWN0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10ZXN0aWQnKSB0ZXN0SWQgPSAnZG90LWNvbnRhaW5lcic7XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgcGFnZUFzc2V0OiB7IGNvbnRhaW5lcnMgfSxcbiAgICAgICAgICAgIGNvbXBvbmVudHMsXG4gICAgICAgICAgICBpc0luc2lkZUVkaXRvclxuICAgICAgICB9ID0gdGhpcy5wYWdlQ29udGV4dFNlcnZpY2UucGFnZUNvbnRleHRWYWx1ZTtcbiAgICAgICAgY29uc3QgeyBhY2NlcHRUeXBlcywgbWF4Q29udGVudGxldHMsIHZhcmlhbnRJZCwgcGF0aCwgY29udGVudGxldHMgfSA9IGdldENvbnRhaW5lcnNEYXRhKFxuICAgICAgICAgICAgY29udGFpbmVycyxcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHsgaWRlbnRpZmllciwgdXVpZCB9ID0gdGhpcy5jb250YWluZXI7XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnRzTWFwID0gY29tcG9uZW50cztcblxuICAgICAgICB0aGlzLiRpc0luc2lkZUVkaXRvci5zZXQoaXNJbnNpZGVFZGl0b3IpO1xuICAgICAgICB0aGlzLiRjb250ZW50bGV0cy5zZXQoY29udGVudGxldHMpO1xuICAgICAgICB0aGlzLiRkb3RDb250YWluZXIuc2V0KHtcbiAgICAgICAgICAgIGlkZW50aWZpZXI6IHBhdGggPz8gaWRlbnRpZmllcixcbiAgICAgICAgICAgIGFjY2VwdFR5cGVzLFxuICAgICAgICAgICAgbWF4Q29udGVudGxldHMsXG4gICAgICAgICAgICB2YXJpYW50SWQsXG4gICAgICAgICAgICB1dWlkXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLiRpc0luc2lkZUVkaXRvcigpKSB7XG4gICAgICAgICAgICB0aGlzLmFjY2VwdFR5cGVzID0gYWNjZXB0VHlwZXM7XG4gICAgICAgICAgICB0aGlzLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyO1xuICAgICAgICAgICAgdGhpcy5tYXhDb250ZW50bGV0cyA9IG1heENvbnRlbnRsZXRzO1xuICAgICAgICAgICAgdGhpcy51dWlkID0gdXVpZDtcbiAgICAgICAgICAgIHRoaXMuY2xhc3MgPSB0aGlzLiRjb250ZW50bGV0cygpLmxlbmd0aCA/IG51bGwgOiAnZW1wdHktY29udGFpbmVyJztcbiAgICAgICAgICAgIHRoaXMuZG90T2JqZWN0ID0gJ2NvbnRhaW5lcic7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKCRpc0luc2lkZUVkaXRvcigpKSB7IEBpZigkY29udGVudGxldHMoKS5sZW5ndGgpeyBAZm9yIChjb250ZW50bGV0IG9mICRjb250ZW50bGV0cygpOyB0cmFja1xuJGluZGV4KSB7XG5cbjxkb3RjbXMtY29udGVudGxldC13cmFwcGVyIFtjb250ZW50bGV0XT1cImNvbnRlbnRsZXRcIiBbY29udGFpbmVyXT1cIiRkb3RDb250YWluZXJBc1N0cmluZygpXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJcbiAgICAgICAgICAgIChjb21wb25lbnRzTWFwW2NvbnRlbnRsZXQuY29udGVudFR5cGVdIHwgYXN5bmMpIHx8IE5vQ29tcG9uZW50O1xuICAgICAgICAgICAgaW5wdXRzOiB7IGNvbnRlbnRsZXQgfVxuICAgICAgICBcIiAvPlxuPC9kb3RjbXMtY29udGVudGxldC13cmFwcGVyPlxufSB9IEBlbHNlIHsgVGhpcyBjb250YWluZXIgaXMgZW1wdHkuIH0gfSBAZWxzZSB7IEBmb3IgKGNvbnRlbnRsZXQgb2YgJGNvbnRlbnRsZXRzKCk7IHRyYWNrICRpbmRleCkge1xuPG5nLWNvbnRhaW5lclxuICAgICpuZ0NvbXBvbmVudE91dGxldD1cIlxuICAgICAgICAoY29tcG9uZW50c01hcFtjb250ZW50bGV0LmNvbnRlbnRUeXBlXSB8IGFzeW5jKSB8fCBOb0NvbXBvbmVudDtcbiAgICAgICAgaW5wdXRzOiB7IGNvbnRlbnRsZXQgfVxuICAgIFwiIC8+XG59IH1cbiJdfQ==
@@ -0,0 +1,65 @@
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ContentletComponent {
4
+ constructor() {
5
+ this.identifier = null;
6
+ this.baseType = null;
7
+ this.title = null;
8
+ this.inode = null;
9
+ this.dotType = null;
10
+ this.dotContainer = null;
11
+ this.numberOfPages = null;
12
+ this.dotContent = null;
13
+ }
14
+ ngOnChanges() {
15
+ this.identifier = this.contentlet.identifier;
16
+ this.baseType = this.contentlet.baseType;
17
+ this.title = this.contentlet.title;
18
+ this.inode = this.contentlet.inode;
19
+ this.dotType = this.contentlet.contentType;
20
+ this.dotContainer = this.container;
21
+ this.numberOfPages = this.contentlet['onNumberOfPages'];
22
+ this.dotContent = 'contentlet';
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: ContentletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
+ 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 }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: ContentletComponent, decorators: [{
28
+ type: Component,
29
+ args: [{
30
+ selector: 'dotcms-contentlet-wrapper',
31
+ standalone: true,
32
+ template: '<ng-content></ng-content>',
33
+ changeDetection: ChangeDetectionStrategy.OnPush
34
+ }]
35
+ }], propDecorators: { contentlet: [{
36
+ type: Input,
37
+ args: [{ required: true }]
38
+ }], container: [{
39
+ type: Input
40
+ }], identifier: [{
41
+ type: HostBinding,
42
+ args: ['attr.data-dot-identifier']
43
+ }], baseType: [{
44
+ type: HostBinding,
45
+ args: ['attr.data-dot-basetype']
46
+ }], title: [{
47
+ type: HostBinding,
48
+ args: ['attr.data-dot-title']
49
+ }], inode: [{
50
+ type: HostBinding,
51
+ args: ['attr.data-dot-inode']
52
+ }], dotType: [{
53
+ type: HostBinding,
54
+ args: ['attr.data-dot-type']
55
+ }], dotContainer: [{
56
+ type: HostBinding,
57
+ args: ['attr.data-dot-container']
58
+ }], numberOfPages: [{
59
+ type: HostBinding,
60
+ args: ['attr.data-dot-on-number-of-pages']
61
+ }], dotContent: [{
62
+ type: HostBinding,
63
+ args: ['attr.data-dot-object']
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGxldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvbGF5b3V0L2NvbnRlbnRsZXQvY29udGVudGxldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDOztBQVVsRyxNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBVTZDLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBQ25DLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBQ2xDLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQzVCLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQzdCLFlBQU8sR0FBa0IsSUFBSSxDQUFDO1FBQ3pCLGlCQUFZLEdBQWtCLElBQUksQ0FBQztRQUMxQixrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFDaEQsZUFBVSxHQUFrQixJQUFJLENBQUM7S0FZekU7SUFWRyxXQUFXO1FBQ1AsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQzNDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDOzhHQXRCUSxtQkFBbUI7a0dBQW5CLG1CQUFtQixpaUJBSGxCLDJCQUEyQjs7MkZBRzVCLG1CQUFtQjtrQkFOL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOzhCQUU4QixVQUFVO3NCQUFwQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsU0FBUztzQkFBakIsS0FBSztnQkFFbUMsVUFBVTtzQkFBbEQsV0FBVzt1QkFBQywwQkFBMEI7Z0JBQ0EsUUFBUTtzQkFBOUMsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBQ0QsS0FBSztzQkFBeEMsV0FBVzt1QkFBQyxxQkFBcUI7Z0JBQ0UsS0FBSztzQkFBeEMsV0FBVzt1QkFBQyxxQkFBcUI7Z0JBQ0MsT0FBTztzQkFBekMsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ08sWUFBWTtzQkFBbkQsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBQ1csYUFBYTtzQkFBN0QsV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBQ1YsVUFBVTtzQkFBOUMsV0FBVzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3RDTVNDb250ZW50bGV0IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtY29udGVudGxldC13cmFwcGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudGxldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgY29udGVudGxldCE6IERvdENNU0NvbnRlbnRsZXQ7XG4gICAgQElucHV0KCkgY29udGFpbmVyITogc3RyaW5nO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZG90LWlkZW50aWZpZXInKSBpZGVudGlmaWVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3QtYmFzZXR5cGUnKSBiYXNlVHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZG90LXRpdGxlJykgdGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRvdC1pbm9kZScpIGlub2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3QtdHlwZScpIGRvdFR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRvdC1jb250YWluZXInKSBkb3RDb250YWluZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRvdC1vbi1udW1iZXItb2YtcGFnZXMnKSBudW1iZXJPZlBhZ2VzOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3Qtb2JqZWN0JykgZG90Q29udGVudDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5pZGVudGlmaWVyID0gdGhpcy5jb250ZW50bGV0LmlkZW50aWZpZXI7XG4gICAgICAgIHRoaXMuYmFzZVR5cGUgPSB0aGlzLmNvbnRlbnRsZXQuYmFzZVR5cGU7XG4gICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLmNvbnRlbnRsZXQudGl0bGU7XG4gICAgICAgIHRoaXMuaW5vZGUgPSB0aGlzLmNvbnRlbnRsZXQuaW5vZGU7XG4gICAgICAgIHRoaXMuZG90VHlwZSA9IHRoaXMuY29udGVudGxldC5jb250ZW50VHlwZTtcbiAgICAgICAgdGhpcy5kb3RDb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcjtcbiAgICAgICAgdGhpcy5udW1iZXJPZlBhZ2VzID0gdGhpcy5jb250ZW50bGV0Wydvbk51bWJlck9mUGFnZXMnXTtcbiAgICAgICAgdGhpcy5kb3RDb250ZW50ID0gJ2NvbnRlbnRsZXQnO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,62 @@
1
+ import { ChangeDetectionStrategy, Component, DestroyRef, Input, inject } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { ActivatedRoute, Router } from '@angular/router';
4
+ import { filter } from 'rxjs/operators';
5
+ import { initEditor, isInsideEditor, updateNavigation } from '@dotcms/client';
6
+ import { PageContextService } from '../../services/dotcms-context/page-context.service';
7
+ import { RowComponent } from '../row/row.component';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * `DotcmsLayoutComponent` is a class that represents the layout for a DotCMS page.
11
+ * It includes a `pageAsset` property that represents the DotCMS page asset and a `components` property that represents the dynamic components for the page.
12
+ *
13
+ * @export
14
+ * @class DotcmsLayoutComponent
15
+ */
16
+ export class DotcmsLayoutComponent {
17
+ constructor() {
18
+ this.route = inject(ActivatedRoute);
19
+ this.router = inject(Router);
20
+ this.pageContextService = inject(PageContextService);
21
+ this.destroyRef$ = inject(DestroyRef);
22
+ }
23
+ ngOnInit() {
24
+ this.route.url
25
+ .pipe(takeUntilDestroyed(this.destroyRef$), filter(() => isInsideEditor()))
26
+ .subscribe((urlSegments) => {
27
+ const pathname = '/' + urlSegments.join('/');
28
+ const config = {
29
+ pathname,
30
+ onReload: () => {
31
+ // Reload the page when the user edit the page
32
+ this.router.navigate([pathname], {
33
+ onSameUrlNavigation: 'reload' // Force Angular to reload the page
34
+ });
35
+ }
36
+ };
37
+ initEditor(config);
38
+ updateNavigation(pathname || '/');
39
+ });
40
+ }
41
+ ngOnChanges() {
42
+ //Each time the layout changes, we need to update the context
43
+ this.pageContextService.setContext(this.pageAsset, this.components);
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: DotcmsLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
+ 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) {
47
+ <dotcms-row [row]="row" />
48
+ }`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: RowComponent, selector: "dotcms-row", inputs: ["row"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: DotcmsLayoutComponent, decorators: [{
51
+ type: Component,
52
+ args: [{ selector: 'dotcms-layout', standalone: true, imports: [RowComponent], template: `@for(row of pageAsset.layout.body.rows; track $index) {
53
+ <dotcms-row [row]="row" />
54
+ }`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
55
+ }], propDecorators: { pageAsset: [{
56
+ type: Input,
57
+ args: [{ required: true }]
58
+ }], components: [{
59
+ type: Input,
60
+ args: [{ required: true }]
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvbGF5b3V0L2RvdGNtcy1sYXlvdXQvZG90Y21zLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXBEOzs7Ozs7R0FNRztBQVdILE1BQU0sT0FBTyxxQkFBcUI7SUFWbEM7UUFjcUIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBNEJyRDtJQTFCRyxRQUFRO1FBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHO2FBQ1QsSUFBSSxDQUNELGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDcEMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQ2pDO2FBQ0EsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDdkIsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0MsTUFBTSxNQUFNLEdBQUc7Z0JBQ1gsUUFBUTtnQkFDUixRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUNYLDhDQUE4QztvQkFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDN0IsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLG1DQUFtQztxQkFDcEUsQ0FBQyxDQUFDO2dCQUNQLENBQUM7YUFDSixDQUFDO1lBQ0YsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25CLGdCQUFnQixDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxXQUFXO1FBQ1AsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEUsQ0FBQzs4R0FsQ1EscUJBQXFCO2tHQUFyQixxQkFBcUIsNEpBTnBCOztVQUVKLGdHQUhJLFlBQVk7OzJGQU9iLHFCQUFxQjtrQkFWakMsU0FBUzsrQkFDSSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2I7O1VBRUosbUJBRVcsdUJBQXVCLENBQUMsTUFBTTs4QkFHcEIsU0FBUztzQkFBbkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsVUFBVTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBpbml0RWRpdG9yLCBpc0luc2lkZUVkaXRvciwgdXBkYXRlTmF2aWdhdGlvbiB9IGZyb20gJ0Bkb3RjbXMvY2xpZW50JztcblxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEVudGl0eSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBEb3RDTVNQYWdlQXNzZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZG90Y21zLm1vZGVsJztcbmltcG9ydCB7IFBhZ2VDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RvdGNtcy1jb250ZXh0L3BhZ2UtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IFJvd0NvbXBvbmVudCB9IGZyb20gJy4uL3Jvdy9yb3cuY29tcG9uZW50JztcblxuLyoqXG4gKiBgRG90Y21zTGF5b3V0Q29tcG9uZW50YCBpcyBhIGNsYXNzIHRoYXQgcmVwcmVzZW50cyB0aGUgbGF5b3V0IGZvciBhIERvdENNUyBwYWdlLlxuICogIEl0IGluY2x1ZGVzIGEgYHBhZ2VBc3NldGAgcHJvcGVydHkgdGhhdCByZXByZXNlbnRzIHRoZSBEb3RDTVMgcGFnZSBhc3NldCBhbmQgYSBgY29tcG9uZW50c2AgcHJvcGVydHkgdGhhdCByZXByZXNlbnRzIHRoZSBkeW5hbWljIGNvbXBvbmVudHMgZm9yIHRoZSBwYWdlLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBEb3RjbXNMYXlvdXRDb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtbGF5b3V0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtSb3dDb21wb25lbnRdLFxuICAgIHRlbXBsYXRlOiBgQGZvcihyb3cgb2YgcGFnZUFzc2V0LmxheW91dC5ib2R5LnJvd3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8ZG90Y21zLXJvdyBbcm93XT1cInJvd1wiIC8+XG4gICAgICAgIH1gLFxuICAgIHN0eWxlVXJsOiAnLi9kb3RjbXMtbGF5b3V0LmNvbXBvbmVudC5jc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERvdGNtc0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcGFnZUFzc2V0ITogRG90Q01TUGFnZUFzc2V0O1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbXBvbmVudHMhOiBSZWNvcmQ8c3RyaW5nLCBEeW5hbWljQ29tcG9uZW50RW50aXR5PjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlQ29udGV4dFNlcnZpY2UgPSBpbmplY3QoUGFnZUNvbnRleHRTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYkID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucm91dGUudXJsXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmJCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IGlzSW5zaWRlRWRpdG9yKCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh1cmxTZWdtZW50cykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGhuYW1lID0gJy8nICsgdXJsU2VnbWVudHMuam9pbignLycpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIG9uUmVsb2FkOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWxvYWQgdGhlIHBhZ2Ugd2hlbiB0aGUgdXNlciBlZGl0IHRoZSBwYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGF0aG5hbWVdLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25TYW1lVXJsTmF2aWdhdGlvbjogJ3JlbG9hZCcgLy8gRm9yY2UgQW5ndWxhciB0byByZWxvYWQgdGhlIHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbml0RWRpdG9yKGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgdXBkYXRlTmF2aWdhdGlvbihwYXRobmFtZSB8fCAnLycpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIC8vRWFjaCB0aW1lIHRoZSBsYXlvdXQgY2hhbmdlcywgd2UgbmVlZCB0byB1cGRhdGUgdGhlIGNvbnRleHRcbiAgICAgICAgdGhpcy5wYWdlQ29udGV4dFNlcnZpY2Uuc2V0Q29udGV4dCh0aGlzLnBhZ2VBc3NldCwgdGhpcy5jb21wb25lbnRzKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { ColumnComponent } from '../column/column.component';
3
+ import * as i0 from "@angular/core";
4
+ export class RowComponent {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: RowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
+ 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) {
7
+ <dotcms-column [column]="column" />
8
+ }`, 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 }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: RowComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'dotcms-row', standalone: true, imports: [ColumnComponent], template: `@for(column of row.columns; track $index) {
13
+ <dotcms-column [column]="column" />
14
+ }`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;row-gap:1rem}\n"] }]
15
+ }], propDecorators: { row: [{
16
+ type: Input,
17
+ args: [{ required: true }]
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9sYXlvdXQvcm93L3Jvdy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVk3RCxNQUFNLE9BQU8sWUFBWTs4R0FBWixZQUFZO2tHQUFaLFlBQVksOEZBTlg7O1VBRUosMEpBSEksZUFBZTs7MkZBT2hCLFlBQVk7a0JBVnhCLFNBQVM7K0JBQ0ksWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLGVBQWUsQ0FBQyxZQUNoQjs7VUFFSixtQkFFVyx1QkFBdUIsQ0FBQyxNQUFNOzhCQUdwQixHQUFHO3NCQUE3QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERvdFBhZ2VBc3NldExheW91dFJvdyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9jb2x1bW4vY29sdW1uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLXJvdycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29sdW1uQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZTogYEBmb3IoY29sdW1uIG9mIHJvdy5jb2x1bW5zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGRvdGNtcy1jb2x1bW4gW2NvbHVtbl09XCJjb2x1bW5cIiAvPlxuICAgICAgICB9YCxcbiAgICBzdHlsZVVybDogJy4vcm93LmNvbXBvbmVudC5jc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJvd0NvbXBvbmVudCB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcm93ITogRG90UGFnZUFzc2V0TGF5b3V0Um93O1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ export {};
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9zcmMvbGliL21vZGVscy9kb3RjbXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIERvdENNU1BhZ2VBc3NldCB7XG4gICAgY2FuQ3JlYXRlVGVtcGxhdGU6IGJvb2xlYW47XG4gICAgY29udGFpbmVyczogRG90Q01TUGFnZUFzc2V0Q29udGFpbmVyO1xuICAgIGxheW91dDogRG90Q01TTGF5b3V0O1xuICAgIHBhZ2U6IERvdENNU1BhZ2U7XG4gICAgc2l0ZTogRG90Q01TU2l0ZTtcbiAgICB0ZW1wbGF0ZTogRG90Q01TVGVtcGxhdGU7XG4gICAgdmlld0FzOiBEb3RDTVNWaWV3QXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG90UGFnZUFzc2V0TGF5b3V0Um93IHtcbiAgICBpZGVudGlmaWVyOiBudW1iZXI7XG4gICAgdmFsdWU/OiBzdHJpbmc7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgY29sdW1uczogRG90UGFnZUFzc2V0TGF5b3V0Q29sdW1uW107XG4gICAgc3R5bGVDbGFzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb3RQYWdlQXNzZXRMYXlvdXRDb2x1bW4ge1xuICAgIHByZXZpZXc6IGJvb2xlYW47XG4gICAgY29udGFpbmVyczogRG90Q01TQ29udGFpbmVyW107XG4gICAgd2lkdGhQZXJjZW50OiBudW1iZXI7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBsZWZ0T2Zmc2V0OiBudW1iZXI7XG4gICAgbGVmdDogbnVtYmVyO1xuICAgIHN0eWxlQ2xhc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG90Q01TUGFnZUFzc2V0Q29udGFpbmVyIHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICAgIGNvbnRhaW5lcjogRG90Q01TQ29udGFpbmVyO1xuICAgICAgICBjb250YWluZXJTdHJ1Y3R1cmVzOiBEb3RDTVNDb250YWluZXJTdHJ1Y3R1cmVbXTtcbiAgICAgICAgY29udGVudGxldHM6IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IERvdENNU0NvbnRlbnRsZXRbXTtcbiAgICAgICAgfTtcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvdENNU0NvbnRhaW5lciB7XG4gICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgIHV1aWQ6IHN0cmluZztcbiAgICBpRGF0ZTogbnVtYmVyO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBvd25lcj86IHN0cmluZztcbiAgICBpbm9kZTogc3RyaW5nO1xuICAgIHNvdXJjZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZnJpZW5kbHlOYW1lOiBzdHJpbmc7XG4gICAgbW9kRGF0ZTogbnVtYmVyO1xuICAgIG1vZFVzZXI6IHN0cmluZztcbiAgICBzb3J0T3JkZXI6IG51bWJlcjtcbiAgICBzaG93T25NZW51OiBib29sZWFuO1xuICAgIGNvZGU/OiBzdHJpbmc7XG4gICAgbWF4Q29udGVudGxldHM6IG51bWJlcjtcbiAgICB1c2VEaXY6IGJvb2xlYW47XG4gICAgc29ydENvbnRlbnRsZXRzQnk/OiBzdHJpbmc7XG4gICAgcHJlTG9vcDogc3RyaW5nO1xuICAgIHBvc3RMb29wOiBzdHJpbmc7XG4gICAgc3RhdGljaWZ5OiBib29sZWFuO1xuICAgIGx1Y2VuZVF1ZXJ5Pzogc3RyaW5nO1xuICAgIG5vdGVzOiBzdHJpbmc7XG4gICAgbGFuZ3VhZ2VJZD86IG51bWJlcjtcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIGxpdmU6IGJvb2xlYW47XG4gICAgbG9ja2VkOiBib29sZWFuO1xuICAgIHdvcmtpbmc6IGJvb2xlYW47XG4gICAgZGVsZXRlZDogYm9vbGVhbjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYXJjaGl2ZWQ6IGJvb2xlYW47XG4gICAgcGVybWlzc2lvbklkOiBzdHJpbmc7XG4gICAgdmVyc2lvbklkOiBzdHJpbmc7XG4gICAgdmVyc2lvblR5cGU6IHN0cmluZztcbiAgICBwZXJtaXNzaW9uVHlwZTogc3RyaW5nO1xuICAgIGNhdGVnb3J5SWQ6IHN0cmluZztcbiAgICBpZGF0ZTogbnVtYmVyO1xuICAgIG5ldzogYm9vbGVhbjtcbiAgICBhY2NlcHRUeXBlczogc3RyaW5nO1xuICAgIGNvbnRlbnRsZXRzOiBEb3RDTVNDb250ZW50bGV0W107XG4gICAgcGFyZW50UGVybWlzc2lvbmFibGU6IERvdENNU1NpdGVQYXJlbnRQZXJtaXNzaW9uYWJsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb3RDTVNDb250ZW50bGV0IHtcbiAgICBhcmNoaXZlZDogYm9vbGVhbjtcbiAgICBiYXNlVHlwZTogc3RyaW5nO1xuICAgIGRlbGV0ZWQ/OiBib29sZWFuO1xuICAgIGJpbmFyeT86IHN0cmluZztcbiAgICBiaW5hcnlDb250ZW50QXNzZXQ/OiBzdHJpbmc7XG4gICAgYmluYXJ5VmVyc2lvbj86IHN0cmluZztcbiAgICBjb250ZW50VHlwZTogc3RyaW5nO1xuICAgIGZpbGU/OiBzdHJpbmc7XG4gICAgZm9sZGVyOiBzdHJpbmc7XG4gICAgaGFzTGl2ZVZlcnNpb24/OiBib29sZWFuO1xuICAgIGhhc1RpdGxlSW1hZ2U6IGJvb2xlYW47XG4gICAgaG9zdDogc3RyaW5nO1xuICAgIGhvc3ROYW1lOiBzdHJpbmc7XG4gICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgIGlub2RlOiBzdHJpbmc7XG4gICAgaW1hZ2U/OiBzdHJpbmc7XG4gICAgbGFuZ3VhZ2VJZDogbnVtYmVyO1xuICAgIGxhbmd1YWdlPzogc3RyaW5nO1xuICAgIGxpdmU6IGJvb2xlYW47XG4gICAgbG9ja2VkOiBib29sZWFuO1xuICAgIG1pbWVUeXBlPzogc3RyaW5nO1xuICAgIG1vZERhdGU6IHN0cmluZztcbiAgICBtb2RVc2VyOiBzdHJpbmc7XG4gICAgbW9kVXNlck5hbWU6IHN0cmluZztcbiAgICBvd25lcjogc3RyaW5nO1xuICAgIHNvcnRPcmRlcjogbnVtYmVyO1xuICAgIHN0SW5vZGU6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHRpdGxlSW1hZ2U6IHN0cmluZztcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHdvcmtpbmc6IGJvb2xlYW47XG4gICAgYm9keT86IHN0cmluZztcbiAgICBjb250ZW50VHlwZUljb24/OiBzdHJpbmc7XG4gICAgdmFyaWFudD86IHN0cmluZztcbiAgICBfX2ljb25fXz86IHN0cmluZztcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7IC8vIFRoaXMgaXMgYSBjYXRjaC1hbGwgZm9yIGFueSBvdGhlciBjdXN0b20gcHJvcGVydGllcyB0aGF0IG1pZ2h0IGJlIG9uIHRoZSBjb250ZW50bGV0LlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvdGNtc05hdmlnYXRpb25JdGVtIHtcbiAgICBjb2RlPzogYW55O1xuICAgIGZvbGRlcjogc3RyaW5nO1xuICAgIGNoaWxkcmVuPzogRG90Y21zTmF2aWdhdGlvbkl0ZW1bXTtcbiAgICBob3N0OiBzdHJpbmc7XG4gICAgbGFuZ3VhZ2VJZDogbnVtYmVyO1xuICAgIGhyZWY6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBoYXNoOiBudW1iZXI7XG4gICAgdGFyZ2V0OiBzdHJpbmc7XG4gICAgb3JkZXI6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIERvdENNU1RlbXBsYXRlIHtcbiAgICBpRGF0ZTogbnVtYmVyO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBvd25lcjogc3RyaW5nO1xuICAgIGlub2RlOiBzdHJpbmc7XG4gICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgIHNvdXJjZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZnJpZW5kbHlOYW1lOiBzdHJpbmc7XG4gICAgbW9kRGF0ZTogbnVtYmVyO1xuICAgIG1vZFVzZXI6IHN0cmluZztcbiAgICBzb3J0T3JkZXI6IG51bWJlcjtcbiAgICBzaG93T25NZW51OiBib29sZWFuO1xuICAgIGltYWdlOiBzdHJpbmc7XG4gICAgZHJhd2VkOiBib29sZWFuO1xuICAgIGRyYXdlZEJvZHk6IHN0cmluZztcbiAgICB0aGVtZTogc3RyaW5nO1xuICAgIGFub255bW91czogYm9vbGVhbjtcbiAgICB0ZW1wbGF0ZTogYm9vbGVhbjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbGl2ZTogYm9vbGVhbjtcbiAgICBhcmNoaXZlZDogYm9vbGVhbjtcbiAgICBsb2NrZWQ6IGJvb2xlYW47XG4gICAgd29ya2luZzogYm9vbGVhbjtcbiAgICBwZXJtaXNzaW9uSWQ6IHN0cmluZztcbiAgICB2ZXJzaW9uSWQ6IHN0cmluZztcbiAgICB2ZXJzaW9uVHlwZTogc3RyaW5nO1xuICAgIGRlbGV0ZWQ6IGJvb2xlYW47XG4gICAgcGVybWlzc2lvblR5cGU6IHN0cmluZztcbiAgICBjYXRlZ29yeUlkOiBzdHJpbmc7XG4gICAgaWRhdGU6IG51bWJlcjtcbiAgICBuZXc6IGJvb2xlYW47XG4gICAgY2FuRWRpdDogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIERvdENNU1BhZ2Uge1xuICAgIHRlbXBsYXRlOiBzdHJpbmc7XG4gICAgbW9kRGF0ZTogbnVtYmVyO1xuICAgIG1ldGFkYXRhOiBzdHJpbmc7XG4gICAgY2FjaGV0dGw6IHN0cmluZztcbiAgICBwYWdlVVJJOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgc2hvd09uTWVudTogc3RyaW5nO1xuICAgIGh0dHBzUmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgaW5vZGU6IHN0cmluZztcbiAgICBkaXNhYmxlZFdZU0lXWUc6IGFueVtdO1xuICAgIHNlb2tleXdvcmRzOiBzdHJpbmc7XG4gICAgaG9zdDogc3RyaW5nO1xuICAgIGxhc3RSZXZpZXc6IG51bWJlcjtcbiAgICB3b3JraW5nOiBib29sZWFuO1xuICAgIGxvY2tlZDogYm9vbGVhbjtcbiAgICBzdElub2RlOiBzdHJpbmc7XG4gICAgZnJpZW5kbHlOYW1lOiBzdHJpbmc7XG4gICAgbGl2ZTogYm9vbGVhbjtcbiAgICBvd25lcjogc3RyaW5nO1xuICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICBudWxsUHJvcGVydGllczogYW55W107XG4gICAgZnJpZW5kbHluYW1lOiBzdHJpbmc7XG4gICAgcGFnZW1ldGFkYXRhOiBzdHJpbmc7XG4gICAgbGFuZ3VhZ2VJZDogbnVtYmVyO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHNlb2Rlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgbW9kVXNlck5hbWU6IHN0cmluZztcbiAgICBmb2xkZXI6IHN0cmluZztcbiAgICBkZWxldGVkOiBib29sZWFuO1xuICAgIHNvcnRPcmRlcjogbnVtYmVyO1xuICAgIG1vZFVzZXI6IHN0cmluZztcbiAgICBwYWdlVXJsOiBzdHJpbmc7XG4gICAgd29ya2luZ0lub2RlOiBzdHJpbmc7XG4gICAgc2hvcnR5V29ya2luZzogc3RyaW5nO1xuICAgIGNhbkVkaXQ6IGJvb2xlYW47XG4gICAgY2FuUmVhZDogYm9vbGVhbjtcbiAgICBjYW5Mb2NrOiBib29sZWFuO1xuICAgIGxvY2tlZE9uOiBudW1iZXI7XG4gICAgbG9ja2VkQnk6IHN0cmluZztcbiAgICBsb2NrZWRCeU5hbWU6IHN0cmluZztcbiAgICBsaXZlSW5vZGU6IHN0cmluZztcbiAgICBzaG9ydHlMaXZlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBEb3RDTVNWaWV3QXMge1xuICAgIGxhbmd1YWdlOiB7XG4gICAgICAgIGlkOiBudW1iZXI7XG4gICAgICAgIGxhbmd1YWdlQ29kZTogc3RyaW5nO1xuICAgICAgICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICAgICAgICBsYW5ndWFnZTogc3RyaW5nO1xuICAgICAgICBjb3VudHJ5OiBzdHJpbmc7XG4gICAgfTtcbiAgICBtb2RlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBEb3RDTVNMYXlvdXQge1xuICAgIHBhZ2VXaWR0aDogc3RyaW5nO1xuICAgIHdpZHRoOiBzdHJpbmc7XG4gICAgbGF5b3V0OiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBoZWFkZXI6IGJvb2xlYW47XG4gICAgZm9vdGVyOiBib29sZWFuO1xuICAgIGJvZHk6IERvdFBhZ2VBc3NldExheW91dEJvZHk7XG4gICAgc2lkZWJhcjogRG90UGFnZUFzc2V0TGF5b3V0U2lkZWJhcjtcbn1cblxuaW50ZXJmYWNlIERvdENNU0NvbnRhaW5lclN0cnVjdHVyZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBzdHJ1Y3R1cmVJZDogc3RyaW5nO1xuICAgIGNvbnRhaW5lcklub2RlOiBzdHJpbmc7XG4gICAgY29udGFpbmVySWQ6IHN0cmluZztcbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgY29udGVudFR5cGVWYXI6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIERvdFBhZ2VBc3NldExheW91dFNpZGViYXIge1xuICAgIHByZXZpZXc6IGJvb2xlYW47XG4gICAgY29udGFpbmVyczogRG90Q01TQ29udGFpbmVyW107XG4gICAgbG9jYXRpb246IHN0cmluZztcbiAgICB3aWR0aFBlcmNlbnQ6IG51bWJlcjtcbiAgICB3aWR0aDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRG90UGFnZUFzc2V0TGF5b3V0Qm9keSB7XG4gICAgcm93czogRG90UGFnZUFzc2V0TGF5b3V0Um93W107XG59XG5cbmludGVyZmFjZSBEb3RDTVNTaXRlIHtcbiAgICBsb3dJbmRleFByaW9yaXR5OiBib29sZWFuO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZWZhdWx0OiBib29sZWFuO1xuICAgIGFsaWFzZXM6IHN0cmluZztcbiAgICBwYXJlbnQ6IGJvb2xlYW47XG4gICAgdGFnU3RvcmFnZTogc3RyaW5nO1xuICAgIHN5c3RlbUhvc3Q6IGJvb2xlYW47XG4gICAgaW5vZGU6IHN0cmluZztcbiAgICB2ZXJzaW9uVHlwZTogc3RyaW5nO1xuICAgIHN0cnVjdHVyZUlub2RlOiBzdHJpbmc7XG4gICAgaG9zdG5hbWU6IHN0cmluZztcbiAgICBob3N0VGh1bWJuYWlsPzogYW55O1xuICAgIG93bmVyOiBzdHJpbmc7XG4gICAgcGVybWlzc2lvbklkOiBzdHJpbmc7XG4gICAgcGVybWlzc2lvblR5cGU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgIG1vZERhdGU6IG51bWJlcjtcbiAgICBob3N0OiBzdHJpbmc7XG4gICAgbGl2ZTogYm9vbGVhbjtcbiAgICBpbmRleFBvbGljeTogc3RyaW5nO1xuICAgIGNhdGVnb3J5SWQ6IHN0cmluZztcbiAgICBhY3Rpb25JZD86IGFueTtcbiAgICBuZXc6IGJvb2xlYW47XG4gICAgYXJjaGl2ZWQ6IGJvb2xlYW47XG4gICAgbG9ja2VkOiBib29sZWFuO1xuICAgIGRpc2FibGVkV3lzaXd5ZzogYW55W107XG4gICAgbW9kVXNlcjogc3RyaW5nO1xuICAgIHdvcmtpbmc6IGJvb2xlYW47XG4gICAgdGl0bGVJbWFnZToge1xuICAgICAgICBwcmVzZW50OiBib29sZWFuO1xuICAgIH07XG4gICAgZm9sZGVyOiBzdHJpbmc7XG4gICAgaHRtbHBhZ2U6IGJvb2xlYW47XG4gICAgZmlsZUFzc2V0OiBib29sZWFuO1xuICAgIHZhbml0eVVybDogYm9vbGVhbjtcbiAgICBrZXlWYWx1ZTogYm9vbGVhbjtcbiAgICBzdHJ1Y3R1cmU/OiBEb3RDTVNTaXRlU3RydWN0dXJlO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgbGFuZ3VhZ2VJZDogbnVtYmVyO1xuICAgIGluZGV4UG9saWN5RGVwZW5kZW5jaWVzOiBzdHJpbmc7XG4gICAgY29udGVudFR5cGVJZDogc3RyaW5nO1xuICAgIHZlcnNpb25JZDogc3RyaW5nO1xuICAgIGxhc3RSZXZpZXc6IG51bWJlcjtcbiAgICBuZXh0UmV2aWV3PzogYW55O1xuICAgIHJldmlld0ludGVydmFsPzogYW55O1xuICAgIHNvcnRPcmRlcjogbnVtYmVyO1xuICAgIGNvbnRlbnRUeXBlOiBEb3RDTVNTaXRlQ29udGVudFR5cGU7XG59XG5cbmludGVyZmFjZSBEb3RDTVNTaXRlQ29udGVudFR5cGUge1xuICAgIG93bmVyPzogYW55O1xuICAgIHBhcmVudFBlcm1pc3Npb25hYmxlOiBEb3RDTVNTaXRlUGFyZW50UGVybWlzc2lvbmFibGU7XG4gICAgcGVybWlzc2lvbklkOiBzdHJpbmc7XG4gICAgcGVybWlzc2lvblR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb3RDTVNTaXRlUGFyZW50UGVybWlzc2lvbmFibGUge1xuICAgIElub2RlOiBzdHJpbmc7XG4gICAgSWRlbnRpZmllcjogc3RyaW5nO1xuICAgIHBlcm1pc3Npb25CeUlkZW50aWZpZXI6IGJvb2xlYW47XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG93bmVyPzogYW55O1xuICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICBwZXJtaXNzaW9uSWQ6IHN0cmluZztcbiAgICBwYXJlbnRQZXJtaXNzaW9uYWJsZT86IGFueTtcbiAgICBwZXJtaXNzaW9uVHlwZTogc3RyaW5nO1xuICAgIGlub2RlOiBzdHJpbmc7XG4gICAgY2hpbGRyZW5QZXJtaXNzaW9uYWJsZT86IGFueTtcbiAgICB2YXJpYW50SWQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBEb3RDTVNTaXRlU3RydWN0dXJlIHtcbiAgICBpRGF0ZTogbnVtYmVyO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBvd25lcj86IGFueTtcbiAgICBpbm9kZTogc3RyaW5nO1xuICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBkZWZhdWx0U3RydWN0dXJlOiBib29sZWFuO1xuICAgIHJldmlld0ludGVydmFsPzogYW55O1xuICAgIHJldmlld2VyUm9sZT86IGFueTtcbiAgICBwYWdlZGV0YWlsPzogYW55O1xuICAgIHN0cnVjdHVyZVR5cGU6IG51bWJlcjtcbiAgICBmaXhlZDogYm9vbGVhbjtcbiAgICBzeXN0ZW06IGJvb2xlYW47XG4gICAgdmVsb2NpdHlWYXJOYW1lOiBzdHJpbmc7XG4gICAgdXJsTWFwUGF0dGVybj86IGFueTtcbiAgICBob3N0OiBzdHJpbmc7XG4gICAgZm9sZGVyOiBzdHJpbmc7XG4gICAgcHVibGlzaERhdGVWYXI/OiBhbnk7XG4gICAgZXhwaXJlRGF0ZVZhcj86IGFueTtcbiAgICBtb2REYXRlOiBudW1iZXI7XG4gICAgZmllbGRzOiBEb3RDTVNTaXRlRmllbGRbXTtcbiAgICB3aWRnZXQ6IGJvb2xlYW47XG4gICAgZGV0YWlsUGFnZT86IGFueTtcbiAgICBmaWVsZHNCeVNvcnRPcmRlcjogRG90Q01TU2l0ZUZpZWxkW107XG4gICAgZm9ybTogYm9vbGVhbjtcbiAgICBodG1scGFnZUFzc2V0OiBib29sZWFuO1xuICAgIGNvbnRlbnQ6IGJvb2xlYW47XG4gICAgZmlsZUFzc2V0OiBib29sZWFuO1xuICAgIHBlcnNvbmE6IGJvb2xlYW47XG4gICAgcGVybWlzc2lvbklkOiBzdHJpbmc7XG4gICAgcGVybWlzc2lvblR5cGU6IHN0cmluZztcbiAgICBsaXZlOiBib29sZWFuO1xuICAgIGNhdGVnb3J5SWQ6IHN0cmluZztcbiAgICBpZGF0ZTogbnVtYmVyO1xuICAgIG5ldzogYm9vbGVhbjtcbiAgICBhcmNoaXZlZDogYm9vbGVhbjtcbiAgICBsb2NrZWQ6IGJvb2xlYW47XG4gICAgbW9kVXNlcjogc3RyaW5nO1xuICAgIHdvcmtpbmc6IGJvb2xlYW47XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB2ZXJzaW9uSWQ6IHN0cmluZztcbiAgICB2ZXJzaW9uVHlwZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRG90Q01TU2l0ZUZpZWxkIHtcbiAgICBpRGF0ZTogbnVtYmVyO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBvd25lcj86IGFueTtcbiAgICBpbm9kZTogc3RyaW5nO1xuICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICBzdHJ1Y3R1cmVJbm9kZTogc3RyaW5nO1xuICAgIGZpZWxkTmFtZTogc3RyaW5nO1xuICAgIGZpZWxkVHlwZTogc3RyaW5nO1xuICAgIGZpZWxkUmVsYXRpb25UeXBlPzogYW55O1xuICAgIGZpZWxkQ29udGVudGxldDogc3RyaW5nO1xuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIHZlbG9jaXR5VmFyTmFtZTogc3RyaW5nO1xuICAgIHNvcnRPcmRlcjogbnVtYmVyO1xuICAgIHZhbHVlcz86IGFueTtcbiAgICByZWdleENoZWNrPzogYW55O1xuICAgIGhpbnQ/OiBhbnk7XG4gICAgZGVmYXVsdFZhbHVlPzogYW55O1xuICAgIGluZGV4ZWQ6IGJvb2xlYW47XG4gICAgbGlzdGVkOiBib29sZWFuO1xuICAgIGZpeGVkOiBib29sZWFuO1xuICAgIHJlYWRPbmx5OiBib29sZWFuO1xuICAgIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gICAgdW5pcXVlOiBib29sZWFuO1xuICAgIG1vZERhdGU6IG51bWJlcjtcbiAgICBkYXRhVHlwZTogc3RyaW5nO1xuICAgIGxpdmU6IGJvb2xlYW47XG4gICAgY2F0ZWdvcnlJZDogc3RyaW5nO1xuICAgIGlkYXRlOiBudW1iZXI7XG4gICAgbmV3OiBib29sZWFuO1xuICAgIGFyY2hpdmVkOiBib29sZWFuO1xuICAgIGxvY2tlZDogYm9vbGVhbjtcbiAgICBtb2RVc2VyOiBzdHJpbmc7XG4gICAgd29ya2luZzogYm9vbGVhbjtcbiAgICBwZXJtaXNzaW9uSWQ6IHN0cmluZztcbiAgICBwYXJlbnRQZXJtaXNzaW9uYWJsZT86IGFueTtcbiAgICBwZXJtaXNzaW9uVHlwZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdmVyc2lvbklkOiBzdHJpbmc7XG4gICAgdmVyc2lvblR5cGU6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ export * from './dotcms.model';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuZXhwb3J0ICogZnJvbSAnLi9kb3RjbXMubW9kZWwnO1xuXG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERvdENNU1BhZ2VBc3NldCB9IGZyb20gJy4vZG90Y21zLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgRHluYW1pY0NvbXBvbmVudEVudGl0eSA9IFByb21pc2U8VHlwZTxhbnk+PjtcblxuZXhwb3J0IGludGVyZmFjZSBEb3RDTVNQYWdlQ29udGV4dCB7XG4gICAgcGFnZUFzc2V0OiBEb3RDTVNQYWdlQXNzZXQ7XG4gICAgY29tcG9uZW50czogRG90Q01TUGFnZUNvbXBvbmVudDtcbiAgICBpc0luc2lkZUVkaXRvcjogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRG90Q01TUGFnZUNvbXBvbmVudCA9IFJlY29yZDxzdHJpbmcsIER5bmFtaWNDb21wb25lbnRFbnRpdHk+O1xuIl19
@@ -0,0 +1,35 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Injectable } from '@angular/core';
3
+ import { isInsideEditor } from '@dotcms/client';
4
+ import * as i0 from "@angular/core";
5
+ export class PageContextService {
6
+ constructor() {
7
+ this.pageContext = null;
8
+ }
9
+ get pageContextValue() {
10
+ return this.pageContext;
11
+ }
12
+ /**
13
+ * Set the context
14
+ *
15
+ * @protected
16
+ * @param {DotCMSPageAsset} value
17
+ * @memberof DotcmsContextService
18
+ */
19
+ setContext(pageAsset, components) {
20
+ this.pageContext = {
21
+ components,
22
+ pageAsset,
23
+ isInsideEditor: isInsideEditor()
24
+ };
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: PageContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
27
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: PageContextService, providedIn: 'root' }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: PageContextService, decorators: [{
30
+ type: Injectable,
31
+ args: [{
32
+ providedIn: 'root'
33
+ }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvZG90Y21zLWNvbnRleHQvcGFnZS1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVFoRCxNQUFNLE9BQU8sa0JBQWtCO0lBSC9CO1FBSVksZ0JBQVcsR0FBNkIsSUFBSSxDQUFDO0tBb0J4RDtJQWxCRyxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFnQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxVQUFVLENBQUMsU0FBMEIsRUFBRSxVQUErQjtRQUNsRSxJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2YsVUFBVTtZQUNWLFNBQVM7WUFDVCxjQUFjLEVBQUUsY0FBYyxFQUFFO1NBQ25DLENBQUM7SUFDTixDQUFDOzhHQXBCUSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZmLE1BQU07OzJGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgaXNJbnNpZGVFZGl0b3IgfSBmcm9tICdAZG90Y21zL2NsaWVudCc7XG5cbmltcG9ydCB7IERvdENNU1BhZ2VDb21wb25lbnQsIERvdENNU1BhZ2VDb250ZXh0IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IERvdENNU1BhZ2VBc3NldCB9IGZyb20gJy4uLy4uL21vZGVscy9kb3RjbXMubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VDb250ZXh0U2VydmljZSB7XG4gICAgcHJpdmF0ZSBwYWdlQ29udGV4dDogRG90Q01TUGFnZUNvbnRleHQgfCBudWxsID0gbnVsbDtcblxuICAgIGdldCBwYWdlQ29udGV4dFZhbHVlKCk6IERvdENNU1BhZ2VDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnZUNvbnRleHQgYXMgRG90Q01TUGFnZUNvbnRleHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBjb250ZXh0XG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICogQHBhcmFtIHtEb3RDTVNQYWdlQXNzZXR9IHZhbHVlXG4gICAgICogQG1lbWJlcm9mIERvdGNtc0NvbnRleHRTZXJ2aWNlXG4gICAgICovXG4gICAgc2V0Q29udGV4dChwYWdlQXNzZXQ6IERvdENNU1BhZ2VBc3NldCwgY29tcG9uZW50czogRG90Q01TUGFnZUNvbXBvbmVudCkge1xuICAgICAgICB0aGlzLnBhZ2VDb250ZXh0ID0ge1xuICAgICAgICAgICAgY29tcG9uZW50cyxcbiAgICAgICAgICAgIHBhZ2VBc3NldCxcbiAgICAgICAgICAgIGlzSW5zaWRlRWRpdG9yOiBpc0luc2lkZUVkaXRvcigpXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19