@dotcms/angular 0.0.1-beta.9 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +646 -167
  2. package/dotcms-angular.d.ts.map +1 -1
  3. package/esm2022/dotcms-angular.mjs +2 -2
  4. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/code.component.mjs +49 -0
  5. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.mjs +125 -0
  6. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/image.component.mjs +25 -0
  7. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/list.component.mjs +66 -0
  8. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/table.component.mjs +97 -0
  9. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/text.component.mjs +231 -0
  10. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/unknown.component.mjs +65 -0
  11. package/esm2022/lib/components/dotcms-block-editor-renderer/blocks/video.component.mjs +48 -0
  12. package/esm2022/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.mjs +50 -0
  13. package/esm2022/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.mjs +45 -0
  14. package/esm2022/lib/components/dotcms-editable-text/dotcms-editable-text.component.mjs +240 -0
  15. package/esm2022/lib/components/dotcms-editable-text/utils.mjs +20 -0
  16. package/esm2022/lib/components/dotcms-layout-body/components/column/column.component.mjs +45 -0
  17. package/esm2022/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.mjs +52 -0
  18. package/esm2022/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.mjs +47 -0
  19. package/esm2022/lib/components/dotcms-layout-body/components/container/container.component.mjs +99 -0
  20. package/esm2022/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.mjs +145 -0
  21. package/esm2022/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.mjs +47 -0
  22. package/esm2022/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.mjs +55 -0
  23. package/esm2022/lib/components/dotcms-layout-body/components/row/row.component.mjs +46 -0
  24. package/esm2022/lib/components/dotcms-layout-body/dotcms-layout-body.component.mjs +69 -0
  25. package/esm2022/lib/directives/dotcms-show-when/dotcms-show-when.directive.mjs +49 -0
  26. package/esm2022/lib/models/index.mjs +2 -2
  27. package/esm2022/lib/providers/dotcms-client/dotcms-client.provider.mjs +52 -0
  28. package/esm2022/lib/providers/dotcms-image-loader/dotcms-image_loader.mjs +74 -0
  29. package/esm2022/lib/services/dotcms-editable-page.service.mjs +93 -0
  30. package/esm2022/lib/store/dotcms.store.mjs +61 -0
  31. package/esm2022/public_api.mjs +8 -0
  32. package/fesm2022/dotcms-angular.mjs +1578 -612
  33. package/fesm2022/dotcms-angular.mjs.map +1 -1
  34. package/index.d.ts +6 -6
  35. package/lib/components/dotcms-block-editor-renderer/blocks/code.component.d.ts +10 -0
  36. package/lib/components/dotcms-block-editor-renderer/blocks/code.component.d.ts.map +1 -0
  37. package/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts +34 -0
  38. package/lib/components/dotcms-block-editor-renderer/blocks/dot-contentlet.component.d.ts.map +1 -0
  39. package/lib/components/dotcms-block-editor-renderer/blocks/image.component.d.ts +9 -0
  40. package/lib/components/dotcms-block-editor-renderer/blocks/image.component.d.ts.map +1 -0
  41. package/lib/components/dotcms-block-editor-renderer/blocks/list.component.d.ts +14 -0
  42. package/lib/components/dotcms-block-editor-renderer/blocks/list.component.d.ts.map +1 -0
  43. package/lib/components/dotcms-block-editor-renderer/blocks/table.component.d.ts +10 -0
  44. package/lib/components/dotcms-block-editor-renderer/blocks/table.component.d.ts.map +1 -0
  45. package/lib/components/dotcms-block-editor-renderer/blocks/text.component.d.ts +27 -0
  46. package/lib/components/dotcms-block-editor-renderer/blocks/text.component.d.ts.map +1 -0
  47. package/lib/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts +18 -0
  48. package/lib/components/dotcms-block-editor-renderer/blocks/unknown.component.d.ts.map +1 -0
  49. package/lib/components/dotcms-block-editor-renderer/blocks/video.component.d.ts +10 -0
  50. package/lib/components/dotcms-block-editor-renderer/blocks/video.component.d.ts.map +1 -0
  51. package/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts +39 -0
  52. package/lib/components/dotcms-block-editor-renderer/dotcms-block-editor-renderer.component.d.ts.map +1 -0
  53. package/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts +12 -0
  54. package/lib/components/dotcms-block-editor-renderer/item/dotcms-block-editor-item.component.d.ts.map +1 -0
  55. package/lib/components/{dot-editable-text/dot-editable-text.component.d.ts → dotcms-editable-text/dotcms-editable-text.component.d.ts} +30 -30
  56. package/lib/components/dotcms-editable-text/dotcms-editable-text.component.d.ts.map +1 -0
  57. package/lib/components/dotcms-editable-text/utils.d.ts.map +1 -0
  58. package/lib/components/dotcms-layout-body/components/column/column.component.d.ts +21 -0
  59. package/lib/components/dotcms-layout-body/components/column/column.component.d.ts.map +1 -0
  60. package/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts +27 -0
  61. package/lib/components/dotcms-layout-body/components/container/components/container-not-found/container-not-found.component.d.ts.map +1 -0
  62. package/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts +23 -0
  63. package/lib/components/dotcms-layout-body/components/container/components/empty-container/empty-container.component.d.ts.map +1 -0
  64. package/lib/components/dotcms-layout-body/components/container/container.component.d.ts +32 -0
  65. package/lib/components/dotcms-layout-body/components/container/container.component.d.ts.map +1 -0
  66. package/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts +48 -0
  67. package/lib/components/dotcms-layout-body/components/contentlet/contentlet.component.d.ts.map +1 -0
  68. package/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts +16 -0
  69. package/lib/components/dotcms-layout-body/components/fallback-component/fallback-component.component.d.ts.map +1 -0
  70. package/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts +13 -0
  71. package/lib/components/dotcms-layout-body/components/page-error-message/page-error-message.component.d.ts.map +1 -0
  72. package/lib/components/dotcms-layout-body/components/row/row.component.d.ts +22 -0
  73. package/lib/components/dotcms-layout-body/components/row/row.component.d.ts.map +1 -0
  74. package/lib/components/dotcms-layout-body/dotcms-layout-body.component.d.ts +30 -0
  75. package/lib/components/dotcms-layout-body/dotcms-layout-body.component.d.ts.map +1 -0
  76. package/lib/directives/dotcms-show-when/dotcms-show-when.directive.d.ts +21 -0
  77. package/lib/directives/dotcms-show-when/dotcms-show-when.directive.d.ts.map +1 -0
  78. package/lib/models/index.d.ts +9 -10
  79. package/lib/models/index.d.ts.map +1 -1
  80. package/lib/providers/dotcms-client/dotcms-client.provider.d.ts +60 -0
  81. package/lib/providers/dotcms-client/dotcms-client.provider.d.ts.map +1 -0
  82. package/lib/{utils/image_loader.d.ts → providers/dotcms-image-loader/dotcms-image_loader.d.ts} +1 -1
  83. package/lib/providers/dotcms-image-loader/dotcms-image_loader.d.ts.map +1 -0
  84. package/lib/services/dotcms-editable-page.service.d.ts +40 -0
  85. package/lib/services/dotcms-editable-page.service.d.ts.map +1 -0
  86. package/lib/store/dotcms.store.d.ts +36 -0
  87. package/lib/store/dotcms.store.d.ts.map +1 -0
  88. package/package.json +9 -9
  89. package/public_api.d.ts +9 -0
  90. package/public_api.d.ts.map +1 -0
  91. package/esm2022/index.mjs +0 -6
  92. package/esm2022/lib/components/dot-editable-text/dot-editable-text.component.mjs +0 -225
  93. package/esm2022/lib/components/dot-editable-text/utils.mjs +0 -43
  94. package/esm2022/lib/components/no-component/no-component.component.mjs +0 -32
  95. package/esm2022/lib/layout/column/column.component.mjs +0 -45
  96. package/esm2022/lib/layout/container/container.component.mjs +0 -126
  97. package/esm2022/lib/layout/contentlet/contentlet.component.mjs +0 -120
  98. package/esm2022/lib/layout/dotcms-layout/dotcms-layout.component.mjs +0 -101
  99. package/esm2022/lib/layout/row/row.component.mjs +0 -29
  100. package/esm2022/lib/models/dotcms.model.mjs +0 -3
  101. package/esm2022/lib/services/dotcms-context/page-context.service.mjs +0 -75
  102. package/esm2022/lib/utils/image_loader.mjs +0 -75
  103. package/esm2022/lib/utils/index.mjs +0 -84
  104. package/index.d.ts.map +0 -1
  105. package/lib/components/dot-editable-text/dot-editable-text.component.d.ts.map +0 -1
  106. package/lib/components/dot-editable-text/utils.d.ts.map +0 -1
  107. package/lib/components/no-component/no-component.component.d.ts +0 -22
  108. package/lib/components/no-component/no-component.component.d.ts.map +0 -1
  109. package/lib/layout/column/column.component.d.ts +0 -29
  110. package/lib/layout/column/column.component.d.ts.map +0 -1
  111. package/lib/layout/container/container.component.d.ts +0 -88
  112. package/lib/layout/container/container.component.d.ts.map +0 -1
  113. package/lib/layout/contentlet/contentlet.component.d.ts +0 -86
  114. package/lib/layout/contentlet/contentlet.component.d.ts.map +0 -1
  115. package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts +0 -68
  116. package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts.map +0 -1
  117. package/lib/layout/row/row.component.d.ts +0 -20
  118. package/lib/layout/row/row.component.d.ts.map +0 -1
  119. package/lib/models/dotcms.model.d.ts +0 -416
  120. package/lib/models/dotcms.model.d.ts.map +0 -1
  121. package/lib/services/dotcms-context/page-context.service.d.ts +0 -49
  122. package/lib/services/dotcms-context/page-context.service.d.ts.map +0 -1
  123. package/lib/utils/image_loader.d.ts.map +0 -1
  124. package/lib/utils/index.d.ts +0 -63
  125. package/lib/utils/index.d.ts.map +0 -1
  126. /package/lib/components/{dot-editable-text → dotcms-editable-text}/utils.d.ts +0 -0
@@ -1,126 +0,0 @@
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
- /**
9
- * This component is responsible to display a container with contentlets.
10
- *
11
- * @export
12
- * @class ContainerComponent
13
- * @implements {OnChanges}
14
- */
15
- export class ContainerComponent {
16
- constructor() {
17
- this.pageContextService = inject(PageContextService);
18
- this.NoComponent = NoComponent;
19
- this.$isInsideEditor = signal(false);
20
- this.$contentlets = signal([]);
21
- this.$dotContainer = signal(null);
22
- this.$dotContainerAsString = computed(() => JSON.stringify(this.$dotContainer()));
23
- /**
24
- * The accept types for the container component.
25
- *
26
- * @type {(string | null)}
27
- * @memberof ContainerComponent
28
- */
29
- this.acceptTypes = null;
30
- /**
31
- * The identifier for the container component.
32
- *
33
- * @type {(string | null)}
34
- * @memberof ContainerComponent
35
- */
36
- this.identifier = null;
37
- /**
38
- * The max contentlets for the container component.
39
- *
40
- * @type {(number | null)}
41
- * @memberof ContainerComponent
42
- */
43
- this.maxContentlets = null;
44
- /**
45
- * The uuid for the container component.
46
- *
47
- * @type {(string | null)}
48
- * @memberof ContainerComponent
49
- */
50
- this.uuid = null;
51
- /**
52
- * The class for the container component.
53
- *
54
- * @type {(string | null)}
55
- * @memberof ContainerComponent
56
- */
57
- this.class = null;
58
- /**
59
- * The dot object for the container component.
60
- *
61
- * @type {(string | null)}
62
- * @memberof ContainerComponent
63
- */
64
- this.dotObject = null;
65
- /**
66
- * The data-testid attribute used for identifying the component during testing.
67
- *
68
- * @memberof ContainerComponent
69
- */
70
- this.testId = 'dot-container';
71
- }
72
- ngOnChanges() {
73
- const { pageAsset, components, isInsideEditor } = this.pageContextService.context;
74
- const { acceptTypes, maxContentlets, variantId, path, contentlets } = getContainersData(pageAsset.containers, this.container);
75
- const { identifier, uuid } = this.container;
76
- this.componentsMap = components;
77
- this.$isInsideEditor.set(isInsideEditor);
78
- this.$contentlets.set(contentlets);
79
- this.$dotContainer.set({
80
- identifier: path ?? identifier,
81
- acceptTypes,
82
- maxContentlets,
83
- variantId,
84
- uuid
85
- });
86
- if (this.$isInsideEditor()) {
87
- this.acceptTypes = acceptTypes;
88
- this.identifier = identifier;
89
- this.maxContentlets = maxContentlets;
90
- this.uuid = uuid;
91
- this.class = this.$contentlets().length ? null : 'empty-container';
92
- this.dotObject = 'container';
93
- }
94
- }
95
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
96
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", 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()) {\n @if ($contentlets().length) {\n @for (contentlet of $contentlets(); track $index) {\n <dotcms-contentlet-wrapper\n [contentlet]=\"contentlet\"\n [container]=\"$dotContainerAsString()\">\n <ng-container\n *ngComponentOutlet=\"\n (componentsMap[contentlet.contentType] || componentsMap['CustomNoComponent']\n | async) || NoComponent;\n inputs: { contentlet }\n \" />\n </dotcms-contentlet-wrapper>\n }\n } @else {\n This container is empty.\n }\n} @else {\n @for (contentlet of $contentlets(); track $index) {\n <ng-container\n *ngComponentOutlet=\"\n componentsMap[contentlet.contentType] | async;\n inputs: { contentlet }\n \" />\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 }); }
97
- }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ContainerComponent, decorators: [{
99
- type: Component,
100
- args: [{ selector: 'dotcms-container', standalone: true, imports: [AsyncPipe, NgComponentOutlet, NoComponent, ContentletComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if ($isInsideEditor()) {\n @if ($contentlets().length) {\n @for (contentlet of $contentlets(); track $index) {\n <dotcms-contentlet-wrapper\n [contentlet]=\"contentlet\"\n [container]=\"$dotContainerAsString()\">\n <ng-container\n *ngComponentOutlet=\"\n (componentsMap[contentlet.contentType] || componentsMap['CustomNoComponent']\n | async) || NoComponent;\n inputs: { contentlet }\n \" />\n </dotcms-contentlet-wrapper>\n }\n } @else {\n This container is empty.\n }\n} @else {\n @for (contentlet of $contentlets(); track $index) {\n <ng-container\n *ngComponentOutlet=\"\n componentsMap[contentlet.contentType] | async;\n inputs: { contentlet }\n \" />\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"] }]
101
- }], propDecorators: { container: [{
102
- type: Input,
103
- args: [{ required: true }]
104
- }], acceptTypes: [{
105
- type: HostBinding,
106
- args: ['attr.data-dot-accept-types']
107
- }], identifier: [{
108
- type: HostBinding,
109
- args: ['attr.data-dot-identifier']
110
- }], maxContentlets: [{
111
- type: HostBinding,
112
- args: ['attr.data-max-contentlets']
113
- }], uuid: [{
114
- type: HostBinding,
115
- args: ['attr.data-dot-uuid']
116
- }], class: [{
117
- type: HostBinding,
118
- args: ['class']
119
- }], dotObject: [{
120
- type: HostBinding,
121
- args: ['attr.data-dot-object']
122
- }], testId: [{
123
- type: HostBinding,
124
- args: ['attr.data-testid']
125
- }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9sYXlvdXQvY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvbGF5b3V0L2NvbnRhaW5lci9jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBR25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFVekU7Ozs7OztHQU1HO0FBU0gsTUFBTSxPQUFPLGtCQUFrQjtJQVIvQjtRQWlCcUIsdUJBQWtCLEdBQXVCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xFLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBR2xELGlCQUFZLEdBQUcsTUFBTSxDQUFxQixFQUFFLENBQUMsQ0FBQztRQUM5QyxrQkFBYSxHQUFHLE1BQU0sQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFDbEQsMEJBQXFCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV2Rjs7Ozs7V0FLRztRQUN3QyxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFFN0U7Ozs7O1dBS0c7UUFDc0MsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFDMUU7Ozs7O1dBS0c7UUFDdUMsbUJBQWMsR0FBa0IsSUFBSSxDQUFDO1FBQy9FOzs7OztXQUtHO1FBQ2dDLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBQzlEOzs7OztXQUtHO1FBQ21CLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQ2xEOzs7OztXQUtHO1FBQ2tDLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ3JFOzs7O1dBSUc7UUFDOEIsV0FBTSxHQUFHLGVBQWUsQ0FBQztLQStCN0Q7SUE3QkcsV0FBVztRQUNQLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7UUFDbEYsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxpQkFBaUIsQ0FDbkYsU0FBUyxDQUFDLFVBQVUsRUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FDakIsQ0FBQztRQUNGLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUU1QyxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQztRQUVoQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQztZQUNuQixVQUFVLEVBQUUsSUFBSSxJQUFJLFVBQVU7WUFDOUIsV0FBVztZQUNYLGNBQWM7WUFDZCxTQUFTO1lBQ1QsSUFBSTtTQUNQLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7WUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7WUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1lBQ25FLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDOzhHQWhHUSxrQkFBa0I7a0dBQWxCLGtCQUFrQiwyYkMxQy9CLDY2QkEwQkEsbU1EV2MsU0FBUyw4Q0FBRSxpQkFBaUIsb1BBQWUsbUJBQW1COzsyRkFLL0Qsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNJLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDLG1CQUd4RCx1QkFBdUIsQ0FBQyxNQUFNOzhCQVNwQixTQUFTO3NCQUFuQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFpQmtCLFdBQVc7c0JBQXJELFdBQVc7dUJBQUMsNEJBQTRCO2dCQVFBLFVBQVU7c0JBQWxELFdBQVc7dUJBQUMsMEJBQTBCO2dCQU9HLGNBQWM7c0JBQXZELFdBQVc7dUJBQUMsMkJBQTJCO2dCQU9MLElBQUk7c0JBQXRDLFdBQVc7dUJBQUMsb0JBQW9CO2dCQU9YLEtBQUs7c0JBQTFCLFdBQVc7dUJBQUMsT0FBTztnQkFPaUIsU0FBUztzQkFBN0MsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBTUYsTUFBTTtzQkFBdEMsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ29tcG9uZW50T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBjb21wdXRlZCxcbiAgICBpbmplY3QsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOb0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbm8tY29tcG9uZW50L25vLWNvbXBvbmVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEVudGl0eSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBEb3RDTVNDb250YWluZXIsIERvdENNU0NvbnRlbnRsZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZG90Y21zLm1vZGVsJztcbmltcG9ydCB7IFBhZ2VDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RvdGNtcy1jb250ZXh0L3BhZ2UtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IGdldENvbnRhaW5lcnNEYXRhIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudGxldENvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRlbnRsZXQvY29udGVudGxldC5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgRG90Q29udGFpbmVyIHtcbiAgICBhY2NlcHRUeXBlczogc3RyaW5nO1xuICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICBtYXhDb250ZW50bGV0czogbnVtYmVyO1xuICAgIHV1aWQ6IHN0cmluZztcbiAgICB2YXJpYW50SWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgaXMgcmVzcG9uc2libGUgdG8gZGlzcGxheSBhIGNvbnRhaW5lciB3aXRoIGNvbnRlbnRsZXRzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBDb250YWluZXJDb21wb25lbnRcbiAqIEBpbXBsZW1lbnRzIHtPbkNoYW5nZXN9XG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG90Y21zLWNvbnRhaW5lcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBOZ0NvbXBvbmVudE91dGxldCwgTm9Db21wb25lbnQsIENvbnRlbnRsZXRDb21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9jb250YWluZXIuY29tcG9uZW50LmNzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29udGFpbmVyIG9iamVjdCBjb250YWluaW5nIHRoZSBjb250ZW50bGV0cy5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtEb3RDTVNDb250YWluZXJ9XG4gICAgICogQG1lbWJlcm9mIENvbnRhaW5lckNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbnRhaW5lciE6IERvdENNU0NvbnRhaW5lcjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZUNvbnRleHRTZXJ2aWNlOiBQYWdlQ29udGV4dFNlcnZpY2UgPSBpbmplY3QoUGFnZUNvbnRleHRTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgTm9Db21wb25lbnQgPSBOb0NvbXBvbmVudDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgJGlzSW5zaWRlRWRpdG9yID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIHByb3RlY3RlZCBjb21wb25lbnRzTWFwITogUmVjb3JkPHN0cmluZywgRHluYW1pY0NvbXBvbmVudEVudGl0eT47XG4gICAgcHJvdGVjdGVkICRjb250ZW50bGV0cyA9IHNpZ25hbDxEb3RDTVNDb250ZW50bGV0W10+KFtdKTtcbiAgICBwcm90ZWN0ZWQgJGRvdENvbnRhaW5lciA9IHNpZ25hbDxEb3RDb250YWluZXIgfCBudWxsPihudWxsKTtcbiAgICBwcm90ZWN0ZWQgJGRvdENvbnRhaW5lckFzU3RyaW5nID0gY29tcHV0ZWQoKCkgPT4gSlNPTi5zdHJpbmdpZnkodGhpcy4kZG90Q29udGFpbmVyKCkpKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBhY2NlcHQgdHlwZXMgZm9yIHRoZSBjb250YWluZXIgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogQHR5cGUgeyhzdHJpbmcgfCBudWxsKX1cbiAgICAgKiBAbWVtYmVyb2YgQ29udGFpbmVyQ29tcG9uZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZG90LWFjY2VwdC10eXBlcycpIGFjY2VwdFR5cGVzOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgY29udGFpbmVyIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHsoc3RyaW5nIHwgbnVsbCl9XG4gICAgICogQG1lbWJlcm9mIENvbnRhaW5lckNvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRvdC1pZGVudGlmaWVyJykgaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgLyoqXG4gICAgICogVGhlIG1heCBjb250ZW50bGV0cyBmb3IgdGhlIGNvbnRhaW5lciBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7KG51bWJlciB8IG51bGwpfVxuICAgICAqIEBtZW1iZXJvZiBDb250YWluZXJDb21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1tYXgtY29udGVudGxldHMnKSBtYXhDb250ZW50bGV0czogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgLyoqXG4gICAgICogVGhlIHV1aWQgZm9yIHRoZSBjb250YWluZXIgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogQHR5cGUgeyhzdHJpbmcgfCBudWxsKX1cbiAgICAgKiBAbWVtYmVyb2YgQ29udGFpbmVyQ29tcG9uZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZG90LXV1aWQnKSB1dWlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAvKipcbiAgICAgKiBUaGUgY2xhc3MgZm9yIHRoZSBjb250YWluZXIgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogQHR5cGUgeyhzdHJpbmcgfCBudWxsKX1cbiAgICAgKiBAbWVtYmVyb2YgQ29udGFpbmVyQ29tcG9uZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAvKipcbiAgICAgKiBUaGUgZG90IG9iamVjdCBmb3IgdGhlIGNvbnRhaW5lciBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7KHN0cmluZyB8IG51bGwpfVxuICAgICAqIEBtZW1iZXJvZiBDb250YWluZXJDb21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3Qtb2JqZWN0JykgZG90T2JqZWN0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YS10ZXN0aWQgYXR0cmlidXRlIHVzZWQgZm9yIGlkZW50aWZ5aW5nIHRoZSBjb21wb25lbnQgZHVyaW5nIHRlc3RpbmcuXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgQ29udGFpbmVyQ29tcG9uZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdGVzdGlkJykgdGVzdElkID0gJ2RvdC1jb250YWluZXInO1xuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIGNvbnN0IHsgcGFnZUFzc2V0LCBjb21wb25lbnRzLCBpc0luc2lkZUVkaXRvciB9ID0gdGhpcy5wYWdlQ29udGV4dFNlcnZpY2UuY29udGV4dDtcbiAgICAgICAgY29uc3QgeyBhY2NlcHRUeXBlcywgbWF4Q29udGVudGxldHMsIHZhcmlhbnRJZCwgcGF0aCwgY29udGVudGxldHMgfSA9IGdldENvbnRhaW5lcnNEYXRhKFxuICAgICAgICAgICAgcGFnZUFzc2V0LmNvbnRhaW5lcnMsXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lclxuICAgICAgICApO1xuICAgICAgICBjb25zdCB7IGlkZW50aWZpZXIsIHV1aWQgfSA9IHRoaXMuY29udGFpbmVyO1xuXG4gICAgICAgIHRoaXMuY29tcG9uZW50c01hcCA9IGNvbXBvbmVudHM7XG5cbiAgICAgICAgdGhpcy4kaXNJbnNpZGVFZGl0b3Iuc2V0KGlzSW5zaWRlRWRpdG9yKTtcbiAgICAgICAgdGhpcy4kY29udGVudGxldHMuc2V0KGNvbnRlbnRsZXRzKTtcbiAgICAgICAgdGhpcy4kZG90Q29udGFpbmVyLnNldCh7XG4gICAgICAgICAgICBpZGVudGlmaWVyOiBwYXRoID8/IGlkZW50aWZpZXIsXG4gICAgICAgICAgICBhY2NlcHRUeXBlcyxcbiAgICAgICAgICAgIG1heENvbnRlbnRsZXRzLFxuICAgICAgICAgICAgdmFyaWFudElkLFxuICAgICAgICAgICAgdXVpZFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy4kaXNJbnNpZGVFZGl0b3IoKSkge1xuICAgICAgICAgICAgdGhpcy5hY2NlcHRUeXBlcyA9IGFjY2VwdFR5cGVzO1xuICAgICAgICAgICAgdGhpcy5pZGVudGlmaWVyID0gaWRlbnRpZmllcjtcbiAgICAgICAgICAgIHRoaXMubWF4Q29udGVudGxldHMgPSBtYXhDb250ZW50bGV0cztcbiAgICAgICAgICAgIHRoaXMudXVpZCA9IHV1aWQ7XG4gICAgICAgICAgICB0aGlzLmNsYXNzID0gdGhpcy4kY29udGVudGxldHMoKS5sZW5ndGggPyBudWxsIDogJ2VtcHR5LWNvbnRhaW5lcic7XG4gICAgICAgICAgICB0aGlzLmRvdE9iamVjdCA9ICdjb250YWluZXInO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmICgkaXNJbnNpZGVFZGl0b3IoKSkge1xuICAgIEBpZiAoJGNvbnRlbnRsZXRzKCkubGVuZ3RoKSB7XG4gICAgICAgIEBmb3IgKGNvbnRlbnRsZXQgb2YgJGNvbnRlbnRsZXRzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGRvdGNtcy1jb250ZW50bGV0LXdyYXBwZXJcbiAgICAgICAgICAgICAgICBbY29udGVudGxldF09XCJjb250ZW50bGV0XCJcbiAgICAgICAgICAgICAgICBbY29udGFpbmVyXT1cIiRkb3RDb250YWluZXJBc1N0cmluZygpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb21wb25lbnRzTWFwW2NvbnRlbnRsZXQuY29udGVudFR5cGVdIHx8IGNvbXBvbmVudHNNYXBbJ0N1c3RvbU5vQ29tcG9uZW50J11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGFzeW5jKSB8fCBOb0NvbXBvbmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0czogeyBjb250ZW50bGV0IH1cbiAgICAgICAgICAgICAgICAgICAgXCIgLz5cbiAgICAgICAgICAgIDwvZG90Y21zLWNvbnRlbnRsZXQtd3JhcHBlcj5cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBUaGlzIGNvbnRhaW5lciBpcyBlbXB0eS5cbiAgICB9XG59IEBlbHNlIHtcbiAgICBAZm9yIChjb250ZW50bGV0IG9mICRjb250ZW50bGV0cygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgY29tcG9uZW50c01hcFtjb250ZW50bGV0LmNvbnRlbnRUeXBlXSB8IGFzeW5jO1xuICAgICAgICAgICAgICAgIGlucHV0czogeyBjb250ZW50bGV0IH1cbiAgICAgICAgICAgIFwiIC8+XG4gICAgfVxufVxuIl19
@@ -1,120 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * This component is responsible to display a contentlet.
5
- *
6
- * @export
7
- * @class ContentletComponent
8
- * @implements {OnChanges}
9
- */
10
- export class ContentletComponent {
11
- constructor() {
12
- /**
13
- * The identifier of contentlet component.
14
- *
15
- * @type {(string | null)}
16
- * @memberof ContentletComponent
17
- */
18
- this.identifier = null;
19
- /**
20
- * The base type of contentlet component.
21
- *
22
- * @type {(string | null)}
23
- * @memberof ContentletComponent
24
- */
25
- this.baseType = null;
26
- /**
27
- * The title of contentlet component.
28
- *
29
- * @type {(string | null)}
30
- * @memberof ContentletComponent
31
- */
32
- this.title = null;
33
- /**
34
- * The inode of contentlet component.
35
- *
36
- * @type {(string | null)}
37
- * @memberof ContentletComponent
38
- */
39
- this.inode = null;
40
- /**
41
- * The type of contentlet component.
42
- *
43
- * @type {(string | null)}
44
- * @memberof ContentletComponent
45
- */
46
- this.dotType = null;
47
- /**
48
- * The container of contentlet component.
49
- *
50
- * @type {(string | null)}
51
- * @memberof ContentletComponent
52
- */
53
- this.dotContainer = null;
54
- /**
55
- * The number of pages where the contentlet appears
56
- *
57
- * @type {(string | null)}
58
- * @memberof ContentletComponent
59
- */
60
- this.numberOfPages = null;
61
- /**
62
- * The content of contentlet component.
63
- *
64
- * @type {(string | null)}
65
- * @memberof ContentletComponent
66
- */
67
- this.dotContent = null;
68
- }
69
- ngOnChanges() {
70
- this.identifier = this.contentlet.identifier;
71
- this.baseType = this.contentlet.baseType;
72
- this.title = this.contentlet.title;
73
- this.inode = this.contentlet.inode;
74
- this.dotType = this.contentlet.contentType;
75
- this.dotContainer = this.container;
76
- this.numberOfPages = this.contentlet['onNumberOfPages'];
77
- this.dotContent = 'contentlet';
78
- }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ContentletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", 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 }); }
81
- }
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ContentletComponent, decorators: [{
83
- type: Component,
84
- args: [{
85
- selector: 'dotcms-contentlet-wrapper',
86
- standalone: true,
87
- template: '<ng-content></ng-content>',
88
- changeDetection: ChangeDetectionStrategy.OnPush
89
- }]
90
- }], propDecorators: { contentlet: [{
91
- type: Input,
92
- args: [{ required: true }]
93
- }], container: [{
94
- type: Input
95
- }], identifier: [{
96
- type: HostBinding,
97
- args: ['attr.data-dot-identifier']
98
- }], baseType: [{
99
- type: HostBinding,
100
- args: ['attr.data-dot-basetype']
101
- }], title: [{
102
- type: HostBinding,
103
- args: ['attr.data-dot-title']
104
- }], inode: [{
105
- type: HostBinding,
106
- args: ['attr.data-dot-inode']
107
- }], dotType: [{
108
- type: HostBinding,
109
- args: ['attr.data-dot-type']
110
- }], dotContainer: [{
111
- type: HostBinding,
112
- args: ['attr.data-dot-container']
113
- }], numberOfPages: [{
114
- type: HostBinding,
115
- args: ['attr.data-dot-on-number-of-pages']
116
- }], dotContent: [{
117
- type: HostBinding,
118
- args: ['attr.data-dot-object']
119
- }] } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGxldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvbGF5b3V0L2NvbnRlbnRsZXQvY29udGVudGxldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDOztBQUlsRzs7Ozs7O0dBTUc7QUFPSCxNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBc0JJOzs7OztXQUtHO1FBQ3NDLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBQzFFOzs7OztXQUtHO1FBQ29DLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBQ3RFOzs7OztXQUtHO1FBQ2lDLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQ2hFOzs7OztXQUtHO1FBQ2lDLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQ2hFOzs7OztXQUtHO1FBQ2dDLFlBQU8sR0FBa0IsSUFBSSxDQUFDO1FBQ2pFOzs7OztXQUtHO1FBQ3FDLGlCQUFZLEdBQWtCLElBQUksQ0FBQztRQUMzRTs7Ozs7V0FLRztRQUM4QyxrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFDckY7Ozs7O1dBS0c7UUFDa0MsZUFBVSxHQUFrQixJQUFJLENBQUM7S0FZekU7SUFWRyxXQUFXO1FBQ1AsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQzNDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDOzhHQWxGUSxtQkFBbUI7a0dBQW5CLG1CQUFtQixpaUJBSGxCLDJCQUEyQjs7MkZBRzVCLG1CQUFtQjtrQkFOL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOzhCQVE4QixVQUFVO3NCQUFwQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFPaEIsU0FBUztzQkFBakIsS0FBSztnQkFRbUMsVUFBVTtzQkFBbEQsV0FBVzt1QkFBQywwQkFBMEI7Z0JBT0EsUUFBUTtzQkFBOUMsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBT0QsS0FBSztzQkFBeEMsV0FBVzt1QkFBQyxxQkFBcUI7Z0JBT0UsS0FBSztzQkFBeEMsV0FBVzt1QkFBQyxxQkFBcUI7Z0JBT0MsT0FBTztzQkFBekMsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBT08sWUFBWTtzQkFBbkQsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBT1csYUFBYTtzQkFBN0QsV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBT1YsVUFBVTtzQkFBOUMsV0FBVzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3RDTVNDb250ZW50bGV0IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZXNwb25zaWJsZSB0byBkaXNwbGF5IGEgY29udGVudGxldC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgQ29udGVudGxldENvbXBvbmVudFxuICogQGltcGxlbWVudHMge09uQ2hhbmdlc31cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtY29udGVudGxldC13cmFwcGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudGxldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbnRlbnRsZXQgb2JqZWN0IGNvbnRhaW5pbmcgY29udGVudCBkYXRhLlxuICAgICAqXG4gICAgICogQHR5cGUge0RvdENNU0NvbnRlbnRsZXR9XG4gICAgICogQG1lbWJlcm9mIENvbnRlbnRsZXRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb250ZW50bGV0ITogRG90Q01TQ29udGVudGxldDtcbiAgICAvKipcbiAgICAgKiBUaGUgY29udGFpbmVyIGRhdGEgKGFzIHN0cmluZykgd2hlcmUgdGhlIGNvbnRlbnRsZXQgaXMgbG9jYXRlZC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICogQG1lbWJlcm9mIENvbnRlbnRsZXRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjb250YWluZXIhOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWRlbnRpZmllciBvZiBjb250ZW50bGV0IGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHsoc3RyaW5nIHwgbnVsbCl9XG4gICAgICogQG1lbWJlcm9mIENvbnRlbnRsZXRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3QtaWRlbnRpZmllcicpIGlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIHR5cGUgb2YgY29udGVudGxldCBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7KHN0cmluZyB8IG51bGwpfVxuICAgICAqIEBtZW1iZXJvZiBDb250ZW50bGV0Q29tcG9uZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZG90LWJhc2V0eXBlJykgYmFzZVR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIFRoZSB0aXRsZSBvZiBjb250ZW50bGV0IGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHsoc3RyaW5nIHwgbnVsbCl9XG4gICAgICogQG1lbWJlcm9mIENvbnRlbnRsZXRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3QtdGl0bGUnKSB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgLyoqXG4gICAgICogVGhlIGlub2RlIG9mIGNvbnRlbnRsZXQgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogQHR5cGUgeyhzdHJpbmcgfCBudWxsKX1cbiAgICAgKiBAbWVtYmVyb2YgQ29udGVudGxldENvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRvdC1pbm9kZScpIGlub2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAvKipcbiAgICAgKiBUaGUgdHlwZSBvZiBjb250ZW50bGV0IGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHsoc3RyaW5nIHwgbnVsbCl9XG4gICAgICogQG1lbWJlcm9mIENvbnRlbnRsZXRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1kb3QtdHlwZScpIGRvdFR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIFRoZSBjb250YWluZXIgb2YgY29udGVudGxldCBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7KHN0cmluZyB8IG51bGwpfVxuICAgICAqIEBtZW1iZXJvZiBDb250ZW50bGV0Q29tcG9uZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZG90LWNvbnRhaW5lcicpIGRvdENvbnRhaW5lcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiBwYWdlcyB3aGVyZSB0aGUgY29udGVudGxldCBhcHBlYXJzXG4gICAgICpcbiAgICAgKiBAdHlwZSB7KHN0cmluZyB8IG51bGwpfVxuICAgICAqIEBtZW1iZXJvZiBDb250ZW50bGV0Q29tcG9uZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZG90LW9uLW51bWJlci1vZi1wYWdlcycpIG51bWJlck9mUGFnZXM6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIFRoZSBjb250ZW50IG9mIGNvbnRlbnRsZXQgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogQHR5cGUgeyhzdHJpbmcgfCBudWxsKX1cbiAgICAgKiBAbWVtYmVyb2YgQ29udGVudGxldENvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRvdC1vYmplY3QnKSBkb3RDb250ZW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLmlkZW50aWZpZXIgPSB0aGlzLmNvbnRlbnRsZXQuaWRlbnRpZmllcjtcbiAgICAgICAgdGhpcy5iYXNlVHlwZSA9IHRoaXMuY29udGVudGxldC5iYXNlVHlwZTtcbiAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMuY29udGVudGxldC50aXRsZTtcbiAgICAgICAgdGhpcy5pbm9kZSA9IHRoaXMuY29udGVudGxldC5pbm9kZTtcbiAgICAgICAgdGhpcy5kb3RUeXBlID0gdGhpcy5jb250ZW50bGV0LmNvbnRlbnRUeXBlO1xuICAgICAgICB0aGlzLmRvdENvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyO1xuICAgICAgICB0aGlzLm51bWJlck9mUGFnZXMgPSB0aGlzLmNvbnRlbnRsZXRbJ29uTnVtYmVyT2ZQYWdlcyddO1xuICAgICAgICB0aGlzLmRvdENvbnRlbnQgPSAnY29udGVudGxldCc7XG4gICAgfVxufVxuIl19
@@ -1,101 +0,0 @@
1
- import { AsyncPipe } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, DestroyRef, Input, inject } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import { ActivatedRoute } from '@angular/router';
5
- import { CLIENT_ACTIONS, DotCmsClient, initEditor, isInsideEditor, postMessageToEditor, updateNavigation } from '@dotcms/client';
6
- import { createUVESubscription } from '@dotcms/uve';
7
- import { PageContextService } from '../../services/dotcms-context/page-context.service';
8
- import { RowComponent } from '../row/row.component';
9
- import * as i0 from "@angular/core";
10
- /**
11
- * `DotcmsLayoutComponent` is a class that represents the layout for a DotCMS page.
12
- * It includes a `pageAsset` property that represents the DotCMS page asset and a `components` property that represents the dynamic components for the page.
13
- *
14
- * @export
15
- * @class DotcmsLayoutComponent
16
- */
17
- export class DotcmsLayoutComponent {
18
- constructor() {
19
- this.route = inject(ActivatedRoute);
20
- this.pageContextService = inject(PageContextService);
21
- this.destroyRef$ = inject(DestroyRef);
22
- this.pageAsset$ = this.pageContextService.currentPage$;
23
- }
24
- /**
25
- * Represents the DotCMS page asset.
26
- *
27
- * @type {DotCMSPageAsset}
28
- * @memberof DotcmsLayoutComponent
29
- */
30
- set pageAsset(value) {
31
- this._pageAsset = value;
32
- if (!value.layout) {
33
- console.warn('Warning: pageAsset does not have a `layout` property. Might be using an advaced template or your dotCMS instance not have a enterprise license.');
34
- }
35
- }
36
- /**
37
- * Returns the DotCMS page asset.
38
- *
39
- * @readonly
40
- * @type {DotCMSPageAsset}
41
- * @memberof DotcmsLayoutComponent
42
- */
43
- get pageAsset() {
44
- return this._pageAsset;
45
- }
46
- ngOnInit() {
47
- this.pageContextService.setContext(this.pageAsset, this.components);
48
- if (!isInsideEditor()) {
49
- return;
50
- }
51
- this.client = DotCmsClient.instance;
52
- this.route.url.pipe(takeUntilDestroyed(this.destroyRef$)).subscribe((urlSegments) => {
53
- const pathname = '/' + urlSegments.join('/');
54
- initEditor({ pathname });
55
- updateNavigation(pathname || '/');
56
- });
57
- this.uveSubscription = createUVESubscription('changes', (data) => {
58
- if (this.onReload) {
59
- this.onReload();
60
- return;
61
- }
62
- this.pageContextService.setPageAsset(data);
63
- });
64
- postMessageToEditor({ action: CLIENT_ACTIONS.CLIENT_READY, payload: this.editor });
65
- }
66
- ngOnDestroy() {
67
- if (!isInsideEditor()) {
68
- return;
69
- }
70
- this.uveSubscription?.unsubscribe();
71
- }
72
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotcmsLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotcmsLayoutComponent, isStandalone: true, selector: "dotcms-layout", inputs: { pageAsset: "pageAsset", components: "components", onReload: "onReload", editor: "editor" }, ngImport: i0, template: `
74
- @if (pageAsset$ | async; as page) {
75
- @for (row of page?.layout?.body?.rows; track $index) {
76
- <dotcms-row [row]="row" />
77
- }
78
- }
79
- `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: RowComponent, selector: "dotcms-row", inputs: ["row"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
80
- }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotcmsLayoutComponent, decorators: [{
82
- type: Component,
83
- args: [{ selector: 'dotcms-layout', standalone: true, imports: [RowComponent, AsyncPipe], template: `
84
- @if (pageAsset$ | async; as page) {
85
- @for (row of page?.layout?.body?.rows; track $index) {
86
- <dotcms-row [row]="row" />
87
- }
88
- }
89
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
90
- }], propDecorators: { pageAsset: [{
91
- type: Input,
92
- args: [{ required: true }]
93
- }], components: [{
94
- type: Input,
95
- args: [{ required: true }]
96
- }], onReload: [{
97
- type: Input
98
- }], editor: [{
99
- type: Input
100
- }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvbGF5b3V0L2RvdGNtcy1sYXlvdXQvZG90Y21zLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQ0gsY0FBYyxFQUNkLFlBQVksRUFFWixVQUFVLEVBQ1YsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDbkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUVwRDs7Ozs7O0dBTUc7QUFlSCxNQUFNLE9BQU8scUJBQXFCO0lBZGxDO1FBMEVxQixVQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9CLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRS9CLGVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDO0tBdUN4RTtJQXBHRzs7Ozs7T0FLRztJQUNILElBQ0ksU0FBUyxDQUFDLEtBQXNCO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLElBQUksQ0FDUixpSkFBaUosQ0FDcEosQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUF3Q0QsUUFBUTtRQUNKLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7WUFDcEIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ2hGLE1BQU0sUUFBUSxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRTdDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDekIsZ0JBQWdCLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM3RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUVoQixPQUFPO1lBQ1gsQ0FBQztZQUVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsSUFBdUIsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO1FBRUgsbUJBQW1CLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQzs4R0F0R1EscUJBQXFCO2tHQUFyQixxQkFBcUIsK0tBVnBCOzs7Ozs7S0FNVCxnR0FQUyxZQUFZLG1FQUFFLFNBQVM7OzJGQVd4QixxQkFBcUI7a0JBZGpDLFNBQVM7K0JBQ0ksZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsWUFDeEI7Ozs7OztLQU1ULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQVkzQyxTQUFTO3NCQURaLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQTRCRSxVQUFVO3NCQUFwQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFRaEIsUUFBUTtzQkFBaEIsS0FBSztnQkFhRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRGVzdHJveVJlZixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICAgIENMSUVOVF9BQ1RJT05TLFxuICAgIERvdENtc0NsaWVudCxcbiAgICBFZGl0b3JDb25maWcsXG4gICAgaW5pdEVkaXRvcixcbiAgICBpc0luc2lkZUVkaXRvcixcbiAgICBwb3N0TWVzc2FnZVRvRWRpdG9yLFxuICAgIHVwZGF0ZU5hdmlnYXRpb25cbn0gZnJvbSAnQGRvdGNtcy9jbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlVVZFU3Vic2NyaXB0aW9uIH0gZnJvbSAnQGRvdGNtcy91dmUnO1xuaW1wb3J0IHsgVVZFU3Vic2NyaXB0aW9uIH0gZnJvbSAnQGRvdGNtcy91dmUvdHlwZXMnO1xuXG5pbXBvcnQgeyBEb3RDTVNQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IERvdENNU1BhZ2VBc3NldCB9IGZyb20gJy4uLy4uL21vZGVscy9kb3RjbXMubW9kZWwnO1xuaW1wb3J0IHsgUGFnZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG90Y21zLWNvbnRleHQvcGFnZS1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm93Q29tcG9uZW50IH0gZnJvbSAnLi4vcm93L3Jvdy5jb21wb25lbnQnO1xuXG4vKipcbiAqIGBEb3RjbXNMYXlvdXRDb21wb25lbnRgIGlzIGEgY2xhc3MgdGhhdCByZXByZXNlbnRzIHRoZSBsYXlvdXQgZm9yIGEgRG90Q01TIHBhZ2UuXG4gKiAgSXQgaW5jbHVkZXMgYSBgcGFnZUFzc2V0YCBwcm9wZXJ0eSB0aGF0IHJlcHJlc2VudHMgdGhlIERvdENNUyBwYWdlIGFzc2V0IGFuZCBhIGBjb21wb25lbnRzYCBwcm9wZXJ0eSB0aGF0IHJlcHJlc2VudHMgdGhlIGR5bmFtaWMgY29tcG9uZW50cyBmb3IgdGhlIHBhZ2UuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIERvdGNtc0xheW91dENvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1sYXlvdXQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1Jvd0NvbXBvbmVudCwgQXN5bmNQaXBlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICBAaWYgKHBhZ2VBc3NldCQgfCBhc3luYzsgYXMgcGFnZSkge1xuICAgICAgICAgICAgQGZvciAocm93IG9mIHBhZ2U/LmxheW91dD8uYm9keT8ucm93czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGRvdGNtcy1yb3cgW3Jvd109XCJyb3dcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgYCxcbiAgICBzdHlsZVVybDogJy4vZG90Y21zLWxheW91dC5jb21wb25lbnQuY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEb3RjbXNMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgX3BhZ2VBc3NldCE6IERvdENNU1BhZ2VBc3NldDtcblxuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIERvdENNUyBwYWdlIGFzc2V0LlxuICAgICAqXG4gICAgICogQHR5cGUge0RvdENNU1BhZ2VBc3NldH1cbiAgICAgKiBAbWVtYmVyb2YgRG90Y21zTGF5b3V0Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBzZXQgcGFnZUFzc2V0KHZhbHVlOiBEb3RDTVNQYWdlQXNzZXQpIHtcbiAgICAgICAgdGhpcy5fcGFnZUFzc2V0ID0gdmFsdWU7XG4gICAgICAgIGlmICghdmFsdWUubGF5b3V0KSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgJ1dhcm5pbmc6IHBhZ2VBc3NldCBkb2VzIG5vdCBoYXZlIGEgYGxheW91dGAgcHJvcGVydHkuIE1pZ2h0IGJlIHVzaW5nIGFuIGFkdmFjZWQgdGVtcGxhdGUgb3IgeW91ciBkb3RDTVMgaW5zdGFuY2Ugbm90IGhhdmUgYSBlbnRlcnByaXNlIGxpY2Vuc2UuJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIERvdENNUyBwYWdlIGFzc2V0LlxuICAgICAqXG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQHR5cGUge0RvdENNU1BhZ2VBc3NldH1cbiAgICAgKiBAbWVtYmVyb2YgRG90Y21zTGF5b3V0Q29tcG9uZW50XG4gICAgICovXG4gICAgZ2V0IHBhZ2VBc3NldCgpOiBEb3RDTVNQYWdlQXNzZXQge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFnZUFzc2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBgY29tcG9uZW50c2AgcHJvcGVydHkgaXMgYSByZWNvcmQgb2YgZHluYW1pYyBjb21wb25lbnRzIGZvciBlYWNoIENvbnRlbnRsZXQgb24gdGhlIHBhZ2UuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RG90Q01TUGFnZUNvbXBvbmVudH1cbiAgICAgKiBAbWVtYmVyb2YgRG90Y21zTGF5b3V0Q29tcG9uZW50XG4gICAgICogQHJlcXVpcmVkXG4gICAgICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgY29tcG9uZW50cyE6IERvdENNU1BhZ2VDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYG9uUmVsb2FkYCBwcm9wZXJ0eSBpcyBhIGZ1bmN0aW9uIHRoYXQgcmVsb2FkcyB0aGUgcGFnZSBhZnRlciBjaGFuZ2VzIGFyZSBtYWRlLlxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIERvdGNtc0xheW91dENvbXBvbmVudFxuICAgICAqIEBkZXByZWNhdGVkIEluIGZ1dHVyZSBpbXBsZW1lbnRhdGlvbiB3ZSB3aWxsIGJlIGxpc3RlbmluZyBmb3IgdGhlIGNoYW5nZXMgZnJvbSB0aGUgZWRpdG9yIHRvIHVwZGF0ZSB0aGUgcGFnZSBzdGF0ZSBzbyByZWxvYWQgd2lsbCBub3QgYmUgbmVlZGVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIG9uUmVsb2FkITogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHR5cGUge0RvdENNU0ZldGNoQ29uZmlnfVxuICAgICAqIEBtZW1iZXJvZiBEb3RDTVNQYWdlRWRpdG9yQ29uZmlnXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBjb25maWd1cmF0aW9uIGN1c3RvbSBwYXJhbXMgZm9yIGRhdGEgZmV0Y2hpbmcgb24gRWRpdCBNb2RlLlxuICAgICAqIEBleGFtcGxlIDxjYXB0aW9uPkV4YW1wbGUgd2l0aCBDdXN0b20gR3JhcGhRTCBxdWVyeTwvY2FwdGlvbj5cbiAgICAgKiA8ZG90Y21zLWxheW91dCBbZWRpdG9yXT1cInsgcXVlcnk6ICdxdWVyeSB7IC4uLiB9JyB9XCIvPlxuICAgICAqXG4gICAgICogQGV4YW1wbGUgPGNhcHRpb24+RXhhbXBsZSB1c2FnZSB3aXRoIEN1c3RvbSBQYWdlIEFQSSBwYXJhbWV0ZXJzPC9jYXB0aW9uPlxuICAgICAqIDxkb3RjbXMtbGF5b3V0IFtlZGl0b3JdPVwieyBwYXJhbXM6IHsgZGVwdGg6ICcyJyB9IH1cIi8+O1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGVkaXRvciE6IEVkaXRvckNvbmZpZztcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZUNvbnRleHRTZXJ2aWNlID0gaW5qZWN0KFBhZ2VDb250ZXh0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmJCA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIGNsaWVudCE6IERvdENtc0NsaWVudDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFnZUFzc2V0JCA9IHRoaXMucGFnZUNvbnRleHRTZXJ2aWNlLmN1cnJlbnRQYWdlJDtcblxuICAgIHByaXZhdGUgdXZlU3Vic2NyaXB0aW9uPzogVVZFU3Vic2NyaXB0aW9uO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucGFnZUNvbnRleHRTZXJ2aWNlLnNldENvbnRleHQodGhpcy5wYWdlQXNzZXQsIHRoaXMuY29tcG9uZW50cyk7XG5cbiAgICAgICAgaWYgKCFpc0luc2lkZUVkaXRvcigpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsaWVudCA9IERvdENtc0NsaWVudC5pbnN0YW5jZTtcbiAgICAgICAgdGhpcy5yb3V0ZS51cmwucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmJCkpLnN1YnNjcmliZSgodXJsU2VnbWVudHMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGhuYW1lID0gJy8nICsgdXJsU2VnbWVudHMuam9pbignLycpO1xuXG4gICAgICAgICAgICBpbml0RWRpdG9yKHsgcGF0aG5hbWUgfSk7XG4gICAgICAgICAgICB1cGRhdGVOYXZpZ2F0aW9uKHBhdGhuYW1lIHx8ICcvJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudXZlU3Vic2NyaXB0aW9uID0gY3JlYXRlVVZFU3Vic2NyaXB0aW9uKCdjaGFuZ2VzJywgKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9uUmVsb2FkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblJlbG9hZCgpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnBhZ2VDb250ZXh0U2VydmljZS5zZXRQYWdlQXNzZXQoZGF0YSBhcyBEb3RDTVNQYWdlQXNzZXQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBwb3N0TWVzc2FnZVRvRWRpdG9yKHsgYWN0aW9uOiBDTElFTlRfQUNUSU9OUy5DTElFTlRfUkVBRFksIHBheWxvYWQ6IHRoaXMuZWRpdG9yIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAoIWlzSW5zaWRlRWRpdG9yKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXZlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,29 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
- import { ColumnComponent } from '../column/column.component';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * This component is responsible to display a row with columns.
6
- *
7
- * @export
8
- * @class RowComponent
9
- */
10
- export class RowComponent {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: RowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: RowComponent, isStandalone: true, selector: "dotcms-row", inputs: { row: "row" }, ngImport: i0, template: `
13
- @for (column of row.columns; track $index) {
14
- <dotcms-column [column]="column" />
15
- }
16
- `, 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 }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: RowComponent, decorators: [{
19
- type: Component,
20
- args: [{ selector: 'dotcms-row', standalone: true, imports: [ColumnComponent], template: `
21
- @for (column of row.columns; track $index) {
22
- <dotcms-column [column]="column" />
23
- }
24
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;row-gap:1rem}\n"] }]
25
- }], propDecorators: { row: [{
26
- type: Input,
27
- args: [{ required: true }]
28
- }] } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9sYXlvdXQvcm93L3Jvdy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUU3RDs7Ozs7R0FLRztBQWFILE1BQU0sT0FBTyxZQUFZOzhHQUFaLFlBQVk7a0dBQVosWUFBWSw4RkFSWDs7OztLQUlULDBKQUxTLGVBQWU7OzJGQVNoQixZQUFZO2tCQVp4QixTQUFTOytCQUNJLFlBQVksY0FDVixJQUFJLFdBQ1AsQ0FBQyxlQUFlLENBQUMsWUFDaEI7Ozs7S0FJVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFTcEIsR0FBRztzQkFBN0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3RQYWdlQXNzZXRMYXlvdXRSb3cgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29sdW1uL2NvbHVtbi5jb21wb25lbnQnO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGlzIHJlc3BvbnNpYmxlIHRvIGRpc3BsYXkgYSByb3cgd2l0aCBjb2x1bW5zLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBSb3dDb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkb3RjbXMtcm93JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb2x1bW5Db21wb25lbnRdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBmb3IgKGNvbHVtbiBvZiByb3cuY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8ZG90Y21zLWNvbHVtbiBbY29sdW1uXT1cImNvbHVtblwiIC8+XG4gICAgICAgIH1cbiAgICBgLFxuICAgIHN0eWxlVXJsOiAnLi9yb3cuY29tcG9uZW50LmNzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUm93Q29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBUaGUgcm93IG9iamVjdCBjb250YWluaW5nIHRoZSBjb2x1bW5zLlxuICAgICAqXG4gICAgICogQHR5cGUge0RvdFBhZ2VBc3NldExheW91dFJvd31cbiAgICAgKiBAbWVtYmVyb2YgUm93Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcm93ITogRG90UGFnZUFzc2V0TGF5b3V0Um93O1xufVxuIl19
@@ -1,3 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- export {};
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90Y21zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9zcmMvbGliL21vZGVscy9kb3RjbXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIERvdENNU1BhZ2VBc3NldCB7XG4gICAgY2FuQ3JlYXRlVGVtcGxhdGU6IGJvb2xlYW47XG4gICAgY29udGFpbmVyczogRG90Q01TUGFnZUFzc2V0Q29udGFpbmVyO1xuICAgIGxheW91dDogRG90Q01TTGF5b3V0O1xuICAgIHBhZ2U6IERvdENNU1BhZ2U7XG4gICAgc2l0ZTogRG90Q01TU2l0ZTtcbiAgICB0ZW1wbGF0ZTogRG90Q01TVGVtcGxhdGU7XG4gICAgdmlld0FzOiBEb3RDTVNWaWV3QXM7XG4gICAgdmFuaXR5VXJsPzoge1xuICAgICAgICBwYXR0ZXJuOiBzdHJpbmc7XG4gICAgICAgIHZhbml0eVVybElkOiBzdHJpbmc7XG4gICAgICAgIHVybDogc3RyaW5nO1xuICAgICAgICBzaXRlSWQ6IHN0cmluZztcbiAgICAgICAgbGFuZ3VhZ2VJZDogbnVtYmVyO1xuICAgICAgICBmb3J3YXJkVG86IHN0cmluZztcbiAgICAgICAgcmVzcG9uc2U6IG51bWJlcjtcbiAgICAgICAgb3JkZXI6IG51bWJlcjtcbiAgICAgICAgdGVtcG9yYXJ5UmVkaXJlY3Q6IGJvb2xlYW47XG4gICAgICAgIHBlcm1hbmVudFJlZGlyZWN0OiBib29sZWFuO1xuICAgICAgICBmb3J3YXJkOiBib29sZWFuO1xuICAgIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG90UGFnZUFzc2V0TGF5b3V0Um93IHtcbiAgICBpZGVudGlmaWVyOiBudW1iZXI7XG4gICAgdmFsdWU/OiBzdHJpbmc7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgY29sdW1uczogRG90UGFnZUFzc2V0TGF5b3V0Q29sdW1uW107XG4gICAgc3R5bGVDbGFzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb3RQYWdlQXNzZXRMYXlvdXRDb2x1bW4ge1xuICAgIHByZXZpZXc6IGJvb2xlYW47XG4gICAgY29udGFpbmVyczogRG90Q01TQ29udGFpbmVyW107XG4gICAgd2lkdGhQZXJjZW50OiBudW1iZXI7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBsZWZ0T2Zmc2V0OiBudW1iZXI7XG4gICAgbGVmdDogbnVtYmVyO1xuICAgIHN0eWxlQ2xhc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG90Q01TUGFnZUFzc2V0Q29udGFpbmVyIHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICAgIGNvbnRhaW5lcjogRG90Q01TQ29udGFpbmVyO1xuICAgICAgICBjb250YWluZXJTdHJ1Y3R1cmVzOiBEb3RDTVNDb250YWluZXJTdHJ1Y3R1cmVbXTtcbiAgICAgICAgY29udGVudGxldHM6IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IERvdENNU0NvbnRlbnRsZXRbXTtcbiAgICAgICAgfTtcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvdENNU0NvbnRhaW5lciB7XG4gICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgIHV1aWQ6IHN0cmluZztcbiAgICBpRGF0ZTogbnVtYmVyO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBvd25lcj86IHN0cmluZztcbiAgICBpbm9kZTogc3RyaW5nO1xuICAgIHNvdXJjZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZnJpZW5kbHlOYW1lOiBzdHJpbmc7XG4gICAgbW9kRGF0ZTogbnVtYmVyO1xuICAgIG1vZFVzZXI6IHN0cmluZztcbiAgICBzb3J0T3JkZXI6IG51bWJlcjtcbiAgICBzaG93T25NZW51OiBib29sZWFuO1xuICAgIGNvZGU/OiBzdHJpbmc7XG4gICAgbWF4Q29udGVudGxldHM6IG51bWJlcjtcbiAgICB1c2VEaXY6IGJvb2xlYW47XG4gICAgc29ydENvbnRlbnRsZXRzQnk/OiBzdHJpbmc7XG4gICAgcHJlTG9vcDogc3RyaW5nO1xuICAgIHBvc3RMb29wOiBzdHJpbmc7XG4gICAgc3RhdGljaWZ5OiBib29sZWFuO1xuICAgIGx1Y2VuZVF1ZXJ5Pzogc3RyaW5nO1xuICAgIG5vdGVzOiBzdHJpbmc7XG4gICAgbGFuZ3VhZ2VJZD86IG51bWJlcjtcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIGxpdmU6IGJvb2xlYW47XG4gICAgbG9ja2VkOiBib29sZWFuO1xuICAgIHdvcmtpbmc6IGJvb2xlYW47XG4gICAgZGVsZXRlZDogYm9vbGVhbjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYXJjaGl2ZWQ6IGJvb2xlYW47XG4gICAgcGVybWlzc2lvbklkOiBzdHJpbmc7XG4gICAgdmVyc2lvbklkOiBzdHJpbmc7XG4gICAgdmVyc2lvblR5cGU6IHN0cmluZztcbiAgICBwZXJtaXNzaW9uVHlwZTogc3RyaW5nO1xuICAgIGNhdGVnb3J5SWQ6IHN0cmluZztcbiAgICBpZGF0ZTogbnVtYmVyO1xuICAgIG5ldzogYm9vbGVhbjtcbiAgICBhY2NlcHRUeXBlczogc3RyaW5nO1xuICAgIGNvbnRlbnRsZXRzOiBEb3RDTVNDb250ZW50bGV0W107XG4gICAgcGFyZW50UGVybWlzc2lvbmFibGU6IERvdENNU1NpdGVQYXJlbnRQZXJtaXNzaW9uYWJsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb3RDTVNDb250ZW50bGV0IHtcbiAgICBhcmNoaXZlZDogYm9vbGVhbjtcbiAgICBiYXNlVHlwZTogc3RyaW5nO1xuICAgIGRlbGV0ZWQ/OiBib29sZWFuO1xuICAgIGJpbmFyeT86IHN0cmluZztcbiAgICBiaW5hcnlDb250ZW50QXNzZXQ/OiBzdHJpbmc7XG4gICAgYmluYXJ5VmVyc2lvbj86IHN0cmluZztcbiAgICBjb250ZW50VHlwZTogc3RyaW5nO1xuICAgIGZpbGU/OiBzdHJpbmc7XG4gICAgZm9sZGVyOiBzdHJpbmc7XG4gICAgaGFzTGl2ZVZlcnNpb24/OiBib29sZWFuO1xuICAgIGhhc1RpdGxlSW1hZ2U6IGJvb2xlYW47XG4gICAgaG9zdDogc3RyaW5nO1xuICAgIGhvc3ROYW1lOiBzdHJpbmc7XG4gICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgIGlub2RlOiBzdHJpbmc7XG4gICAgaW1hZ2U/OiBzdHJpbmc7XG4gICAgbGFuZ3VhZ2VJZDogbnVtYmVyO1xuICAgIGxhbmd1YWdlPzogc3RyaW5nO1xuICAgIGxpdmU6IGJvb2xlYW47XG4gICAgbG9ja2VkOiBib29sZWFuO1xuICAgIG1pbWVUeXBlPzogc3RyaW5nO1xuICAgIG1vZERhdGU6IHN0cmluZztcbiAgICBtb2RVc2VyOiBzdHJpbmc7XG4gICAgbW9kVXNlck5hbWU6IHN0cmluZztcbiAgICBvd25lcjogc3RyaW5nO1xuICAgIHNvcnRPcmRlcjogbnVtYmVyO1xuICAgIHN0SW5vZGU6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHRpdGxlSW1hZ2U6IHN0cmluZztcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHdvcmtpbmc6IGJvb2xlYW47XG4gICAgYm9keT86IHN0cmluZztcbiAgICBjb250ZW50VHlwZUljb24/OiBzdHJpbmc7XG4gICAgdmFyaWFudD86IHN0cmluZztcbiAgICBfX2ljb25fXz86IHN0cmluZztcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7IC8vIFRoaXMgaXMgYSBjYXRjaC1hbGwgZm9yIGFueSBvdGhlciBjdXN0b20gcHJvcGVydGllcyB0aGF0IG1pZ2h0IGJlIG9uIHRoZSBjb250ZW50bGV0LlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvdGNtc05hdmlnYXRpb25JdGVtIHtcbiAgICBjb2RlPzogYW55O1xuICAgIGZvbGRlcjogc3RyaW5nO1xuICAgIGNoaWxkcmVuPzogRG90Y21zTmF2aWdhdGlvbkl0ZW1bXTtcbiAgICBob3N0OiBzdHJpbmc7XG4gICAgbGFuZ3VhZ2VJZDogbnVtYmVyO1xuICAgIGhyZWY6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBoYXNoOiBudW1iZXI7XG4gICAgdGFyZ2V0OiBzdHJpbmc7XG4gICAgb3JkZXI6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIERvdENNU1RlbXBsYXRlIHtcbiAgICBpRGF0ZTogbnVtYmVyO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBvd25lcjogc3RyaW5nO1xuICAgIGlub2RlOiBzdHJpbmc7XG4gICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgIHNvdXJjZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZnJpZW5kbHlOYW1lOiBzdHJpbmc7XG4gICAgbW9kRGF0ZTogbnVtYmVyO1xuICAgIG1vZFVzZXI6IHN0cmluZztcbiAgICBzb3J0T3JkZXI6IG51bWJlcjtcbiAgICBzaG93T25NZW51OiBib29sZWFuO1xuICAgIGltYWdlOiBzdHJpbmc7XG4gICAgZHJhd2VkOiBib29sZWFuO1xuICAgIGRyYXdlZEJvZHk6IHN0cmluZztcbiAgICB0aGVtZTogc3RyaW5nO1xuICAgIGFub255bW91czogYm9vbGVhbjtcbiAgICB0ZW1wbGF0ZTogYm9vbGVhbjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbGl2ZTogYm9vbGVhbjtcbiAgICBhcmNoaXZlZDogYm9vbGVhbjtcbiAgICBsb2NrZWQ6IGJvb2xlYW47XG4gICAgd29ya2luZzogYm9vbGVhbjtcbiAgICBwZXJtaXNzaW9uSWQ6IHN0cmluZztcbiAgICB2ZXJzaW9uSWQ6IHN0cmluZztcbiAgICB2ZXJzaW9uVHlwZTogc3RyaW5nO1xuICAgIGRlbGV0ZWQ6IGJvb2xlYW47XG4gICAgcGVybWlzc2lvblR5cGU6IHN0cmluZztcbiAgICBjYXRlZ29yeUlkOiBzdHJpbmc7XG4gICAgaWRhdGU6IG51bWJlcjtcbiAgICBuZXc6IGJvb2xlYW47XG4gICAgY2FuRWRpdDogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIERvdENNU1BhZ2Uge1xuICAgIHRlbXBsYXRlOiBzdHJpbmc7XG4gICAgbW9kRGF0ZTogbnVtYmVyO1xuICAgIG1ldGFkYXRhOiBzdHJpbmc7XG4gICAgY2FjaGV0dGw6IHN0cmluZztcbiAgICBwYWdlVVJJOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgc2hvd09uTWVudTogc3RyaW5nO1xuICAgIGh0dHBzUmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgaW5vZGU6IHN0cmluZztcbiAgICBkaXNhYmxlZFdZU0lXWUc6IGFueVtdO1xuICAgIHNlb2tleXdvcmRzOiBzdHJpbmc7XG4gICAgaG9zdDogc3RyaW5nO1xuICAgIGxhc3RSZXZpZXc6IG51bWJlcjtcbiAgICB3b3JraW5nOiBib29sZWFuO1xuICAgIGxvY2tlZDogYm9vbGVhbjtcbiAgICBzdElub2RlOiBzdHJpbmc7XG4gICAgZnJpZW5kbHlOYW1lOiBzdHJpbmc7XG4gICAgbGl2ZTogYm9vbGVhbjtcbiAgICBvd25lcjogc3RyaW5nO1xuICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICBudWxsUHJvcGVydGllczogYW55W107XG4gICAgZnJpZW5kbHluYW1lOiBzdHJpbmc7XG4gICAgcGFnZW1ldGFkYXRhOiBzdHJpbmc7XG4gICAgbGFuZ3VhZ2VJZDogbnVtYmVyO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHNlb2Rlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgbW9kVXNlck5hbWU6IHN0cmluZztcbiAgICBmb2xkZXI6IHN0cmluZztcbiAgICBkZWxldGVkOiBib29sZWFuO1xuICAgIHNvcnRPcmRlcjogbnVtYmVyO1xuICAgIG1vZFVzZXI6IHN0cmluZztcbiAgICBwYWdlVXJsOiBzdHJpbmc7XG4gICAgd29ya2luZ0lub2RlOiBzdHJpbmc7XG4gICAgc2hvcnR5V29ya2luZzogc3RyaW5nO1xuICAgIGNhbkVkaXQ6IGJvb2xlYW47XG4gICAgY2FuUmVhZDogYm9vbGVhbjtcbiAgICBjYW5Mb2NrOiBib29sZWFuO1xuICAgIGxvY2tlZE9uOiBudW1iZXI7XG4gICAgbG9ja2VkQnk6IHN0cmluZztcbiAgICBsb2NrZWRCeU5hbWU6IHN0cmluZztcbiAgICBsaXZlSW5vZGU6IHN0cmluZztcbiAgICBzaG9ydHlMaXZlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBEb3RDTVNWaWV3QXMge1xuICAgIGxhbmd1YWdlOiB7XG4gICAgICAgIGlkOiBudW1iZXI7XG4gICAgICAgIGxhbmd1YWdlQ29kZTogc3RyaW5nO1xuICAgICAgICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICAgICAgICBsYW5ndWFnZTogc3RyaW5nO1xuICAgICAgICBjb3VudHJ5OiBzdHJpbmc7XG4gICAgfTtcbiAgICBtb2RlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBEb3RDTVNMYXlvdXQge1xuICAgIHBhZ2VXaWR0aDogc3RyaW5nO1xuICAgIHdpZHRoOiBzdHJpbmc7XG4gICAgbGF5b3V0OiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBoZWFkZXI6IGJvb2xlYW47XG4gICAgZm9vdGVyOiBib29sZWFuO1xuICAgIGJvZHk6IERvdFBhZ2VBc3NldExheW91dEJvZHk7XG4gICAgc2lkZWJhcjogRG90UGFnZUFzc2V0TGF5b3V0U2lkZWJhcjtcbn1cblxuaW50ZXJmYWNlIERvdENNU0NvbnRhaW5lclN0cnVjdHVyZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBzdHJ1Y3R1cmVJZDogc3RyaW5nO1xuICAgIGNvbnRhaW5lcklub2RlOiBzdHJpbmc7XG4gICAgY29udGFpbmVySWQ6IHN0cmluZztcbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgY29udGVudFR5cGVWYXI6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIERvdFBhZ2VBc3NldExheW91dFNpZGViYXIge1xuICAgIHByZXZpZXc6IGJvb2xlYW47XG4gICAgY29udGFpbmVyczogRG90Q01TQ29udGFpbmVyW107XG4gICAgbG9jYXRpb246IHN0cmluZztcbiAgICB3aWR0aFBlcmNlbnQ6IG51bWJlcjtcbiAgICB3aWR0aDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRG90UGFnZUFzc2V0TGF5b3V0Qm9keSB7XG4gICAgcm93czogRG90UGFnZUFzc2V0TGF5b3V0Um93W107XG59XG5cbmludGVyZmFjZSBEb3RDTVNTaXRlIHtcbiAgICBsb3dJbmRleFByaW9yaXR5OiBib29sZWFuO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZWZhdWx0OiBib29sZWFuO1xuICAgIGFsaWFzZXM6IHN0cmluZztcbiAgICBwYXJlbnQ6IGJvb2xlYW47XG4gICAgdGFnU3RvcmFnZTogc3RyaW5nO1xuICAgIHN5c3RlbUhvc3Q6IGJvb2xlYW47XG4gICAgaW5vZGU6IHN0cmluZztcbiAgICB2ZXJzaW9uVHlwZTogc3RyaW5nO1xuICAgIHN0cnVjdHVyZUlub2RlOiBzdHJpbmc7XG4gICAgaG9zdG5hbWU6IHN0cmluZztcbiAgICBob3N0VGh1bWJuYWlsPzogYW55O1xuICAgIG93bmVyOiBzdHJpbmc7XG4gICAgcGVybWlzc2lvbklkOiBzdHJpbmc7XG4gICAgcGVybWlzc2lvblR5cGU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgIG1vZERhdGU6IG51bWJlcjtcbiAgICBob3N0OiBzdHJpbmc7XG4gICAgbGl2ZTogYm9vbGVhbjtcbiAgICBpbmRleFBvbGljeTogc3RyaW5nO1xuICAgIGNhdGVnb3J5SWQ6IHN0cmluZztcbiAgICBhY3Rpb25JZD86IGFueTtcbiAgICBuZXc6IGJvb2xlYW47XG4gICAgYXJjaGl2ZWQ6IGJvb2xlYW47XG4gICAgbG9ja2VkOiBib29sZWFuO1xuICAgIGRpc2FibGVkV3lzaXd5ZzogYW55W107XG4gICAgbW9kVXNlcjogc3RyaW5nO1xuICAgIHdvcmtpbmc6IGJvb2xlYW47XG4gICAgdGl0bGVJbWFnZToge1xuICAgICAgICBwcmVzZW50OiBib29sZWFuO1xuICAgIH07XG4gICAgZm9sZGVyOiBzdHJpbmc7XG4gICAgaHRtbHBhZ2U6IGJvb2xlYW47XG4gICAgZmlsZUFzc2V0OiBib29sZWFuO1xuICAgIHZhbml0eVVybDogYm9vbGVhbjtcbiAgICBrZXlWYWx1ZTogYm9vbGVhbjtcbiAgICBzdHJ1Y3R1cmU/OiBEb3RDTVNTaXRlU3RydWN0dXJlO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgbGFuZ3VhZ2VJZDogbnVtYmVyO1xuICAgIGluZGV4UG9saWN5RGVwZW5kZW5jaWVzOiBzdHJpbmc7XG4gICAgY29udGVudFR5cGVJZDogc3RyaW5nO1xuICAgIHZlcnNpb25JZDogc3RyaW5nO1xuICAgIGxhc3RSZXZpZXc6IG51bWJlcjtcbiAgICBuZXh0UmV2aWV3PzogYW55O1xuICAgIHJldmlld0ludGVydmFsPzogYW55O1xuICAgIHNvcnRPcmRlcjogbnVtYmVyO1xuICAgIGNvbnRlbnRUeXBlOiBEb3RDTVNTaXRlQ29udGVudFR5cGU7XG59XG5cbmludGVyZmFjZSBEb3RDTVNTaXRlQ29udGVudFR5cGUge1xuICAgIG93bmVyPzogYW55O1xuICAgIHBhcmVudFBlcm1pc3Npb25hYmxlOiBEb3RDTVNTaXRlUGFyZW50UGVybWlzc2lvbmFibGU7XG4gICAgcGVybWlzc2lvbklkOiBzdHJpbmc7XG4gICAgcGVybWlzc2lvblR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb3RDTVNTaXRlUGFyZW50UGVybWlzc2lvbmFibGUge1xuICAgIElub2RlOiBzdHJpbmc7XG4gICAgSWRlbnRpZmllcjogc3RyaW5nO1xuICAgIHBlcm1pc3Npb25CeUlkZW50aWZpZXI6IGJvb2xlYW47XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG93bmVyPzogYW55O1xuICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICBwZXJtaXNzaW9uSWQ6IHN0cmluZztcbiAgICBwYXJlbnRQZXJtaXNzaW9uYWJsZT86IGFueTtcbiAgICBwZXJtaXNzaW9uVHlwZTogc3RyaW5nO1xuICAgIGlub2RlOiBzdHJpbmc7XG4gICAgY2hpbGRyZW5QZXJtaXNzaW9uYWJsZT86IGFueTtcbiAgICB2YXJpYW50SWQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBEb3RDTVNTaXRlU3RydWN0dXJlIHtcbiAgICBpRGF0ZTogbnVtYmVyO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBvd25lcj86IGFueTtcbiAgICBpbm9kZTogc3RyaW5nO1xuICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBkZWZhdWx0U3RydWN0dXJlOiBib29sZWFuO1xuICAgIHJldmlld0ludGVydmFsPzogYW55O1xuICAgIHJldmlld2VyUm9sZT86IGFueTtcbiAgICBwYWdlZGV0YWlsPzogYW55O1xuICAgIHN0cnVjdHVyZVR5cGU6IG51bWJlcjtcbiAgICBmaXhlZDogYm9vbGVhbjtcbiAgICBzeXN0ZW06IGJvb2xlYW47XG4gICAgdmVsb2NpdHlWYXJOYW1lOiBzdHJpbmc7XG4gICAgdXJsTWFwUGF0dGVybj86IGFueTtcbiAgICBob3N0OiBzdHJpbmc7XG4gICAgZm9sZGVyOiBzdHJpbmc7XG4gICAgcHVibGlzaERhdGVWYXI/OiBhbnk7XG4gICAgZXhwaXJlRGF0ZVZhcj86IGFueTtcbiAgICBtb2REYXRlOiBudW1iZXI7XG4gICAgZmllbGRzOiBEb3RDTVNTaXRlRmllbGRbXTtcbiAgICB3aWRnZXQ6IGJvb2xlYW47XG4gICAgZGV0YWlsUGFnZT86IGFueTtcbiAgICBmaWVsZHNCeVNvcnRPcmRlcjogRG90Q01TU2l0ZUZpZWxkW107XG4gICAgZm9ybTogYm9vbGVhbjtcbiAgICBodG1scGFnZUFzc2V0OiBib29sZWFuO1xuICAgIGNvbnRlbnQ6IGJvb2xlYW47XG4gICAgZmlsZUFzc2V0OiBib29sZWFuO1xuICAgIHBlcnNvbmE6IGJvb2xlYW47XG4gICAgcGVybWlzc2lvbklkOiBzdHJpbmc7XG4gICAgcGVybWlzc2lvblR5cGU6IHN0cmluZztcbiAgICBsaXZlOiBib29sZWFuO1xuICAgIGNhdGVnb3J5SWQ6IHN0cmluZztcbiAgICBpZGF0ZTogbnVtYmVyO1xuICAgIG5ldzogYm9vbGVhbjtcbiAgICBhcmNoaXZlZDogYm9vbGVhbjtcbiAgICBsb2NrZWQ6IGJvb2xlYW47XG4gICAgbW9kVXNlcjogc3RyaW5nO1xuICAgIHdvcmtpbmc6IGJvb2xlYW47XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB2ZXJzaW9uSWQ6IHN0cmluZztcbiAgICB2ZXJzaW9uVHlwZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRG90Q01TU2l0ZUZpZWxkIHtcbiAgICBpRGF0ZTogbnVtYmVyO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBvd25lcj86IGFueTtcbiAgICBpbm9kZTogc3RyaW5nO1xuICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICBzdHJ1Y3R1cmVJbm9kZTogc3RyaW5nO1xuICAgIGZpZWxkTmFtZTogc3RyaW5nO1xuICAgIGZpZWxkVHlwZTogc3RyaW5nO1xuICAgIGZpZWxkUmVsYXRpb25UeXBlPzogYW55O1xuICAgIGZpZWxkQ29udGVudGxldDogc3RyaW5nO1xuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIHZlbG9jaXR5VmFyTmFtZTogc3RyaW5nO1xuICAgIHNvcnRPcmRlcjogbnVtYmVyO1xuICAgIHZhbHVlcz86IGFueTtcbiAgICByZWdleENoZWNrPzogYW55O1xuICAgIGhpbnQ/OiBhbnk7XG4gICAgZGVmYXVsdFZhbHVlPzogYW55O1xuICAgIGluZGV4ZWQ6IGJvb2xlYW47XG4gICAgbGlzdGVkOiBib29sZWFuO1xuICAgIGZpeGVkOiBib29sZWFuO1xuICAgIHJlYWRPbmx5OiBib29sZWFuO1xuICAgIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gICAgdW5pcXVlOiBib29sZWFuO1xuICAgIG1vZERhdGU6IG51bWJlcjtcbiAgICBkYXRhVHlwZTogc3RyaW5nO1xuICAgIGxpdmU6IGJvb2xlYW47XG4gICAgY2F0ZWdvcnlJZDogc3RyaW5nO1xuICAgIGlkYXRlOiBudW1iZXI7XG4gICAgbmV3OiBib29sZWFuO1xuICAgIGFyY2hpdmVkOiBib29sZWFuO1xuICAgIGxvY2tlZDogYm9vbGVhbjtcbiAgICBtb2RVc2VyOiBzdHJpbmc7XG4gICAgd29ya2luZzogYm9vbGVhbjtcbiAgICBwZXJtaXNzaW9uSWQ6IHN0cmluZztcbiAgICBwYXJlbnRQZXJtaXNzaW9uYWJsZT86IGFueTtcbiAgICBwZXJtaXNzaW9uVHlwZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdmVyc2lvbklkOiBzdHJpbmc7XG4gICAgdmVyc2lvblR5cGU6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,75 +0,0 @@
1
- import { BehaviorSubject } from 'rxjs';
2
- import { Injectable } from '@angular/core';
3
- import { map } from 'rxjs/operators';
4
- import { isInsideEditor } from '@dotcms/client';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * @author dotCMS
8
- * @description This service is responsible for managing the page context.
9
- * @export
10
- * @class PageContextService
11
- */
12
- export class PageContextService {
13
- constructor() {
14
- this.context$ = new BehaviorSubject(null);
15
- }
16
- /**
17
- * @description Get the context
18
- * @readonly
19
- * @type {DotCMSPageContext}
20
- * @memberof PageContextService
21
- */
22
- get context() {
23
- return this.context$.getValue();
24
- }
25
- /**
26
- * @description Get the context as an observable
27
- * @readonly
28
- * @memberof PageContextService
29
- */
30
- get contextObs$() {
31
- return this.context$.asObservable();
32
- }
33
- /**
34
- * @description Get the current page asset
35
- * @readonly
36
- * @type {(Observable<DotCMSPageAsset | null>)}
37
- * @memberof PageContextService
38
- */
39
- get currentPage$() {
40
- return this.contextObs$.pipe(map((context) => context?.pageAsset || null));
41
- }
42
- /**
43
- *
44
- * @description Set the context
45
- * @param {DotCMSPageAsset} value
46
- * @memberof DotcmsContextService
47
- */
48
- setContext(pageAsset, components) {
49
- this.context$.next({
50
- pageAsset,
51
- components,
52
- isInsideEditor: isInsideEditor()
53
- });
54
- }
55
- /**
56
- * @description Set the page asset in the context
57
- * @param {DotCMSPageAsset} pageAsset
58
- * @memberof PageContextService
59
- */
60
- setPageAsset(pageAsset) {
61
- this.context$.next({
62
- ...this.context,
63
- pageAsset
64
- });
65
- }
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: PageContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
67
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: PageContextService, providedIn: 'root' }); }
68
- }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: PageContextService, decorators: [{
70
- type: Injectable,
71
- args: [{
72
- providedIn: 'root'
73
- }]
74
- }] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvZG90Y21zLWNvbnRleHQvcGFnZS1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBS2hEOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQUgvQjtRQUlZLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBMkIsSUFBSSxDQUFDLENBQUM7S0F3RDFFO0lBdERHOzs7OztPQUtHO0lBQ0gsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBdUIsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxTQUEwQixFQUFFLFVBQStCO1FBQ2xFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2YsU0FBUztZQUNULFVBQVU7WUFDVixjQUFjLEVBQUUsY0FBYyxFQUFFO1NBQ25DLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLFNBQTBCO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2YsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLFNBQVM7U0FDWixDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXhEUSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZmLE1BQU07OzJGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGlzSW5zaWRlRWRpdG9yIH0gZnJvbSAnQGRvdGNtcy9jbGllbnQnO1xuXG5pbXBvcnQgeyBEb3RDTVNQYWdlQ29tcG9uZW50LCBEb3RDTVNQYWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBEb3RDTVNQYWdlQXNzZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZG90Y21zLm1vZGVsJztcblxuLyoqXG4gKiBAYXV0aG9yIGRvdENNU1xuICogQGRlc2NyaXB0aW9uIFRoaXMgc2VydmljZSBpcyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIHBhZ2UgY29udGV4dC5cbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBQYWdlQ29udGV4dFNlcnZpY2VcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQYWdlQ29udGV4dFNlcnZpY2Uge1xuICAgIHByaXZhdGUgY29udGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERvdENNU1BhZ2VDb250ZXh0IHwgbnVsbD4obnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0IHRoZSBjb250ZXh0XG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQHR5cGUge0RvdENNU1BhZ2VDb250ZXh0fVxuICAgICAqIEBtZW1iZXJvZiBQYWdlQ29udGV4dFNlcnZpY2VcbiAgICAgKi9cbiAgICBnZXQgY29udGV4dCgpOiBEb3RDTVNQYWdlQ29udGV4dCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQkLmdldFZhbHVlKCkgYXMgRG90Q01TUGFnZUNvbnRleHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCB0aGUgY29udGV4dCBhcyBhbiBvYnNlcnZhYmxlXG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQG1lbWJlcm9mIFBhZ2VDb250ZXh0U2VydmljZVxuICAgICAqL1xuICAgIGdldCBjb250ZXh0T2JzJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCB0aGUgY3VycmVudCBwYWdlIGFzc2V0XG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQHR5cGUgeyhPYnNlcnZhYmxlPERvdENNU1BhZ2VBc3NldCB8IG51bGw+KX1cbiAgICAgKiBAbWVtYmVyb2YgUGFnZUNvbnRleHRTZXJ2aWNlXG4gICAgICovXG4gICAgZ2V0IGN1cnJlbnRQYWdlJCgpOiBPYnNlcnZhYmxlPERvdENNU1BhZ2VBc3NldCB8IG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dE9icyQucGlwZShtYXAoKGNvbnRleHQpID0+IGNvbnRleHQ/LnBhZ2VBc3NldCB8fCBudWxsKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAZGVzY3JpcHRpb24gU2V0IHRoZSBjb250ZXh0XG4gICAgICogQHBhcmFtIHtEb3RDTVNQYWdlQXNzZXR9IHZhbHVlXG4gICAgICogQG1lbWJlcm9mIERvdGNtc0NvbnRleHRTZXJ2aWNlXG4gICAgICovXG4gICAgc2V0Q29udGV4dChwYWdlQXNzZXQ6IERvdENNU1BhZ2VBc3NldCwgY29tcG9uZW50czogRG90Q01TUGFnZUNvbXBvbmVudCkge1xuICAgICAgICB0aGlzLmNvbnRleHQkLm5leHQoe1xuICAgICAgICAgICAgcGFnZUFzc2V0LFxuICAgICAgICAgICAgY29tcG9uZW50cyxcbiAgICAgICAgICAgIGlzSW5zaWRlRWRpdG9yOiBpc0luc2lkZUVkaXRvcigpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZXQgdGhlIHBhZ2UgYXNzZXQgaW4gdGhlIGNvbnRleHRcbiAgICAgKiBAcGFyYW0ge0RvdENNU1BhZ2VBc3NldH0gcGFnZUFzc2V0XG4gICAgICogQG1lbWJlcm9mIFBhZ2VDb250ZXh0U2VydmljZVxuICAgICAqL1xuICAgIHNldFBhZ2VBc3NldChwYWdlQXNzZXQ6IERvdENNU1BhZ2VBc3NldCkge1xuICAgICAgICB0aGlzLmNvbnRleHQkLm5leHQoe1xuICAgICAgICAgICAgLi4udGhpcy5jb250ZXh0LFxuICAgICAgICAgICAgcGFnZUFzc2V0XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,75 +0,0 @@
1
- import { IMAGE_LOADER } from '@angular/common';
2
- /**
3
- * Validates if a given path is a valid URL string
4
- *
5
- * @param path - The path to validate
6
- * @returns boolean indicating if the path is valid
7
- */
8
- function isValidPath(path) {
9
- if (typeof path !== 'string' || path.trim() === '') {
10
- return false;
11
- }
12
- try {
13
- new URL(path);
14
- return true;
15
- }
16
- catch {
17
- return false;
18
- }
19
- }
20
- /**
21
- * Provides a DotCMS image loader configuration for the Angular Image directive
22
- *
23
- * @param path - The base URL path to the DotCMS instance, or empty to use current site
24
- * @returns An array of providers for the IMAGE_LOADER token
25
- * @throws Error if the provided path is invalid
26
- * @example
27
- * ```typescript
28
- * // In your app.config.ts
29
- * export const appConfig: ApplicationConfig = {
30
- * providers: [
31
- * provideDotCMSImageLoader('https://demo.dotcms.com')
32
- * // Or use current site:
33
- * // provideDotCMSImageLoader()
34
- * ]
35
- * };
36
- * ```
37
- */
38
- export function provideDotCMSImageLoader(path) {
39
- // If path is provided, validate it
40
- if (path && !isValidPath(path)) {
41
- throw new Error(`Image loader has detected an invalid path (\`${path}\`). ` +
42
- `To fix this, supply either the full URL to the dotCMS site, or leave it empty to use the current site.`);
43
- }
44
- return [
45
- {
46
- provide: IMAGE_LOADER,
47
- useValue: (config) => createDotCMSUrl(config, path)
48
- }
49
- ];
50
- }
51
- /**
52
- * Creates a DotCMS-compatible URL for image loading
53
- *
54
- * @param config - The image loader configuration
55
- * @param path - The base URL path to the DotCMS instance
56
- * @returns A fully qualified URL for the image
57
- * @internal
58
- */
59
- function createDotCMSUrl(config, path) {
60
- // console.log('createDotCMSUrl', config, path);
61
- const { loaderParams, src, width } = config;
62
- const params = loaderParams;
63
- if (params?.isOutsideSRC) {
64
- return src;
65
- }
66
- // Use empty string as fallback to support using current site
67
- const dotcmsHost = path ? new URL(path).origin : '';
68
- const imageSRC = src.includes('/dA/') ? src : `/dA/${src}`;
69
- const languageId = params?.languageId ?? '1';
70
- if (width) {
71
- return `${dotcmsHost}${imageSRC}/${width}w?language_id=${languageId}`;
72
- }
73
- return `${dotcmsHost}${imageSRC}?language_id=${languageId}`;
74
- }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VfbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9zcmMvbGliL3V0aWxzL2ltYWdlX2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLGlCQUFpQixDQUFDO0FBV2xFOzs7OztHQUtHO0FBQ0gsU0FBUyxXQUFXLENBQUMsSUFBYTtJQUM5QixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDakQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksQ0FBQztRQUNELElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNMLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLElBQWE7SUFDbEQsbUNBQW1DO0lBQ25DLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FDWCxnREFBZ0QsSUFBSSxPQUFPO1lBQ3ZELHdHQUF3RyxDQUMvRyxDQUFDO0lBQ04sQ0FBQztJQUVELE9BQU87UUFDSDtZQUNJLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFFBQVEsRUFBRSxDQUFDLE1BQXlCLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1NBQ3pFO0tBQ0osQ0FBQztBQUNOLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxlQUFlLENBQUMsTUFBeUIsRUFBRSxJQUFhO0lBQzdELGdEQUFnRDtJQUVoRCxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDNUMsTUFBTSxNQUFNLEdBQUcsWUFBdUMsQ0FBQztJQUV2RCxJQUFJLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQztRQUN2QixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNwRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDM0QsTUFBTSxVQUFVLEdBQUcsTUFBTSxFQUFFLFVBQVUsSUFBSSxHQUFHLENBQUM7SUFFN0MsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNSLE9BQU8sR0FBRyxVQUFVLEdBQUcsUUFBUSxJQUFJLEtBQUssaUJBQWlCLFVBQVUsRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFRCxPQUFPLEdBQUcsVUFBVSxHQUFHLFFBQVEsZ0JBQWdCLFVBQVUsRUFBRSxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJTUFHRV9MT0FERVIsIEltYWdlTG9hZGVyQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVHlwZSBkZWZpbml0aW9uIGZvciB0aGUgRG90Q01TIGltYWdlIGxvYWRlciBwYXJhbWV0ZXJzXG4gKi9cbmludGVyZmFjZSBEb3RDTVNJbWFnZUxvYWRlclBhcmFtcyB7XG4gICAgaXNPdXRzaWRlU1JDPzogYm9vbGVhbjtcbiAgICBsYW5ndWFnZUlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyBpZiBhIGdpdmVuIHBhdGggaXMgYSB2YWxpZCBVUkwgc3RyaW5nXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byB2YWxpZGF0ZVxuICogQHJldHVybnMgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBwYXRoIGlzIHZhbGlkXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRQYXRoKHBhdGg6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnIHx8IHBhdGgudHJpbSgpID09PSAnJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgICAgbmV3IFVSTChwYXRoKTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBQcm92aWRlcyBhIERvdENNUyBpbWFnZSBsb2FkZXIgY29uZmlndXJhdGlvbiBmb3IgdGhlIEFuZ3VsYXIgSW1hZ2UgZGlyZWN0aXZlXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgYmFzZSBVUkwgcGF0aCB0byB0aGUgRG90Q01TIGluc3RhbmNlLCBvciBlbXB0eSB0byB1c2UgY3VycmVudCBzaXRlXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm92aWRlcnMgZm9yIHRoZSBJTUFHRV9MT0FERVIgdG9rZW5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIHByb3ZpZGVkIHBhdGggaXMgaW52YWxpZFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluIHlvdXIgYXBwLmNvbmZpZy50c1xuICogZXhwb3J0IGNvbnN0IGFwcENvbmZpZzogQXBwbGljYXRpb25Db25maWcgPSB7XG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHByb3ZpZGVEb3RDTVNJbWFnZUxvYWRlcignaHR0cHM6Ly9kZW1vLmRvdGNtcy5jb20nKVxuICogICAgIC8vIE9yIHVzZSBjdXJyZW50IHNpdGU6XG4gKiAgICAgLy8gcHJvdmlkZURvdENNU0ltYWdlTG9hZGVyKClcbiAqICAgXVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURvdENNU0ltYWdlTG9hZGVyKHBhdGg/OiBzdHJpbmcpOiBQcm92aWRlcltdIHtcbiAgICAvLyBJZiBwYXRoIGlzIHByb3ZpZGVkLCB2YWxpZGF0ZSBpdFxuICAgIGlmIChwYXRoICYmICFpc1ZhbGlkUGF0aChwYXRoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1hZ2UgbG9hZGVyIGhhcyBkZXRlY3RlZCBhbiBpbnZhbGlkIHBhdGggKFxcYCR7cGF0aH1cXGApLiBgICtcbiAgICAgICAgICAgICAgICBgVG8gZml4IHRoaXMsIHN1cHBseSBlaXRoZXIgdGhlIGZ1bGwgVVJMIHRvIHRoZSBkb3RDTVMgc2l0ZSwgb3IgbGVhdmUgaXQgZW1wdHkgdG8gdXNlIHRoZSBjdXJyZW50IHNpdGUuYFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IElNQUdFX0xPQURFUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiAoY29uZmlnOiBJbWFnZUxvYWRlckNvbmZpZykgPT4gY3JlYXRlRG90Q01TVXJsKGNvbmZpZywgcGF0aClcbiAgICAgICAgfVxuICAgIF07XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIERvdENNUy1jb21wYXRpYmxlIFVSTCBmb3IgaW1hZ2UgbG9hZGluZ1xuICpcbiAqIEBwYXJhbSBjb25maWcgLSBUaGUgaW1hZ2UgbG9hZGVyIGNvbmZpZ3VyYXRpb25cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIGJhc2UgVVJMIHBhdGggdG8gdGhlIERvdENNUyBpbnN0YW5jZVxuICogQHJldHVybnMgQSBmdWxseSBxdWFsaWZpZWQgVVJMIGZvciB0aGUgaW1hZ2VcbiAqIEBpbnRlcm5hbFxuICovXG5mdW5jdGlvbiBjcmVhdGVEb3RDTVNVcmwoY29uZmlnOiBJbWFnZUxvYWRlckNvbmZpZywgcGF0aD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gY29uc29sZS5sb2coJ2NyZWF0ZURvdENNU1VybCcsIGNvbmZpZywgcGF0aCk7XG5cbiAgICBjb25zdCB7IGxvYWRlclBhcmFtcywgc3JjLCB3aWR0aCB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHBhcmFtcyA9IGxvYWRlclBhcmFtcyBhcyBEb3RDTVNJbWFnZUxvYWRlclBhcmFtcztcblxuICAgIGlmIChwYXJhbXM/LmlzT3V0c2lkZVNSQykge1xuICAgICAgICByZXR1cm4gc3JjO1xuICAgIH1cblxuICAgIC8vIFVzZSBlbXB0eSBzdHJpbmcgYXMgZmFsbGJhY2sgdG8gc3VwcG9ydCB1c2luZyBjdXJyZW50IHNpdGVcbiAgICBjb25zdCBkb3RjbXNIb3N0ID0gcGF0aCA/IG5ldyBVUkwocGF0aCkub3JpZ2luIDogJyc7XG4gICAgY29uc3QgaW1hZ2VTUkMgPSBzcmMuaW5jbHVkZXMoJy9kQS8nKSA/IHNyYyA6IGAvZEEvJHtzcmN9YDtcbiAgICBjb25zdCBsYW5ndWFnZUlkID0gcGFyYW1zPy5sYW5ndWFnZUlkID8/ICcxJztcblxuICAgIGlmICh3aWR0aCkge1xuICAgICAgICByZXR1cm4gYCR7ZG90Y21zSG9zdH0ke2ltYWdlU1JDfS8ke3dpZHRofXc/bGFuZ3VhZ2VfaWQ9JHtsYW5ndWFnZUlkfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke2RvdGNtc0hvc3R9JHtpbWFnZVNSQ30/bGFuZ3VhZ2VfaWQ9JHtsYW5ndWFnZUlkfWA7XG59XG4iXX0=