@dotcms/angular 0.0.1-beta.1 → 0.0.1-beta.10

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 (99) hide show
  1. package/dotcms-angular.d.ts.map +1 -1
  2. package/esm2022/dotcms-angular.mjs +2 -2
  3. package/esm2022/lib/deprecated/components/dot-editable-text/dot-editable-text.component.mjs +229 -0
  4. package/esm2022/lib/deprecated/components/dot-editable-text/utils.mjs +43 -0
  5. package/esm2022/lib/deprecated/components/no-component/no-component.component.mjs +32 -0
  6. package/esm2022/lib/deprecated/deprecated-api.mjs +11 -0
  7. package/esm2022/lib/{layout → deprecated/layout}/column/column.component.mjs +1 -1
  8. package/esm2022/lib/deprecated/layout/container/container.component.mjs +126 -0
  9. package/esm2022/lib/deprecated/layout/contentlet/contentlet.component.mjs +120 -0
  10. package/esm2022/lib/deprecated/layout/dotcms-layout/dotcms-layout.component.mjs +105 -0
  11. package/esm2022/lib/{layout → deprecated/layout}/row/row.component.mjs +1 -1
  12. package/esm2022/lib/deprecated/models/dotcms.model.mjs +3 -0
  13. package/esm2022/lib/deprecated/models/index.mjs +3 -0
  14. package/esm2022/lib/deprecated/services/dotcms-context/page-context.service.mjs +79 -0
  15. package/esm2022/lib/deprecated/utils/image_loader.mjs +75 -0
  16. package/esm2022/lib/deprecated/utils/index.mjs +84 -0
  17. package/esm2022/next/components/dotcms-editable-text/dotcms-editable-text.component.mjs +225 -0
  18. package/esm2022/{lib/components/dot-editable-text → next/components/dotcms-editable-text}/utils.mjs +1 -1
  19. package/esm2022/next/directives/dotcms-show-when/dotcms-show-when.directive.mjs +49 -0
  20. package/esm2022/next/dotcms-angular-next.mjs +5 -0
  21. package/esm2022/next/models/dotcms.model.mjs +3 -0
  22. package/esm2022/next/models/index.mjs +3 -0
  23. package/esm2022/next/providers/dotcms-image-loader/dotcms-image_loader.mjs +74 -0
  24. package/esm2022/next/public_api.mjs +4 -0
  25. package/esm2022/public_api.mjs +2 -0
  26. package/fesm2022/dotcms-angular-next.mjs +395 -0
  27. package/fesm2022/dotcms-angular-next.mjs.map +1 -0
  28. package/fesm2022/dotcms-angular.mjs +97 -4
  29. package/fesm2022/dotcms-angular.mjs.map +1 -1
  30. package/index.d.ts +6 -5
  31. package/lib/{components → deprecated/components}/dot-editable-text/dot-editable-text.component.d.ts +4 -0
  32. package/lib/deprecated/components/dot-editable-text/dot-editable-text.component.d.ts.map +1 -0
  33. package/lib/deprecated/components/dot-editable-text/utils.d.ts.map +1 -0
  34. package/lib/deprecated/components/no-component/no-component.component.d.ts.map +1 -0
  35. package/lib/deprecated/deprecated-api.d.ts +11 -0
  36. package/lib/deprecated/deprecated-api.d.ts.map +1 -0
  37. package/lib/deprecated/layout/column/column.component.d.ts.map +1 -0
  38. package/lib/deprecated/layout/container/container.component.d.ts.map +1 -0
  39. package/lib/deprecated/layout/contentlet/contentlet.component.d.ts.map +1 -0
  40. package/lib/{layout → deprecated/layout}/dotcms-layout/dotcms-layout.component.d.ts +5 -0
  41. package/lib/deprecated/layout/dotcms-layout/dotcms-layout.component.d.ts.map +1 -0
  42. package/lib/deprecated/layout/row/row.component.d.ts.map +1 -0
  43. package/lib/deprecated/models/dotcms.model.d.ts.map +1 -0
  44. package/lib/deprecated/models/index.d.ts.map +1 -0
  45. package/lib/{services → deprecated/services}/dotcms-context/page-context.service.d.ts +4 -0
  46. package/lib/deprecated/services/dotcms-context/page-context.service.d.ts.map +1 -0
  47. package/lib/deprecated/utils/image_loader.d.ts +21 -0
  48. package/lib/deprecated/utils/image_loader.d.ts.map +1 -0
  49. package/lib/deprecated/utils/index.d.ts.map +1 -0
  50. package/next/components/dotcms-editable-text/dotcms-editable-text.component.d.ts +129 -0
  51. package/next/components/dotcms-editable-text/dotcms-editable-text.component.d.ts.map +1 -0
  52. package/next/components/dotcms-editable-text/utils.d.ts +7 -0
  53. package/{lib/components/dot-editable-text → next/components/dotcms-editable-text}/utils.d.ts.map +1 -1
  54. package/next/directives/dotcms-show-when/dotcms-show-when.directive.d.ts +21 -0
  55. package/next/directives/dotcms-show-when/dotcms-show-when.directive.d.ts.map +1 -0
  56. package/next/dotcms-angular-next.d.ts.map +1 -0
  57. package/next/index.d.ts +6 -0
  58. package/next/models/dotcms.model.d.ts +416 -0
  59. package/next/models/dotcms.model.d.ts.map +1 -0
  60. package/next/models/index.d.ts +40 -0
  61. package/next/models/index.d.ts.map +1 -0
  62. package/next/providers/dotcms-image-loader/dotcms-image_loader.d.ts +21 -0
  63. package/next/providers/dotcms-image-loader/dotcms-image_loader.d.ts.map +1 -0
  64. package/next/public_api.d.ts +4 -0
  65. package/next/public_api.d.ts.map +1 -0
  66. package/package.json +9 -2
  67. package/public_api.d.ts +2 -0
  68. package/public_api.d.ts.map +1 -0
  69. package/esm2022/index.mjs +0 -5
  70. package/esm2022/lib/components/dot-editable-text/dot-editable-text.component.mjs +0 -225
  71. package/esm2022/lib/components/no-component/no-component.component.mjs +0 -32
  72. package/esm2022/lib/layout/container/container.component.mjs +0 -126
  73. package/esm2022/lib/layout/contentlet/contentlet.component.mjs +0 -120
  74. package/esm2022/lib/layout/dotcms-layout/dotcms-layout.component.mjs +0 -100
  75. package/esm2022/lib/models/dotcms.model.mjs +0 -3
  76. package/esm2022/lib/models/index.mjs +0 -3
  77. package/esm2022/lib/services/dotcms-context/page-context.service.mjs +0 -75
  78. package/esm2022/lib/utils/index.mjs +0 -84
  79. package/index.d.ts.map +0 -1
  80. package/lib/components/dot-editable-text/dot-editable-text.component.d.ts.map +0 -1
  81. package/lib/components/no-component/no-component.component.d.ts.map +0 -1
  82. package/lib/layout/column/column.component.d.ts.map +0 -1
  83. package/lib/layout/container/container.component.d.ts.map +0 -1
  84. package/lib/layout/contentlet/contentlet.component.d.ts.map +0 -1
  85. package/lib/layout/dotcms-layout/dotcms-layout.component.d.ts.map +0 -1
  86. package/lib/layout/row/row.component.d.ts.map +0 -1
  87. package/lib/models/dotcms.model.d.ts.map +0 -1
  88. package/lib/models/index.d.ts.map +0 -1
  89. package/lib/services/dotcms-context/page-context.service.d.ts.map +0 -1
  90. package/lib/utils/index.d.ts.map +0 -1
  91. /package/lib/{components → deprecated/components}/dot-editable-text/utils.d.ts +0 -0
  92. /package/lib/{components → deprecated/components}/no-component/no-component.component.d.ts +0 -0
  93. /package/lib/{layout → deprecated/layout}/column/column.component.d.ts +0 -0
  94. /package/lib/{layout → deprecated/layout}/container/container.component.d.ts +0 -0
  95. /package/lib/{layout → deprecated/layout}/contentlet/contentlet.component.d.ts +0 -0
  96. /package/lib/{layout → deprecated/layout}/row/row.component.d.ts +0 -0
  97. /package/lib/{models → deprecated/models}/dotcms.model.d.ts +0 -0
  98. /package/lib/{models → deprecated/models}/index.d.ts +0 -0
  99. /package/lib/{utils → deprecated/utils}/index.d.ts +0 -0
@@ -0,0 +1,4 @@
1
+ export { DotCMSShowWhenDirective } from './directives/dotcms-show-when/dotcms-show-when.directive';
2
+ export { provideDotCMSImageLoader } from './providers/dotcms-image-loader/dotcms-image_loader';
3
+ export { DotCMSEditableTextComponent } from './components/dotcms-editable-text/dotcms-editable-text.component';
4
+ //# sourceMappingURL=public_api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_api.d.ts","sourceRoot":"","sources":["../../../../../libs/sdk/angular/next/public_api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AAEnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAE/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,kEAAkE,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@dotcms/angular",
3
- "version": "0.0.1-beta.1",
3
+ "version": "0.0.1-beta.10",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=17.0.0",
6
6
  "@angular/core": ">=17.0.0",
7
7
  "@angular/router": ">=17.0.0",
8
- "@dotcms/client": "0.0.1-beta.1",
8
+ "@dotcms/client": "0.0.1-beta.10",
9
+ "@dotcms/uve": "0.0.1-beta.10",
9
10
  "@tinymce/tinymce-angular": "^8.0.0",
10
11
  "rxjs": ">=7.0.0"
11
12
  },
@@ -40,6 +41,12 @@
40
41
  "esm2022": "./esm2022/dotcms-angular.mjs",
41
42
  "esm": "./esm2022/dotcms-angular.mjs",
42
43
  "default": "./fesm2022/dotcms-angular.mjs"
44
+ },
45
+ "./next": {
46
+ "types": "./next/index.d.ts",
47
+ "esm2022": "./esm2022/next/dotcms-angular-next.mjs",
48
+ "esm": "./esm2022/next/dotcms-angular-next.mjs",
49
+ "default": "./fesm2022/dotcms-angular-next.mjs"
43
50
  }
44
51
  },
45
52
  "sideEffects": false,
@@ -0,0 +1,2 @@
1
+ export * from './lib/deprecated/deprecated-api';
2
+ //# sourceMappingURL=public_api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_api.d.ts","sourceRoot":"","sources":["../../../../libs/sdk/angular/src/public_api.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
package/esm2022/index.mjs DELETED
@@ -1,5 +0,0 @@
1
- export * from './lib/components/dot-editable-text/dot-editable-text.component';
2
- export * from './lib/layout/dotcms-layout/dotcms-layout.component';
3
- export * from './lib/services/dotcms-context/page-context.service';
4
- export * from './lib/models';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZG90LWVkaXRhYmxlLXRleHQvZG90LWVkaXRhYmxlLXRleHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xheW91dC9kb3RjbXMtbGF5b3V0L2RvdGNtcy1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2RvdGNtcy1jb250ZXh0L3BhZ2UtY29udGV4dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XG4iXX0=
@@ -1,225 +0,0 @@
1
- import { EditorComponent, TINYMCE_SCRIPT_SRC } from '@tinymce/tinymce-angular';
2
- import { Component, ElementRef, HostListener, inject, Input, Renderer2, SecurityContext, ViewChild } from '@angular/core';
3
- import { DomSanitizer } from '@angular/platform-browser';
4
- import { CLIENT_ACTIONS, DotCmsClient, isInsideEditor, NOTIFY_CLIENT, postMessageToEditor } from '@dotcms/client';
5
- import { TINYMCE_CONFIG } from './utils';
6
- import * as i0 from "@angular/core";
7
- /**
8
- * Dot editable text component.
9
- * This component is responsible to render a text field that can be edited inline.
10
- *
11
- * @export
12
- * @class DotEditableTextComponent
13
- * @implements {OnInit}
14
- * @implements {OnChanges}
15
- */
16
- export class DotEditableTextComponent {
17
- constructor() {
18
- /**
19
- * Represents the mode of the editor which can be `plain`, `minimal`, or `full`
20
- *
21
- * @type {DOT_EDITABLE_TEXT_MODE}
22
- * @memberof DotEditableTextComponent
23
- */
24
- this.mode = 'plain';
25
- /**
26
- * Represents the format of the editor which can be `text` or `html`
27
- *
28
- * @type {DOT_EDITABLE_TEXT_FORMAT}
29
- * @memberof DotEditableTextComponent
30
- */
31
- this.format = 'text';
32
- /**
33
- * Represents the field name of the `contentlet` that can be edited
34
- *
35
- * @memberof DotEditableTextComponent
36
- */
37
- this.fieldName = '';
38
- /**
39
- * Represents the content of the `contentlet` that can be edited
40
- *
41
- * @protected
42
- * @memberof DotEditableTextComponent
43
- */
44
- this.content = '';
45
- this.#sanitizer = inject(DomSanitizer);
46
- this.#renderer = inject(Renderer2);
47
- this.#elementRef = inject(ElementRef);
48
- }
49
- #sanitizer;
50
- #renderer;
51
- #elementRef;
52
- /**
53
- * The TinyMCE editor
54
- *
55
- * @readonly
56
- * @memberof DotEditableTextComponent
57
- */
58
- get editor() {
59
- return this.editorComponent?.editor;
60
- }
61
- /**
62
- * Returns the number of pages the contentlet is on
63
- *
64
- * @readonly
65
- * @memberof DotEditableTextComponent
66
- */
67
- get onNumberOfPages() {
68
- return this.contentlet['onNumberOfPages'] || 1;
69
- }
70
- /**
71
- * Handle copy contentlet inline editing success event
72
- *
73
- * @param {MessageEvent} { data }
74
- * @return {*}
75
- * @memberof DotEditableTextComponent
76
- */
77
- onMessage({ data }) {
78
- const { name, payload } = data;
79
- if (name !== NOTIFY_CLIENT.UVE_COPY_CONTENTLET_INLINE_EDITING_SUCCESS) {
80
- return;
81
- }
82
- const { oldInode, inode } = payload;
83
- const currentInode = this.contentlet.inode;
84
- if (currentInode === oldInode || currentInode === inode) {
85
- this.editorComponent.editor.focus();
86
- return;
87
- }
88
- }
89
- ngOnInit() {
90
- this.isInsideEditor = isInsideEditor();
91
- if (!this.isInsideEditor) {
92
- this.innerHTMLToElement();
93
- return;
94
- }
95
- this.init = {
96
- ...TINYMCE_CONFIG[this.mode],
97
- base_url: `${DotCmsClient.dotcmsUrl}/ext/tinymcev7`
98
- };
99
- }
100
- ngOnChanges() {
101
- this.content = this.contentlet[this.fieldName] || '';
102
- if (this.editor) {
103
- this.editor.setContent(this.content, { format: this.format });
104
- }
105
- }
106
- /**
107
- * Handle mouse down event
108
- *
109
- * @param {EventObj<MouseEvent>} { event }
110
- * @return {*}
111
- * @memberof DotEditableTextComponent
112
- */
113
- onMouseDown({ event }) {
114
- if (this.onNumberOfPages <= 1 || this.editorComponent.editor.hasFocus()) {
115
- return;
116
- }
117
- const { inode, languageId: language } = this.contentlet;
118
- event.stopPropagation();
119
- event.preventDefault();
120
- try {
121
- postMessageToEditor({
122
- action: CLIENT_ACTIONS.COPY_CONTENTLET_INLINE_EDITING,
123
- payload: {
124
- dataset: {
125
- inode,
126
- language,
127
- fieldName: this.fieldName
128
- }
129
- }
130
- });
131
- }
132
- catch (error) {
133
- console.error('Failed to post message to editor:', error);
134
- }
135
- }
136
- /**
137
- * Handle focus out event
138
- *
139
- * @return {*}
140
- * @memberof DotEditableTextComponent
141
- */
142
- onFocusOut() {
143
- const content = this.editor.getContent({ format: this.format });
144
- if (!this.editor.isDirty() || !this.didContentChange(content)) {
145
- return;
146
- }
147
- const { inode, languageId: langId } = this.contentlet;
148
- try {
149
- postMessageToEditor({
150
- action: CLIENT_ACTIONS.UPDATE_CONTENTLET_INLINE_EDITING,
151
- payload: {
152
- content,
153
- dataset: {
154
- inode,
155
- langId,
156
- fieldName: this.fieldName
157
- }
158
- }
159
- });
160
- }
161
- catch (error) {
162
- console.error('Failed to post message to editor:', error);
163
- }
164
- }
165
- /**
166
- * inner HTML to element
167
- *
168
- * @private
169
- * @param {string} editedContent
170
- * @return {*}
171
- * @memberof DotEditableTextComponent
172
- */
173
- innerHTMLToElement() {
174
- const element = this.#elementRef.nativeElement;
175
- const safeHtml = this.#sanitizer.bypassSecurityTrustHtml(this.content);
176
- const content = this.#sanitizer.sanitize(SecurityContext.HTML, safeHtml) || '';
177
- this.#renderer.setProperty(element, 'innerHTML', content);
178
- }
179
- /**
180
- * Check if the content has changed
181
- *
182
- * @private
183
- * @param {string} editedContent
184
- * @return {*}
185
- * @memberof DotEditableTextComponent
186
- */
187
- didContentChange(editedContent) {
188
- return this.content !== editedContent;
189
- }
190
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotEditableTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
191
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: DotEditableTextComponent, isStandalone: true, selector: "dot-editable-text", inputs: { mode: "mode", format: "format", contentlet: "contentlet", fieldName: "fieldName" }, host: { listeners: { "window:message": "onMessage($event)" } }, providers: [
192
- {
193
- provide: TINYMCE_SCRIPT_SRC,
194
- useFactory: () => {
195
- return `${DotCmsClient.dotcmsUrl}/ext/tinymcev7/tinymce.min.js`;
196
- }
197
- }
198
- ], viewQueries: [{ propertyName: "editorComponent", first: true, predicate: EditorComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (isInsideEditor) {\n <editor\n #tinyEditor\n [init]=\"init\"\n [initialValue]=\"content\"\n (onMouseDown)=\"onMouseDown($event)\"\n (onFocusOut)=\"onFocusOut()\" />\n}\n", styles: [":host ::ng-deep .mce-content-body:not(.mce-edit-focus):hover{outline:2px solid #006ce7;border-radius:4px}\n"], dependencies: [{ kind: "component", type: EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }] }); }
199
- }
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: DotEditableTextComponent, decorators: [{
201
- type: Component,
202
- args: [{ selector: 'dot-editable-text', standalone: true, imports: [EditorComponent], providers: [
203
- {
204
- provide: TINYMCE_SCRIPT_SRC,
205
- useFactory: () => {
206
- return `${DotCmsClient.dotcmsUrl}/ext/tinymcev7/tinymce.min.js`;
207
- }
208
- }
209
- ], template: "@if (isInsideEditor) {\n <editor\n #tinyEditor\n [init]=\"init\"\n [initialValue]=\"content\"\n (onMouseDown)=\"onMouseDown($event)\"\n (onFocusOut)=\"onFocusOut()\" />\n}\n", styles: [":host ::ng-deep .mce-content-body:not(.mce-edit-focus):hover{outline:2px solid #006ce7;border-radius:4px}\n"] }]
210
- }], propDecorators: { editorComponent: [{
211
- type: ViewChild,
212
- args: [EditorComponent]
213
- }], mode: [{
214
- type: Input
215
- }], format: [{
216
- type: Input
217
- }], contentlet: [{
218
- type: Input
219
- }], fieldName: [{
220
- type: Input
221
- }], onMessage: [{
222
- type: HostListener,
223
- args: ['window:message', ['$event']]
224
- }] } });
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90LWVkaXRhYmxlLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZG90LWVkaXRhYmxlLXRleHQvZG90LWVkaXRhYmxlLXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZG90LWVkaXRhYmxlLXRleHQvZG90LWVkaXRhYmxlLXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRy9FLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQ0gsY0FBYyxFQUNkLFlBQVksRUFDWixjQUFjLEVBQ2QsYUFBYSxFQUNiLG1CQUFtQixFQUN0QixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxjQUFjLEVBQW9ELE1BQU0sU0FBUyxDQUFDOztBQUkzRjs7Ozs7Ozs7R0FRRztBQWdCSCxNQUFNLE9BQU8sd0JBQXdCO0lBZnJDO1FBa0JJOzs7OztXQUtHO1FBQ00sU0FBSSxHQUEyQixPQUFPLENBQUM7UUFDaEQ7Ozs7O1dBS0c7UUFDTSxXQUFNLEdBQTZCLE1BQU0sQ0FBQztRQVFuRDs7OztXQUlHO1FBQ00sY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUV4Qjs7Ozs7V0FLRztRQUNPLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFrQmQsZUFBVSxHQUFHLE1BQU0sQ0FBZSxZ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QUUvRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssZ0JBQWdCLENBQUMsYUFBcUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLGFBQWEsQ0FBQztJQUMxQyxDQUFDOzhHQXZOUSx3QkFBd0I7a0dBQXhCLHdCQUF3Qiw4TkFUdEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixVQUFVLEVBQUUsR0FBRyxFQUFFO29CQUNiLE9BQU8sR0FBRyxZQUFZLENBQUMsU0FBUywrQkFBK0IsQ0FBQztnQkFDcEUsQ0FBQzthQUNKO1NBQ0osMkVBR1UsZUFBZSxxRUN0RDlCLHFOQVFBLHFLRG1DYyxlQUFlOzsyRkFVaEIsd0JBQXdCO2tCQWZwQyxTQUFTOytCQUNJLG1CQUFtQixjQUNqQixJQUFJLFdBR1AsQ0FBQyxlQUFlLENBQUMsYUFDZjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixVQUFVLEVBQUUsR0FBRyxFQUFFO2dDQUNiLE9BQU8sR0FBRyxZQUFZLENBQUMsU0FBUywrQkFBK0IsQ0FBQzs0QkFDcEUsQ0FBQzt5QkFDSjtxQkFDSjs4QkFHMkIsZUFBZTtzQkFBMUMsU0FBUzt1QkFBQyxlQUFlO2dCQVFqQixJQUFJO3NCQUFaLEtBQUs7Z0JBT0csTUFBTTtzQkFBZCxLQUFLO2dCQU9HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTUcsU0FBUztzQkFBakIsS0FBSztnQkEwRE4sU0FBUztzQkFEUixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yQ29tcG9uZW50LCBUSU5ZTUNFX1NDUklQVF9TUkMgfSBmcm9tICdAdGlueW1jZS90aW55bWNlLWFuZ3VsYXInO1xuaW1wb3J0IHsgRXZlbnRPYmogfSBmcm9tICdAdGlueW1jZS90aW55bWNlLWFuZ3VsYXIvZWRpdG9yL0V2ZW50cyc7XG5cbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWN1cml0eUNvbnRleHQsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7XG4gICAgQ0xJRU5UX0FDVElPTlMsXG4gICAgRG90Q21zQ2xpZW50LFxuICAgIGlzSW5zaWRlRWRpdG9yLFxuICAgIE5PVElGWV9DTElFTlQsXG4gICAgcG9zdE1lc3NhZ2VUb0VkaXRvclxufSBmcm9tICdAZG90Y21zL2NsaWVudCc7XG5cbmltcG9ydCB7IFRJTllNQ0VfQ09ORklHLCBET1RfRURJVEFCTEVfVEVYVF9GT1JNQVQsIERPVF9FRElUQUJMRV9URVhUX01PREUgfSBmcm9tICcuL3V0aWxzJztcblxuaW1wb3J0IHsgRG90Q01TQ29udGVudGxldCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbi8qKlxuICogRG90IGVkaXRhYmxlIHRleHQgY29tcG9uZW50LlxuICogVGhpcyBjb21wb25lbnQgaXMgcmVzcG9uc2libGUgdG8gcmVuZGVyIGEgdGV4dCBmaWVsZCB0aGF0IGNhbiBiZSBlZGl0ZWQgaW5saW5lLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XG4gKiBAaW1wbGVtZW50cyB7T25DaGFuZ2VzfVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdC1lZGl0YWJsZS10ZXh0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kb3QtZWRpdGFibGUtdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2RvdC1lZGl0YWJsZS10ZXh0LmNvbXBvbmVudC5jc3MnLFxuICAgIGltcG9ydHM6IFtFZGl0b3JDb21wb25lbnRdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUSU5ZTUNFX1NDUklQVF9TUkMsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke0RvdENtc0NsaWVudC5kb3RjbXNVcmx9L2V4dC90aW55bWNldjcvdGlueW1jZS5taW4uanNgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEb3RFZGl0YWJsZVRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZChFZGl0b3JDb21wb25lbnQpIGVkaXRvckNvbXBvbmVudCE6IEVkaXRvckNvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIG1vZGUgb2YgdGhlIGVkaXRvciB3aGljaCBjYW4gYmUgYHBsYWluYCwgYG1pbmltYWxgLCBvciBgZnVsbGBcbiAgICAgKlxuICAgICAqIEB0eXBlIHtET1RfRURJVEFCTEVfVEVYVF9NT0RFfVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtb2RlOiBET1RfRURJVEFCTEVfVEVYVF9NT0RFID0gJ3BsYWluJztcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBmb3JtYXQgb2YgdGhlIGVkaXRvciB3aGljaCBjYW4gYmUgYHRleHRgIG9yIGBodG1sYFxuICAgICAqXG4gICAgICogQHR5cGUge0RPVF9FRElUQUJMRV9URVhUX0ZPUk1BVH1cbiAgICAgKiBAbWVtYmVyb2YgRG90RWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgZm9ybWF0OiBET1RfRURJVEFCTEVfVEVYVF9GT1JNQVQgPSAndGV4dCc7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgYGNvbnRlbnRsZXRgIHRoYXQgY2FuIGJlIGlubGluZSBlZGl0ZWRcbiAgICAgKlxuICAgICAqIEB0eXBlIHtEb3RDTVNDb250ZW50bGV0fVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjb250ZW50bGV0ITogRG90Q01TQ29udGVudGxldDtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBmaWVsZCBuYW1lIG9mIHRoZSBgY29udGVudGxldGAgdGhhdCBjYW4gYmUgZWRpdGVkXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgRG90RWRpdGFibGVUZXh0Q29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgZmllbGROYW1lID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBjb250ZW50IG9mIHRoZSBgY29udGVudGxldGAgdGhhdCBjYW4gYmUgZWRpdGVkXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb250ZW50ID0gJyc7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZWRpdG9yXG4gICAgICpcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICogQHR5cGUge0VkaXRvckNvbXBvbmVudFsnaW5pdCddfVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaW5pdCE6IEVkaXRvckNvbXBvbmVudFsnaW5pdCddO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgaWYgdGhlIGNvbXBvbmVudCBpcyBpbnNpZGUgdGhlIGVkaXRvclxuICAgICAqXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXNJbnNpZGVFZGl0b3IhOiBib29sZWFuO1xuXG4gICAgcmVhZG9ubHkgI3Nhbml0aXplciA9IGluamVjdDxEb21TYW5pdGl6ZXI+KERvbVNhbml0aXplcik7XG4gICAgcmVhZG9ubHkgI3JlbmRlcmVyID0gaW5qZWN0PFJlbmRlcmVyMj4oUmVuZGVyZXIyKTtcbiAgICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPihFbGVtZW50UmVmKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBUaW55TUNFIGVkaXRvclxuICAgICAqXG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIGdldCBlZGl0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRvckNvbXBvbmVudD8uZWRpdG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBwYWdlcyB0aGUgY29udGVudGxldCBpcyBvblxuICAgICAqXG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIGdldCBvbk51bWJlck9mUGFnZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRsZXRbJ29uTnVtYmVyT2ZQYWdlcyddIHx8IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIGNvcHkgY29udGVudGxldCBpbmxpbmUgZWRpdGluZyBzdWNjZXNzIGV2ZW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0ge01lc3NhZ2VFdmVudH0geyBkYXRhIH1cbiAgICAgKiBAcmV0dXJuIHsqfVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bWVzc2FnZScsIFsnJGV2ZW50J10pXG4gICAgb25NZXNzYWdlKHsgZGF0YSB9OiBNZXNzYWdlRXZlbnQpIHtcbiAgICAgICAgY29uc3QgeyBuYW1lLCBwYXlsb2FkIH0gPSBkYXRhO1xuICAgICAgICBpZiAobmFtZSAhPT0gTk9USUZZX0NMSUVOVC5VVkVfQ09QWV9DT05URU5UTEVUX0lOTElORV9FRElUSU5HX1NVQ0NFU1MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgb2xkSW5vZGUsIGlub2RlIH0gPSBwYXlsb2FkO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5vZGUgPSB0aGlzLmNvbnRlbnRsZXQuaW5vZGU7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJbm9kZSA9PT0gb2xkSW5vZGUgfHwgY3VycmVudElub2RlID09PSBpbm9kZSkge1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JDb21wb25lbnQuZWRpdG9yLmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmlzSW5zaWRlRWRpdG9yID0gaXNJbnNpZGVFZGl0b3IoKTtcblxuICAgICAgICBpZiAoIXRoaXMuaXNJbnNpZGVFZGl0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJIVE1MVG9FbGVtZW50KCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdCA9IHtcbiAgICAgICAgICAgIC4uLlRJTllNQ0VfQ09ORklHW3RoaXMubW9kZV0sXG4gICAgICAgICAgICBiYXNlX3VybDogYCR7RG90Q21zQ2xpZW50LmRvdGNtc1VybH0vZXh0L3RpbnltY2V2N2BcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5jb250ZW50bGV0W3RoaXMuZmllbGROYW1lXSB8fCAnJztcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRvci5zZXRDb250ZW50KHRoaXMuY29udGVudCwgeyBmb3JtYXQ6IHRoaXMuZm9ybWF0IH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIG1vdXNlIGRvd24gZXZlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7RXZlbnRPYmo8TW91c2VFdmVudD59IHsgZXZlbnQgfVxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIG9uTW91c2VEb3duKHsgZXZlbnQgfTogRXZlbnRPYmo8TW91c2VFdmVudD4pIHtcbiAgICAgICAgaWYgKHRoaXMub25OdW1iZXJPZlBhZ2VzIDw9IDEgfHwgdGhpcy5lZGl0b3JDb21wb25lbnQuZWRpdG9yLmhhc0ZvY3VzKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgaW5vZGUsIGxhbmd1YWdlSWQ6IGxhbmd1YWdlIH0gPSB0aGlzLmNvbnRlbnRsZXQ7XG5cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBvc3RNZXNzYWdlVG9FZGl0b3Ioe1xuICAgICAgICAgICAgICAgIGFjdGlvbjogQ0xJRU5UX0FDVElPTlMuQ09QWV9DT05URU5UTEVUX0lOTElORV9FRElUSU5HLFxuICAgICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZTogdGhpcy5maWVsZE5hbWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBvc3QgbWVzc2FnZSB0byBlZGl0b3I6JywgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBmb2N1cyBvdXQgZXZlbnRcbiAgICAgKlxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIG9uRm9jdXNPdXQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmVkaXRvci5nZXRDb250ZW50KHsgZm9ybWF0OiB0aGlzLmZvcm1hdCB9KTtcblxuICAgICAgICBpZiAoIXRoaXMuZWRpdG9yLmlzRGlydHkoKSB8fCAhdGhpcy5kaWRDb250ZW50Q2hhbmdlKGNvbnRlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGlub2RlLCBsYW5ndWFnZUlkOiBsYW5nSWQgfSA9IHRoaXMuY29udGVudGxldDtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcG9zdE1lc3NhZ2VUb0VkaXRvcih7XG4gICAgICAgICAgICAgICAgYWN0aW9uOiBDTElFTlRfQUNUSU9OUy5VUERBVEVfQ09OVEVOVExFVF9JTkxJTkVfRURJVElORyxcbiAgICAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgIGRhdGFzZXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlub2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFuZ0lkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lOiB0aGlzLmZpZWxkTmFtZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gcG9zdCBtZXNzYWdlIHRvIGVkaXRvcjonLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpbm5lciBIVE1MIHRvIGVsZW1lbnRcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGVkaXRlZENvbnRlbnRcbiAgICAgKiBAcmV0dXJuIHsqfVxuICAgICAqIEBtZW1iZXJvZiBEb3RFZGl0YWJsZVRleHRDb21wb25lbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIGlubmVySFRNTFRvRWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2FmZUh0bWwgPSB0aGlzLiNzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodGhpcy5jb250ZW50KTtcbiAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuI3Nhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuSFRNTCwgc2FmZUh0bWwpIHx8ICcnO1xuXG4gICAgICAgIHRoaXMuI3JlbmRlcmVyLnNldFByb3BlcnR5KGVsZW1lbnQsICdpbm5lckhUTUwnLCBjb250ZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgY29udGVudCBoYXMgY2hhbmdlZFxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZWRpdGVkQ29udGVudFxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICogQG1lbWJlcm9mIERvdEVkaXRhYmxlVGV4dENvbXBvbmVudFxuICAgICAqL1xuICAgIHByaXZhdGUgZGlkQ29udGVudENoYW5nZShlZGl0ZWRDb250ZW50OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudCAhPT0gZWRpdGVkQ29udGVudDtcbiAgICB9XG59XG4iLCJAaWYgKGlzSW5zaWRlRWRpdG9yKSB7XG4gICAgPGVkaXRvclxuICAgICAgICAjdGlueUVkaXRvclxuICAgICAgICBbaW5pdF09XCJpbml0XCJcbiAgICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb250ZW50XCJcbiAgICAgICAgKG9uTW91c2VEb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuICAgICAgICAob25Gb2N1c091dCk9XCJvbkZvY3VzT3V0KClcIiAvPlxufVxuIl19
@@ -1,32 +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 message when there is no component for a contentlet.
5
- *
6
- * @export
7
- * @class NoComponent
8
- */
9
- export class NoComponent {
10
- constructor() {
11
- /**
12
- * The data-testid attribute used for identifying the component during testing.
13
- */
14
- this.testId = 'no-component';
15
- }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: NoComponent, isStandalone: true, selector: "dotcms-no-component", inputs: { contentlet: "contentlet" }, host: { properties: { "attr.data-testid": "this.testId" } }, ngImport: i0, template: `
18
- No Component for {{ contentlet.contentType }}
19
- `, isInline: true, styles: [":host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NoComponent, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'dotcms-no-component', standalone: true, template: `
24
- No Component for {{ contentlet.contentType }}
25
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
26
- }], propDecorators: { contentlet: [{
27
- type: Input
28
- }], testId: [{
29
- type: HostBinding,
30
- args: ['attr.data-testid']
31
- }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tY29tcG9uZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL25vLWNvbXBvbmVudC9uby1jb21wb25lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJdkY7Ozs7O0dBS0c7QUFVSCxNQUFNLE9BQU8sV0FBVztJQVR4QjtRQWdCSTs7V0FFRztRQUM4QixXQUFNLEdBQUcsY0FBYyxDQUFDO0tBQzVEOzhHQVhZLFdBQVc7a0dBQVgsV0FBVyxrTEFOVjs7S0FFVDs7MkZBSVEsV0FBVztrQkFUdkIsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxZQUNOOztLQUVULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQU90QyxVQUFVO3NCQUFsQixLQUFLO2dCQUsyQixNQUFNO3NCQUF0QyxXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3RDTVNDb250ZW50bGV0IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZXNwb25zaWJsZSB0byBkaXNwbGF5IGEgbWVzc2FnZSB3aGVuIHRoZXJlIGlzIG5vIGNvbXBvbmVudCBmb3IgYSBjb250ZW50bGV0LlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBOb0NvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvdGNtcy1uby1jb21wb25lbnQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgTm8gQ29tcG9uZW50IGZvciB7eyBjb250ZW50bGV0LmNvbnRlbnRUeXBlIH19XG4gICAgYCxcbiAgICBzdHlsZVVybDogJy4vbm8tY29tcG9uZW50LmNvbXBvbmVudC5jc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5vQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29udGVudGxldCBvYmplY3QgY29udGFpbmluZyBjb250ZW50IGRhdGEuXG4gICAgICogVGhlIGNvbXBvbmVudCBkaXNwbGF5cyBhIG1lc3NhZ2UgYmFzZWQgb24gdGhlIGNvbnRlbnQgdHlwZSBvZiB0aGlzIGNvbnRlbnRsZXQuXG4gICAgICovXG4gICAgQElucHV0KCkgY29udGVudGxldCE6IERvdENNU0NvbnRlbnRsZXQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YS10ZXN0aWQgYXR0cmlidXRlIHVzZWQgZm9yIGlkZW50aWZ5aW5nIHRoZSBjb21wb25lbnQgZHVyaW5nIHRlc3RpbmcuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdGVzdGlkJykgdGVzdElkID0gJ25vLWNvbXBvbmVudCc7XG59XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2FuZ3VsYXIvc3JjL2xpYi9sYXlvdXQvY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9hbmd1bGFyL3NyYy9saWIvbGF5b3V0L2NvbnRhaW5lci9jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBR25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFVekU7Ozs7OztHQU1HO0FBU0gsTUFBTSxPQUFPLGtCQUFrQjtJQVIvQjtRQWlCcUIsdUJBQWtCLEdBQXVCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xFLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBR2xELGlCQUFZLEdBQUcsTUFBTSxDQUFxQixFQUFFLENBQUMsQ0FBQztRQUM5QyxrQkFBYSxHQUFHLE1BQU0sQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFDbEQsMEJBQXFCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxD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Y1BpcGUsIE5nQ29tcG9uZW50T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBjb21wdXRlZCxcbiAgICBpbmplY3QsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOb0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbm8tY29tcG9uZW50L25vLWNvbXBvbmVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudEVudGl0eSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBEb3RDTVNDb250YWluZXIsIERvdENNU0NvbnRlbnRsZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZG90Y21zLm1vZGVsJztcbmltcG9ydCB7IFBhZ2VDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RvdGNtcy1jb250ZXh0L3BhZ2UtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IGdldENvbnRhaW5lcnNEYXRhIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ29udGVudGxldENvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRlbnRsZXQvY29udGVudGxldC5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgRG90Q29udGFpbmVyIHtcbiAgICBhY2NlcHRUeXBlczogc3RyaW5nO1xuICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICBtYXhDb250ZW50bGV0czogbnVtYmVyO1xuICAgIHV1aWQ6IHN0cmluZztcbiAgICB2YXJpYW50SWQ/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