@acorex/platform 18.1.1 → 18.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-edit.component.mjs +1 -2
  2. package/esm2022/layout/builder/lib/builder/widget.types.mjs +60 -1
  3. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comment-list-view.component.mjs +208 -47
  4. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comment-lookup-popup.component.mjs +56 -0
  5. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.service.mjs +1 -1
  6. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.type.mjs +2 -0
  7. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.mjs +3 -3
  8. package/esm2022/themes/default/lib/layouts/entity-layouts/index.mjs +2 -1
  9. package/esm2022/widgets/lib/properties/editors.props.mjs +102 -308
  10. package/esm2022/widgets/lib/properties/general.props.mjs +4 -13
  11. package/esm2022/widgets/lib/widgets/actions/button/button-widget-designer.component.mjs +1 -2
  12. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-edit.component.mjs +9 -4
  13. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-view.component.mjs +4 -4
  14. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-designer.component.mjs +4 -4
  15. package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-edit.component.mjs +9 -16
  16. package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget.config.mjs +3 -3
  17. package/esm2022/widgets/lib/widgets/layout/block/block-widget-designer.component.mjs +3 -7
  18. package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.mjs +1 -3
  19. package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-view.component.mjs +1 -3
  20. package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.mjs +1 -5
  21. package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.mjs +1 -3
  22. package/esm2022/widgets/lib/widgets/layout/page/page-widget-view.component.mjs +1 -3
  23. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-designer.component.mjs +94 -19
  24. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.mjs +119 -8
  25. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-print.component.mjs +3 -2
  26. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-view.component.mjs +14 -22
  27. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget.config.mjs +16 -3
  28. package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-CnH3MjYz.mjs → acorex-platform-common-rich-text-widget-edit.component-Do3YcmKg.mjs} +1 -2
  29. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-Do3YcmKg.mjs.map +1 -0
  30. package/fesm2022/acorex-platform-common.mjs +1 -1
  31. package/fesm2022/acorex-platform-layout-builder.mjs +93 -35
  32. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  33. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs → acorex-platform-themes-default-entity-master-create-view.component-LyEomIA6.mjs} +3 -3
  34. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-LyEomIA6.mjs.map} +1 -1
  35. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CWXJxLS0.mjs → acorex-platform-themes-default-entity-master-list-view.component-CKRwvJTp.mjs} +3 -3
  36. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CWXJxLS0.mjs.map → acorex-platform-themes-default-entity-master-list-view.component-CKRwvJTp.mjs.map} +1 -1
  37. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs → acorex-platform-themes-default-entity-master-modify-view.component-CMRfspMB.mjs} +3 -3
  38. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-CMRfspMB.mjs.map} +1 -1
  39. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DhcKSyrX.mjs +457 -0
  40. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DhcKSyrX.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-themes-default.mjs +134 -11
  42. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  43. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-Oxpdaz9P.mjs → acorex-platform-widgets-button-widget-designer.component-B9bfVuC4.mjs} +1 -2
  44. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-B9bfVuC4.mjs.map +1 -0
  45. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-DAGbdSTk.mjs → acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs} +4 -4
  46. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs.map +1 -0
  47. package/fesm2022/acorex-platform-widgets.mjs +356 -404
  48. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  49. package/layout/builder/lib/builder/widget.types.d.ts +30 -1
  50. package/package.json +7 -7
  51. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comment-list-view.component.d.ts +37 -15
  52. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comment-lookup-popup.component.d.ts +10 -0
  53. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.service.d.ts +6 -9
  54. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.type.d.ts +70 -0
  55. package/themes/default/lib/layouts/entity-layouts/index.d.ts +1 -0
  56. package/widgets/lib/properties/editors.props.d.ts +3 -3
  57. package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +1 -0
  58. package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +1 -0
  59. package/widgets/lib/widgets/layout/repeater/repeater-widget-designer.component.d.ts +4 -3
  60. package/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.d.ts +10 -2
  61. package/widgets/lib/widgets/layout/repeater/repeater-widget-print.component.d.ts +1 -1
  62. package/widgets/lib/widgets/layout/repeater/repeater-widget-view.component.d.ts +2 -4
  63. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-CnH3MjYz.mjs.map +0 -1
  64. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B9lGgO_u.mjs +0 -357
  65. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B9lGgO_u.mjs.map +0 -1
  66. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-Oxpdaz9P.mjs.map +0 -1
  67. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-DAGbdSTk.mjs.map +0 -1
@@ -2,17 +2,24 @@ import { AXCommentModule } from '@acorex/components/comment';
2
2
  import { AXDecoratorModule } from '@acorex/components/decorators';
3
3
  import { AXWysiwygModule } from '@acorex/components/wysiwyg';
4
4
  import { CommonModule } from '@angular/common';
5
- import { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';
5
+ import { ChangeDetectionStrategy, Component, computed, inject, signal, viewChild } from '@angular/core';
6
6
  import { FormsModule } from '@angular/forms';
7
7
  import { ActivatedRoute, RouterModule } from '@angular/router';
8
8
  import { AXAvatarModule } from '@acorex/components/avatar';
9
9
  import { AXButtonModule } from '@acorex/components/button';
10
- import { AXDataSource } from '@acorex/components/common';
10
+ import { AXDialogService } from '@acorex/components/dialog';
11
+ import { AXDropdownModule } from '@acorex/components/dropdown';
12
+ import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
11
13
  import { AXFormModule } from '@acorex/components/form';
12
14
  import { AXImageModule } from '@acorex/components/image';
13
15
  import { AXLabelModule } from '@acorex/components/label';
16
+ import { AXLoadingModule } from '@acorex/components/loading';
17
+ import { AXPopupService } from '@acorex/components/popup';
14
18
  import { AXSelectBoxModule } from '@acorex/components/select-box';
15
19
  import { AXTextBoxModule } from '@acorex/components/text-box';
20
+ import { AXToastService } from '@acorex/components/toast';
21
+ import { AXPHtmlUtils } from '@acorex/platform/core';
22
+ import { AXPCommentLookupPopup } from './comment-lookup-popup.component';
16
23
  import { AXPCommentService } from './comments.service';
17
24
  import * as i0 from "@angular/core";
18
25
  import * as i1 from "@angular/forms";
@@ -23,84 +30,235 @@ import * as i5 from "@acorex/components/button";
23
30
  import * as i6 from "@acorex/components/avatar";
24
31
  import * as i7 from "@acorex/components/image";
25
32
  import * as i8 from "@acorex/components/form";
33
+ import * as i9 from "@acorex/components/loading";
34
+ import * as i10 from "@acorex/components/dropdown-button";
35
+ import * as i11 from "@acorex/components/dropdown";
26
36
  export class AXPCommentListViewComponent {
27
37
  constructor() {
38
+ this.commentContent = signal('');
39
+ this.hasCooldown = signal(false);
40
+ this.isSubmitting = signal(false);
41
+ this.isReplyingMode = signal(false);
42
+ this.isEditingMode = signal(false);
43
+ this.failedImageIds = signal([]);
44
+ this.activeReplyComment = signal(undefined);
45
+ this.activeEditComment = signal(undefined);
46
+ this.wysiwygEditor = viewChild.required('w');
28
47
  this.commentService = inject(AXPCommentService);
29
- this.activeRoute = inject(ActivatedRoute);
30
- this.vm = this.activeRoute.snapshot.data['vm'];
48
+ this.route = inject(ActivatedRoute);
49
+ this.popupService = inject(AXPopupService);
50
+ this.toastService = inject(AXToastService);
51
+ this.dialogService = inject(AXDialogService);
52
+ this.htmlUtils = inject(AXPHtmlUtils);
53
+ this.routeParams = this.route.snapshot;
54
+ this.payload = computed(() => ({
55
+ roomType: 'default',
56
+ entityId: this.routeParams.params?.['module'] + '.' + this.routeParams.params?.['entity'],
57
+ instanceId: this.routeParams.params?.['id'],
58
+ }));
31
59
  this.comments = signal([]);
32
- this.value = signal('');
33
60
  this.wysiwygOptions = signal({
34
- look: 'solid',
61
+ look: 'none',
35
62
  });
36
- this.avatarOptions = signal({
63
+ this.avatarConfig = signal({
37
64
  color: 'primary',
38
65
  look: 'rounded',
39
66
  type: 'solid', // 'image' | 'text' | 'icon' | 'default'
40
67
  });
41
- this.editorOption = new AXDataSource({
42
- pageSize: 10,
43
- key: 'id',
44
- load: () => {
45
- return new Promise((resolve) => {
46
- resolve({
47
- items: ['advance', 'basic'],
48
- total: 2,
49
- });
50
- });
51
- },
52
- byKey: () => {
53
- return new Promise((resolve) => {
54
- resolve('advance');
55
- });
56
- },
57
- });
58
- this.validateFn = (val) => {
68
+ this.validateContent = (content) => {
59
69
  let isValid = true;
60
- if (!val || val === '<p><br></p>') {
70
+ if (!content || content === '<p><br></p>') {
61
71
  isValid = false;
62
72
  }
63
73
  return {
64
74
  rule: 'callback',
65
75
  result: isValid,
66
76
  message: isValid ? '' : 'Please fill the content',
67
- value: val,
77
+ value: content,
68
78
  };
69
79
  };
70
80
  }
71
81
  ngOnInit() {
72
82
  this.loadComments();
73
83
  }
84
+ sanitizeHtml(htmlContent) {
85
+ return this.htmlUtils.getSafeHTMLfromHTML(htmlContent);
86
+ }
87
+ handleImageError(imageId) {
88
+ this.failedImageIds.update((ids) => [...ids, imageId]);
89
+ }
90
+ checkImageExists(imageId) {
91
+ return !this.failedImageIds().includes(imageId);
92
+ }
93
+ extractInitials(name) {
94
+ const words = name.split(' ');
95
+ const initials = words.map((word) => word.charAt(0).toUpperCase());
96
+ return initials.join('');
97
+ }
74
98
  async loadComments() {
99
+ const response = await this.commentService.get(this.payload());
100
+ this.comments.set(response.items);
101
+ }
102
+ async initiateEditComment(comment) {
103
+ this.isReplyingMode.set(false);
104
+ this.activeReplyComment.set(undefined);
105
+ this.isEditingMode.set(true);
106
+ this.activeEditComment.set(comment);
107
+ this.commentContent.set(comment.content);
108
+ document.getElementsByClassName('ql-editor')[0].innerHTML = comment.content;
109
+ this.wysiwygEditor().getHostElement().scrollIntoView({ behavior: 'smooth', block: 'start' });
110
+ }
111
+ async initiateReplyComment(comment) {
112
+ this.isEditingMode.set(false);
113
+ this.activeEditComment.set(undefined);
114
+ this.isReplyingMode.set(true);
115
+ this.activeReplyComment.set(comment);
116
+ this.wysiwygEditor().getHostElement().scrollIntoView({ behavior: 'smooth', block: 'start' });
117
+ }
118
+ async deleteComment(comment) {
119
+ const dialog = this.dialogService.open({
120
+ icon: 'fa-regular fa-warning',
121
+ content: 'Are you sure you want to delete this comment?',
122
+ title: 'Delete Comment',
123
+ type: 'danger',
124
+ orientation: 'horizontal',
125
+ buttons: [
126
+ {
127
+ text: 'Delete',
128
+ color: 'danger',
129
+ onClick: async (e) => {
130
+ e.handled = true;
131
+ e.source.text = 'Deleting...';
132
+ e.source.disabled = true;
133
+ e.source.loading = true;
134
+ try {
135
+ await this.commentService.delete({ id: comment.id });
136
+ this.removeCommentById(comment.id);
137
+ this.toastService.show({
138
+ content: 'Comment deleted successfully.',
139
+ color: 'success',
140
+ location: 'bottom-center',
141
+ closeButton: true,
142
+ timeOut: 3000,
143
+ timeOutProgress: true,
144
+ });
145
+ dialog.close();
146
+ }
147
+ catch (error) {
148
+ this.toastService.show({
149
+ content: typeof error === 'string' ? error : 'Failed to delete comment!',
150
+ color: 'danger',
151
+ location: 'bottom-center',
152
+ closeButton: true,
153
+ timeOut: 3000,
154
+ timeOutProgress: true,
155
+ });
156
+ }
157
+ },
158
+ },
159
+ {
160
+ text: 'Cancel',
161
+ color: 'ghost',
162
+ autofocus: true,
163
+ onClick: (e) => {
164
+ dialog.close();
165
+ },
166
+ },
167
+ ],
168
+ closeButton: false,
169
+ });
170
+ }
171
+ resetReplyEditState() {
172
+ this.isEditingMode.set(false);
173
+ this.activeEditComment.set(undefined);
174
+ this.isReplyingMode.set(false);
175
+ this.activeReplyComment.set(undefined);
176
+ }
177
+ async toggleLikeComment(comment) {
178
+ this.updateLikeStatus(comment.id);
75
179
  const payload = {
76
- roomType: 'default',
77
- entityId: 'inspection.vehicle',
78
- instanceId: 'a96d2a63-a304-0da6-1231-3a152a99efd4',
180
+ messageId: comment.id,
181
+ type: 'like',
79
182
  };
80
- const data = await this.commentService.getComments(payload);
81
- this.comments.set(data.items);
183
+ try {
184
+ await this.commentService.like(payload);
185
+ }
186
+ catch (error) {
187
+ this.updateLikeStatus(comment.id);
188
+ }
82
189
  }
83
- replyHandler() {
84
- console.log('click');
190
+ updateLikeStatus(commentId) {
191
+ this.comments.update((commentsList) => {
192
+ return commentsList.map((comment) => comment.id === commentId
193
+ ? {
194
+ ...comment,
195
+ isLiked: !comment.isLiked,
196
+ reactionsCount: comment.isLiked ? --comment.reactionsCount : ++comment.reactionsCount,
197
+ }
198
+ : comment);
199
+ });
85
200
  }
86
- valueChange(e) {
87
- console.log(e);
201
+ removeCommentById(commentId) {
202
+ this.comments.update((commentsList) => commentsList.filter((comment) => comment.id !== commentId));
88
203
  }
89
- submitComment() {
204
+ async submitPrivateComment() {
205
+ if (!this.validateContent(this.commentContent()).result) {
206
+ return;
207
+ }
208
+ const popupConfig = {
209
+ header: true,
210
+ size: 'md',
211
+ draggable: true,
212
+ hasBackdrop: true,
213
+ closeButton: true,
214
+ closeOnBackdropClick: false,
215
+ };
216
+ const popup = await this.popupService.open(AXPCommentLookupPopup, popupConfig);
90
217
  const payload = {
91
- content: 'This is Content',
218
+ ...this.payload(),
219
+ content: this.commentContent(),
220
+ contentType: 'text',
221
+ isPrivate: false,
222
+ replyId: this.activeReplyComment()?.id,
223
+ members: [popup.data?.data?.lookup],
224
+ };
225
+ this.isSubmitting.set(true);
226
+ this.hasCooldown.set(true);
227
+ await this.commentService.post(payload);
228
+ const response = await this.commentService.get(this.payload());
229
+ this.comments.set(response.items);
230
+ this.commentContent.set('');
231
+ document.getElementsByClassName('ql-editor')[0].innerHTML = '';
232
+ this.isSubmitting.set(false);
233
+ setTimeout(() => {
234
+ this.hasCooldown.set(false);
235
+ }, 1000);
236
+ }
237
+ async submitComment() {
238
+ if (!this.validateContent(this.commentContent()).result) {
239
+ return;
240
+ }
241
+ const payload = {
242
+ ...this.payload(),
243
+ content: this.commentContent(),
92
244
  contentType: 'text',
93
- roomType: 'default',
94
- entityId: 'inspection.vehicle',
95
- instanceId: 'a96d2a63-a304-0da6-1231-3a152a99efd4',
96
245
  isPrivate: false,
97
- isArchived: true,
98
- members: [],
246
+ replyId: this.activeReplyComment()?.id,
99
247
  };
100
- this.commentService.postComment(payload);
248
+ this.isSubmitting.set(true);
249
+ this.hasCooldown.set(true);
250
+ await this.commentService.post(payload);
251
+ const response = await this.commentService.get(this.payload());
252
+ this.comments.set(response.items);
253
+ this.commentContent.set('');
254
+ document.getElementsByClassName('ql-editor')[0].innerHTML = '';
255
+ this.isSubmitting.set(false);
256
+ setTimeout(() => {
257
+ this.hasCooldown.set(false);
258
+ }, 1000);
101
259
  }
102
260
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommentListViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPCommentListViewComponent, isStandalone: true, selector: "axp-comment-list-view", ngImport: i0, template: "<div class=\"ax-mt-2\">\n <ax-comment-view class=\"ax-bg-surface\">\n <ax-comment-item>\n <ax-avatar [color]=\"avatarOptions().color\" [look]=\"avatarOptions().look\">\n <ax-image src=\"https://i.pravatar.cc/300\"></ax-image>\n </ax-avatar>\n <ax-title>Matin</ax-title>\n <ax-content>Lorem ipsum dolor sit amet consectetur adipisicing elit. Itaque, mollitia.</ax-content>\n <ax-comment-like [liked]=\"false\">2</ax-comment-like>\n <ax-comment-reply>4</ax-comment-reply>\n <ax-comment-reply-text (click)=\"replyHandler()\"></ax-comment-reply-text>\n\n <ax-comment-item>\n <ax-avatar [color]=\"avatarOptions().color\" [look]=\"avatarOptions().look\">\n <ax-image src=\"https://i.pravatar.cc/300\"></ax-image>\n </ax-avatar>\n <ax-title>Meysa</ax-title>\n <ax-content>Lorem ipsum dolor sit amet consectetur adipisicing elit. Itaque, mollitia.</ax-content>\n <ax-comment-like [liked]=\"true\">4</ax-comment-like>\n <ax-comment-reply>3</ax-comment-reply>\n <ax-comment-reply-text (click)=\"replyHandler()\"></ax-comment-reply-text>\n </ax-comment-item>\n </ax-comment-item>\n </ax-comment-view>\n\n <ax-form>\n <ax-form-field>\n <ax-wysiwyg-container [look]=\"wysiwygOptions().look\" (ngModelChange)=\"valueChange($event)\" [(ngModel)]=\"value\">\n <ax-wysiwyg-view class=\"ax-min-h-28\"></ax-wysiwyg-view>\n <ax-wysiwyg-toolbar>\n <ax-wysiwyg-history></ax-wysiwyg-history>\n <ax-wysiwyg-font-style></ax-wysiwyg-font-style>\n <ax-wysiwyg-colors></ax-wysiwyg-colors>\n <ax-wysiwyg-list></ax-wysiwyg-list>\n <ax-wysiwyg-alignment></ax-wysiwyg-alignment>\n <ax-wysiwyg-insert></ax-wysiwyg-insert>\n <ax-suffix>\n <ax-button type=\"submit\" color=\"primary\" text=\"Send\" (onClick)=\"submitComment()\"></ax-button\n ></ax-suffix>\n </ax-wysiwyg-toolbar>\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n </ax-wysiwyg-container>\n </ax-form-field>\n </ax-form>\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXCommentModule }, { kind: "component", type: i3.AXCommentViewComponent, selector: "ax-comment-view" }, { kind: "component", type: i3.AxCommentItemComponent, selector: "ax-comment-item" }, { kind: "component", type: i3.AXCommentLikeComponent, selector: "ax-comment-like", inputs: ["liked"] }, { kind: "component", type: i3.AXCommentReplyComponent, selector: "ax-comment-reply" }, { kind: "component", type: i3.AXCommentReplyTextComponent, selector: "ax-comment-reply-text" }, { kind: "ngmodule", type: AXWysiwygModule }, { kind: "component", type: i4.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "placeHolder"], outputs: ["onValueChanged"] }, { kind: "component", type: i4.AXWysiwygViewComponent, selector: "ax-wysiwyg-view", inputs: ["class"] }, { kind: "component", type: i4.AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar" }, { kind: "component", type: i4.AXWysiwygAlignmentComponent, selector: "ax-wysiwyg-alignment" }, { kind: "component", type: i4.AXWysiwygColorsComponent, selector: "ax-wysiwyg-colors" }, { kind: "component", type: i4.AXWysiwygFontStyleComponent, selector: "ax-wysiwyg-font-style" }, { kind: "component", type: i4.AXWysiwygHistoryComponent, selector: "ax-wysiwyg-history" }, { kind: "component", type: i4.AXWysiwygInsertComponent, selector: "ax-wysiwyg-insert" }, { kind: "component", type: i4.AXWysiwygListComponent, selector: "ax-wysiwyg-list" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "component", type: i6.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"], outputs: ["sizeChange"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i7.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i8.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i8.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "directive", type: i8.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
261
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPCommentListViewComponent, isStandalone: true, selector: "axp-comment-list-view", viewQueries: [{ propertyName: "wysiwygEditor", first: true, predicate: ["w"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"ax-mt-2\">\n <ax-comment-view class=\"ax-bg-surface\">\n @for(comment of comments(); track comment.id){\n <ax-comment-item>\n <ax-avatar [color]=\"avatarConfig().color\" [look]=\"avatarConfig().look\">\n @if(checkImageExists(comment.id) && comment.user.picture){\n <ax-image (onError)=\"handleImageError(comment.id)\" [src]=\"comment.user.picture\">\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"ax-text-base ax-overflow-hidden\">{{\n extractInitials(comment.user.firstName + ' ' + comment.user.lastName)\n }}</span>\n </ax-text>\n }\n </ax-avatar>\n <ax-title>{{ comment.user.firstName + ' ' + comment.user.lastName }}</ax-title>\n <ax-comment-menu-options>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"secondary\">\n <ax-icon icon=\"ax-icon ax-icon-solid ax-icon-more-horizontal\"></ax-icon>\n </ax-button>\n\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Edit\" color=\"secondary\" (click)=\"initiateEditComment(comment)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n\n <ax-button-item text=\"Delete\" color=\"danger\" (click)=\"deleteComment(comment)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-comment-menu-options>\n <ax-content [innerHTML]=\"sanitizeHtml(comment.content)\"></ax-content>\n <ax-comment-like (click)=\"toggleLikeComment(comment)\" [liked]=\"comment.isLiked\">\n {{ comment.reactionsCount }}\n </ax-comment-like>\n <ax-comment-reply-text (click)=\"initiateReplyComment(comment)\"></ax-comment-reply-text>\n @for(reply of comment.replies; track reply.id){\n <ax-comment-item>\n @if(checkImageExists(reply.id) && reply?.user?.picture){\n <ax-image (onError)=\"handleImageError(reply.id)\" [src]=\"reply?.user?.picture\">\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"ax-text-base ax-overflow-hidden\">{{\n extractInitials(reply?.user?.firstName + ' ' + reply?.user?.lastName)\n }}</span>\n </ax-text>\n }\n <ax-title>{{ (reply?.user?.firstName ?? '') + ' ' + (reply?.user?.lastName ?? '') }}</ax-title>\n <ax-content [innerHTML]=\"sanitizeHtml(reply.content)\"></ax-content>\n <ax-comment-like (click)=\"toggleLikeComment(reply)\" [liked]=\"reply.isLiked\">\n {{ reply.reactionsCount }}\n </ax-comment-like>\n <ax-comment-reply-text (click)=\"initiateReplyComment(reply)\"></ax-comment-reply-text>\n </ax-comment-item>\n }\n </ax-comment-item>\n } @empty{ }\n </ax-comment-view>\n\n <ax-form>\n <ax-form-field>\n <div class=\"ax-border ax-overflow-hidden ax-rounded-lg\">\n @if(isReplyingMode() || isEditingMode()){\n <div\n class=\"ax-flex ax-justify-between ax-border-b ax-bg-on-surface ax-px-6 ax-py-4 ax-w-full ax-items-center ax-overflow-hidden ax-text-sm ax-leading-none\"\n >\n <div class=\"ax-flex ax-justify-start ax-align-middle\">\n <i\n [class]=\"isReplyingMode() ? 'fa-reply' : 'fa-pen'\"\n class=\"fa-solid ax-text-primary-500 ax-text-2xl ax-me-4\"\n ></i>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-justify-between ax-align-middle\">\n <p class=\"ax-text-primary-500\">\n {{ isReplyingMode() ? 'Reply to ' : 'Edit Message' }}\n <span class=\"ax-font-bold\">\n {{\n isReplyingMode()\n ? activeReplyComment()?.user?.firstName + ' ' + activeReplyComment()?.user?.lastName\n : ''\n }}\n </span>\n </p>\n <div\n class=\"ax-truncate\"\n [innerHTML]=\"\n isReplyingMode()\n ? sanitizeHtml(activeReplyComment()?.content ?? '')\n : sanitizeHtml(activeEditComment()?.content ?? '')\n \"\n ></div>\n </div>\n </div>\n <div><i (click)=\"resetReplyEditState()\" class=\"fa-solid ax-text-2xl fa-xmark ax-cursor-pointer\"></i></div>\n </div>\n }\n <ax-wysiwyg-container #w [look]=\"wysiwygOptions().look\" [(ngModel)]=\"commentContent\">\n <ax-wysiwyg-view class=\"ax-min-h-28\"></ax-wysiwyg-view>\n <ax-wysiwyg-toolbar>\n <ax-wysiwyg-history></ax-wysiwyg-history>\n <ax-wysiwyg-font-style></ax-wysiwyg-font-style>\n <ax-wysiwyg-colors></ax-wysiwyg-colors>\n <ax-wysiwyg-list></ax-wysiwyg-list>\n <ax-wysiwyg-alignment></ax-wysiwyg-alignment>\n <ax-suffix>\n <ax-dropdown-button\n [disabled]=\"hasCooldown()\"\n type=\"submit\"\n color=\"primary\"\n mode=\"split\"\n text=\"Send\"\n (onClick)=\"submitComment()\"\n >\n @if(isSubmitting()){ <ax-loading></ax-loading> }\n <ax-button-item-list>\n <ax-button-item\n (click)=\"submitPrivateComment()\"\n text=\"Send Private ...\"\n name=\"private\"\n data=\"private\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-regular fa-user-secret\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n </ax-suffix>\n </ax-wysiwyg-toolbar>\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateContent }\"></ax-validation-rule>\n </ax-wysiwyg-container>\n </div>\n </ax-form-field>\n </ax-form>\n</div>\n", styles: ["ax-wysiwyg-container .ax-error-message{padding-left:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXCommentModule }, { kind: "component", type: i3.AXCommentViewComponent, selector: "ax-comment-view" }, { kind: "component", type: i3.AxCommentItemComponent, selector: "ax-comment-item" }, { kind: "component", type: i3.AXCommentLikeComponent, selector: "ax-comment-like", inputs: ["liked"] }, { kind: "component", type: i3.AXMenuOptionsComponent, selector: "ax-comment-menu-options" }, { kind: "component", type: i3.AXCommentReplyTextComponent, selector: "ax-comment-reply-text" }, { kind: "ngmodule", type: AXWysiwygModule }, { kind: "component", type: i4.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "placeHolder"], outputs: ["onValueChanged"] }, { kind: "component", type: i4.AXWysiwygViewComponent, selector: "ax-wysiwyg-view", inputs: ["class"] }, { kind: "component", type: i4.AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar" }, { kind: "component", type: i4.AXWysiwygAlignmentComponent, selector: "ax-wysiwyg-alignment" }, { kind: "component", type: i4.AXWysiwygColorsComponent, selector: "ax-wysiwyg-colors" }, { kind: "component", type: i4.AXWysiwygFontStyleComponent, selector: "ax-wysiwyg-font-style" }, { kind: "component", type: i4.AXWysiwygHistoryComponent, selector: "ax-wysiwyg-history" }, { kind: "component", type: i4.AXWysiwygListComponent, selector: "ax-wysiwyg-list" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i5.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i5.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "component", type: i6.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"], outputs: ["sizeChange"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i7.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i8.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i8.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "directive", type: i8.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i9.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i10.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i11.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
262
  }
105
263
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommentListViewComponent, decorators: [{
106
264
  type: Component,
@@ -118,6 +276,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
118
276
  AXImageModule,
119
277
  AXSelectBoxModule,
120
278
  AXFormModule,
121
- ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-mt-2\">\n <ax-comment-view class=\"ax-bg-surface\">\n <ax-comment-item>\n <ax-avatar [color]=\"avatarOptions().color\" [look]=\"avatarOptions().look\">\n <ax-image src=\"https://i.pravatar.cc/300\"></ax-image>\n </ax-avatar>\n <ax-title>Matin</ax-title>\n <ax-content>Lorem ipsum dolor sit amet consectetur adipisicing elit. Itaque, mollitia.</ax-content>\n <ax-comment-like [liked]=\"false\">2</ax-comment-like>\n <ax-comment-reply>4</ax-comment-reply>\n <ax-comment-reply-text (click)=\"replyHandler()\"></ax-comment-reply-text>\n\n <ax-comment-item>\n <ax-avatar [color]=\"avatarOptions().color\" [look]=\"avatarOptions().look\">\n <ax-image src=\"https://i.pravatar.cc/300\"></ax-image>\n </ax-avatar>\n <ax-title>Meysa</ax-title>\n <ax-content>Lorem ipsum dolor sit amet consectetur adipisicing elit. Itaque, mollitia.</ax-content>\n <ax-comment-like [liked]=\"true\">4</ax-comment-like>\n <ax-comment-reply>3</ax-comment-reply>\n <ax-comment-reply-text (click)=\"replyHandler()\"></ax-comment-reply-text>\n </ax-comment-item>\n </ax-comment-item>\n </ax-comment-view>\n\n <ax-form>\n <ax-form-field>\n <ax-wysiwyg-container [look]=\"wysiwygOptions().look\" (ngModelChange)=\"valueChange($event)\" [(ngModel)]=\"value\">\n <ax-wysiwyg-view class=\"ax-min-h-28\"></ax-wysiwyg-view>\n <ax-wysiwyg-toolbar>\n <ax-wysiwyg-history></ax-wysiwyg-history>\n <ax-wysiwyg-font-style></ax-wysiwyg-font-style>\n <ax-wysiwyg-colors></ax-wysiwyg-colors>\n <ax-wysiwyg-list></ax-wysiwyg-list>\n <ax-wysiwyg-alignment></ax-wysiwyg-alignment>\n <ax-wysiwyg-insert></ax-wysiwyg-insert>\n <ax-suffix>\n <ax-button type=\"submit\" color=\"primary\" text=\"Send\" (onClick)=\"submitComment()\"></ax-button\n ></ax-suffix>\n </ax-wysiwyg-toolbar>\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n </ax-wysiwyg-container>\n </ax-form-field>\n </ax-form>\n</div>\n" }]
279
+ AXLoadingModule,
280
+ AXDropdownButtonModule,
281
+ AXDropdownModule,
282
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-mt-2\">\n <ax-comment-view class=\"ax-bg-surface\">\n @for(comment of comments(); track comment.id){\n <ax-comment-item>\n <ax-avatar [color]=\"avatarConfig().color\" [look]=\"avatarConfig().look\">\n @if(checkImageExists(comment.id) && comment.user.picture){\n <ax-image (onError)=\"handleImageError(comment.id)\" [src]=\"comment.user.picture\">\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"ax-text-base ax-overflow-hidden\">{{\n extractInitials(comment.user.firstName + ' ' + comment.user.lastName)\n }}</span>\n </ax-text>\n }\n </ax-avatar>\n <ax-title>{{ comment.user.firstName + ' ' + comment.user.lastName }}</ax-title>\n <ax-comment-menu-options>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"secondary\">\n <ax-icon icon=\"ax-icon ax-icon-solid ax-icon-more-horizontal\"></ax-icon>\n </ax-button>\n\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Edit\" color=\"secondary\" (click)=\"initiateEditComment(comment)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n\n <ax-button-item text=\"Delete\" color=\"danger\" (click)=\"deleteComment(comment)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-comment-menu-options>\n <ax-content [innerHTML]=\"sanitizeHtml(comment.content)\"></ax-content>\n <ax-comment-like (click)=\"toggleLikeComment(comment)\" [liked]=\"comment.isLiked\">\n {{ comment.reactionsCount }}\n </ax-comment-like>\n <ax-comment-reply-text (click)=\"initiateReplyComment(comment)\"></ax-comment-reply-text>\n @for(reply of comment.replies; track reply.id){\n <ax-comment-item>\n @if(checkImageExists(reply.id) && reply?.user?.picture){\n <ax-image (onError)=\"handleImageError(reply.id)\" [src]=\"reply?.user?.picture\">\n <ax-loading></ax-loading>\n </ax-image>\n }@else{\n <ax-text>\n <span class=\"ax-text-base ax-overflow-hidden\">{{\n extractInitials(reply?.user?.firstName + ' ' + reply?.user?.lastName)\n }}</span>\n </ax-text>\n }\n <ax-title>{{ (reply?.user?.firstName ?? '') + ' ' + (reply?.user?.lastName ?? '') }}</ax-title>\n <ax-content [innerHTML]=\"sanitizeHtml(reply.content)\"></ax-content>\n <ax-comment-like (click)=\"toggleLikeComment(reply)\" [liked]=\"reply.isLiked\">\n {{ reply.reactionsCount }}\n </ax-comment-like>\n <ax-comment-reply-text (click)=\"initiateReplyComment(reply)\"></ax-comment-reply-text>\n </ax-comment-item>\n }\n </ax-comment-item>\n } @empty{ }\n </ax-comment-view>\n\n <ax-form>\n <ax-form-field>\n <div class=\"ax-border ax-overflow-hidden ax-rounded-lg\">\n @if(isReplyingMode() || isEditingMode()){\n <div\n class=\"ax-flex ax-justify-between ax-border-b ax-bg-on-surface ax-px-6 ax-py-4 ax-w-full ax-items-center ax-overflow-hidden ax-text-sm ax-leading-none\"\n >\n <div class=\"ax-flex ax-justify-start ax-align-middle\">\n <i\n [class]=\"isReplyingMode() ? 'fa-reply' : 'fa-pen'\"\n class=\"fa-solid ax-text-primary-500 ax-text-2xl ax-me-4\"\n ></i>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-justify-between ax-align-middle\">\n <p class=\"ax-text-primary-500\">\n {{ isReplyingMode() ? 'Reply to ' : 'Edit Message' }}\n <span class=\"ax-font-bold\">\n {{\n isReplyingMode()\n ? activeReplyComment()?.user?.firstName + ' ' + activeReplyComment()?.user?.lastName\n : ''\n }}\n </span>\n </p>\n <div\n class=\"ax-truncate\"\n [innerHTML]=\"\n isReplyingMode()\n ? sanitizeHtml(activeReplyComment()?.content ?? '')\n : sanitizeHtml(activeEditComment()?.content ?? '')\n \"\n ></div>\n </div>\n </div>\n <div><i (click)=\"resetReplyEditState()\" class=\"fa-solid ax-text-2xl fa-xmark ax-cursor-pointer\"></i></div>\n </div>\n }\n <ax-wysiwyg-container #w [look]=\"wysiwygOptions().look\" [(ngModel)]=\"commentContent\">\n <ax-wysiwyg-view class=\"ax-min-h-28\"></ax-wysiwyg-view>\n <ax-wysiwyg-toolbar>\n <ax-wysiwyg-history></ax-wysiwyg-history>\n <ax-wysiwyg-font-style></ax-wysiwyg-font-style>\n <ax-wysiwyg-colors></ax-wysiwyg-colors>\n <ax-wysiwyg-list></ax-wysiwyg-list>\n <ax-wysiwyg-alignment></ax-wysiwyg-alignment>\n <ax-suffix>\n <ax-dropdown-button\n [disabled]=\"hasCooldown()\"\n type=\"submit\"\n color=\"primary\"\n mode=\"split\"\n text=\"Send\"\n (onClick)=\"submitComment()\"\n >\n @if(isSubmitting()){ <ax-loading></ax-loading> }\n <ax-button-item-list>\n <ax-button-item\n (click)=\"submitPrivateComment()\"\n text=\"Send Private ...\"\n name=\"private\"\n data=\"private\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-regular fa-user-secret\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n </ax-suffix>\n </ax-wysiwyg-toolbar>\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateContent }\"></ax-validation-rule>\n </ax-wysiwyg-container>\n </div>\n </ax-form-field>\n </ax-form>\n</div>\n", styles: ["ax-wysiwyg-container .ax-error-message{padding-left:.5rem}\n"] }]
122
283
  }] });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1saXN0LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1zaW5nbGUtdmlldy9jb21tZW50cy9jb21tZW50LWxpc3Qtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0L3NyYy9saWIvbGF5b3V0cy9lbnRpdHktbGF5b3V0cy9lbnRpdHktbWFzdGVyLXNpbmdsZS12aWV3L2NvbW1lbnRzL2NvbW1lbnQtbGlzdC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sMkJBQTJCLENBQUM7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QUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBTTtRQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFnQkQsYUFBYTtRQUNYLE1BQU0sT0FBTyxHQUFHO1lBQ2QsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsTUFBTTtZQUNuQixRQUFRLEVBQUUsU0FBUztZQUNuQixRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLFVBQVUsRUFBRSxzQ0FBc0M7WUFDbEQsU0FBUyxFQUFFLEtBQUs7WUFDaEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBRUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQzs4R0E3RlUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsaUZDdkN4QyxtbkVBNkNBLDJDRHZCSSxXQUFXLDhWQUNYLFlBQVksOEJBQ1osWUFBWSw4QkFDWixpQkFBaUIsc1BBQ2pCLGVBQWUsdWVBQ2YsZUFBZSwrNUJBQ2YsY0FBYyx1WkFDZCxlQUFlLDhCQUNmLGFBQWEsOEJBQ2IsY0FBYyxvS0FDZCxhQUFhLGlNQUNiLGlCQUFpQiw4QkFDakIsWUFBWTs7MkZBS0gsMkJBQTJCO2tCQXJCdkMsU0FBUzsrQkFFRSx1QkFBdUIsV0FDeEI7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsWUFBWTtxQkFDYixjQUNXLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbWVudE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tZW50JztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhXeXNpd3lnTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3d5c2l3eWcnO1xuaW1wb3J0IHsgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQVhBdmF0YXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYXZhdGFyJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYU3R5bGVMb29rVHlwZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhJbWFnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9pbWFnZSc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYU2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlbGVjdC1ib3gnO1xuaW1wb3J0IHsgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcbmltcG9ydCB7IEFYUENvbW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9jb21tZW50cy5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vY29tbWVudC1saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzZWxlY3RvcjogJ2F4cC1jb21tZW50LWxpc3QtdmlldycsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYQ29tbWVudE1vZHVsZSxcbiAgICBBWFd5c2l3eWdNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhUZXh0Qm94TW9kdWxlLFxuICAgIEFYTGFiZWxNb2R1bGUsXG4gICAgQVhBdmF0YXJNb2R1bGUsXG4gICAgQVhJbWFnZU1vZHVsZSxcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBDb21tZW50TGlzdFZpZXdDb21wb25lbnQge1xuICBjb21tZW50U2VydmljZSA9IGluamVjdChBWFBDb21tZW50U2VydmljZSk7XG5cbiAgcHJpdmF0ZSBhY3RpdmVSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSB2bSA9IHRoaXMuYWN0aXZlUm91dGUuc25hcHNob3QuZGF0YVsndm0nXSBhcyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw7XG5cbiAgcHJvdGVjdGVkIGNvbW1lbnRzID0gc2lnbmFsPGFueVtdPihbXSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkQ29tbWVudHMoKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRDb21tZW50cygpIHtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgcm9vbVR5cGU6ICdkZWZhdWx0JyxcbiAgICAgIGVudGl0eUlkOiAnaW5zcGVjdGlvbi52ZWhpY2xlJyxcbiAgICAgIGluc3RhbmNlSWQ6ICdhOTZkMmE2My1hMzA0LTBkYTYtMTIzMS0zYTE1MmE5OWVmZDQnLFxuICAgIH07XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UuZ2V0Q29tbWVudHMocGF5bG9hZCk7XG4gICAgdGhpcy5jb21tZW50cy5zZXQoZGF0YS5pdGVtcyk7XG4gIH1cblxuICB2YWx1ZSA9IHNpZ25hbCgnJyk7XG5cbiAgcHJvdGVjdGVkIHd5c2l3eWdPcHRpb25zID0gc2lnbmFsPHtcbiAgICBsb29rOiBBWFN0eWxlTG9va1R5cGU7XG4gIH0+KHtcbiAgICBsb29rOiAnc29saWQnLFxuICB9KTtcblxuICBwcm90ZWN0ZWQgYXZhdGFyT3B0aW9ucyA9IHNpZ25hbDx7XG4gICAgY29sb3I6IHN0cmluZztcbiAgICBsb29rOiAnc2hhcnAnIHwgJ3NvZnQnIHwgJ3JvdW5kZWQnO1xuICAgIHR5cGU6IHN0cmluZztcbiAgfT4oe1xuICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgbG9vazogJ3JvdW5kZWQnLFxuICAgIHR5cGU6ICdzb2xpZCcsIC8vICdpbWFnZScgfCAndGV4dCcgfCAnaWNvbicgfCAnZGVmYXVsdCdcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGVkaXRvck9wdGlvbiA9IG5ldyBBWERhdGFTb3VyY2U8c3RyaW5nPih7XG4gICAgcGFnZVNpemU6IDEwLFxuICAgIGtleTogJ2lkJyxcbiAgICBsb2FkOiAoKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgaXRlbXM6IFsnYWR2YW5jZScsICdiYXNpYyddLFxuICAgICAgICAgIHRvdGFsOiAyLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgYnlLZXk6ICgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICByZXNvbHZlKCdhZHZhbmNlJyk7XG4gICAgICB9KTtcbiAgICB9LFxuICB9KTtcblxuICByZXBseUhhbmRsZXIoKSB7XG4gICAgY29uc29sZS5sb2coJ2NsaWNrJyk7XG4gIH1cblxuICB2YWx1ZUNoYW5nZShlOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZyhlKTtcbiAgfVxuXG4gIHZhbGlkYXRlRm4gPSAodmFsOiBzdHJpbmcpID0+IHtcbiAgICBsZXQgaXNWYWxpZCA9IHRydWU7XG5cbiAgICBpZiAoIXZhbCB8fCB2YWwgPT09ICc8cD48YnI+PC9wPicpIHtcbiAgICAgIGlzVmFsaWQgPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHJ1bGU6ICdjYWxsYmFjaycsXG4gICAgICByZXN1bHQ6IGlzVmFsaWQsXG4gICAgICBtZXNzYWdlOiBpc1ZhbGlkID8gJycgOiAnUGxlYXNlIGZpbGwgdGhlIGNvbnRlbnQnLFxuICAgICAgdmFsdWU6IHZhbCxcbiAgICB9O1xuICB9O1xuXG4gIHN1Ym1pdENvbW1lbnQoKSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIGNvbnRlbnQ6ICdUaGlzIGlzIENvbnRlbnQnLFxuICAgICAgY29udGVudFR5cGU6ICd0ZXh0JyxcbiAgICAgIHJvb21UeXBlOiAnZGVmYXVsdCcsXG4gICAgICBlbnRpdHlJZDogJ2luc3BlY3Rpb24udmVoaWNsZScsXG4gICAgICBpbnN0YW5jZUlkOiAnYTk2ZDJhNjMtYTMwNC0wZGE2LTEyMzEtM2ExNTJhOTllZmQ0JyxcbiAgICAgIGlzUHJpdmF0ZTogZmFsc2UsXG4gICAgICBpc0FyY2hpdmVkOiB0cnVlLFxuICAgICAgbWVtYmVyczogW10sXG4gICAgfTtcblxuICAgIHRoaXMuY29tbWVudFNlcnZpY2UucG9zdENvbW1lbnQocGF5bG9hZCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1tdC0yXCI+XG4gIDxheC1jb21tZW50LXZpZXcgY2xhc3M9XCJheC1iZy1zdXJmYWNlXCI+XG4gICAgPGF4LWNvbW1lbnQtaXRlbT5cbiAgICAgIDxheC1hdmF0YXIgW2NvbG9yXT1cImF2YXRhck9wdGlvbnMoKS5jb2xvclwiIFtsb29rXT1cImF2YXRhck9wdGlvbnMoKS5sb29rXCI+XG4gICAgICAgIDxheC1pbWFnZSBzcmM9XCJodHRwczovL2kucHJhdmF0YXIuY2MvMzAwXCI+PC9heC1pbWFnZT5cbiAgICAgIDwvYXgtYXZhdGFyPlxuICAgICAgPGF4LXRpdGxlPk1hdGluPC9heC10aXRsZT5cbiAgICAgIDxheC1jb250ZW50PkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0IGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIEl0YXF1ZSwgbW9sbGl0aWEuPC9heC1jb250ZW50PlxuICAgICAgPGF4LWNvbW1lbnQtbGlrZSBbbGlrZWRdPVwiZmFsc2VcIj4yPC9heC1jb21tZW50LWxpa2U+XG4gICAgICA8YXgtY29tbWVudC1yZXBseT40PC9heC1jb21tZW50LXJlcGx5PlxuICAgICAgPGF4LWNvbW1lbnQtcmVwbHktdGV4dCAoY2xpY2spPVwicmVwbHlIYW5kbGVyKClcIj48L2F4LWNvbW1lbnQtcmVwbHktdGV4dD5cblxuICAgICAgPGF4LWNvbW1lbnQtaXRlbT5cbiAgICAgICAgPGF4LWF2YXRhciBbY29sb3JdPVwiYXZhdGFyT3B0aW9ucygpLmNvbG9yXCIgW2xvb2tdPVwiYXZhdGFyT3B0aW9ucygpLmxvb2tcIj5cbiAgICAgICAgICA8YXgtaW1hZ2Ugc3JjPVwiaHR0cHM6Ly9pLnByYXZhdGFyLmNjLzMwMFwiPjwvYXgtaW1hZ2U+XG4gICAgICAgIDwvYXgtYXZhdGFyPlxuICAgICAgICA8YXgtdGl0bGU+TWV5c2E8L2F4LXRpdGxlPlxuICAgICAgICA8YXgtY29udGVudD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBJdGFxdWUsIG1vbGxpdGlhLjwvYXgtY29udGVudD5cbiAgICAgICAgPGF4LWNvbW1lbnQtbGlrZSBbbGlrZWRdPVwidHJ1ZVwiPjQ8L2F4LWNvbW1lbnQtbGlrZT5cbiAgICAgICAgPGF4LWNvbW1lbnQtcmVwbHk+MzwvYXgtY29tbWVudC1yZXBseT5cbiAgICAgICAgPGF4LWNvbW1lbnQtcmVwbHktdGV4dCAoY2xpY2spPVwicmVwbHlIYW5kbGVyKClcIj48L2F4LWNvbW1lbnQtcmVwbHktdGV4dD5cbiAgICAgIDwvYXgtY29tbWVudC1pdGVtPlxuICAgIDwvYXgtY29tbWVudC1pdGVtPlxuICA8L2F4LWNvbW1lbnQtdmlldz5cblxuICA8YXgtZm9ybT5cbiAgICA8YXgtZm9ybS1maWVsZD5cbiAgICAgIDxheC13eXNpd3lnLWNvbnRhaW5lciBbbG9va109XCJ3eXNpd3lnT3B0aW9ucygpLmxvb2tcIiAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiPlxuICAgICAgICA8YXgtd3lzaXd5Zy12aWV3IGNsYXNzPVwiYXgtbWluLWgtMjhcIj48L2F4LXd5c2l3eWctdmlldz5cbiAgICAgICAgPGF4LXd5c2l3eWctdG9vbGJhcj5cbiAgICAgICAgICA8YXgtd3lzaXd5Zy1oaXN0b3J5PjwvYXgtd3lzaXd5Zy1oaXN0b3J5PlxuICAgICAgICAgIDxheC13eXNpd3lnLWZvbnQtc3R5bGU+PC9heC13eXNpd3lnLWZvbnQtc3R5bGU+XG4gICAgICAgICAgPGF4LXd5c2l3eWctY29sb3JzPjwvYXgtd3lzaXd5Zy1jb2xvcnM+XG4gICAgICAgICAgPGF4LXd5c2l3eWctbGlzdD48L2F4LXd5c2l3eWctbGlzdD5cbiAgICAgICAgICA8YXgtd3lzaXd5Zy1hbGlnbm1lbnQ+PC9heC13eXNpd3lnLWFsaWdubWVudD5cbiAgICAgICAgICA8YXgtd3lzaXd5Zy1pbnNlcnQ+PC9heC13eXNpd3lnLWluc2VydD5cbiAgICAgICAgICA8YXgtc3VmZml4PlxuICAgICAgICAgICAgPGF4LWJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY29sb3I9XCJwcmltYXJ5XCIgdGV4dD1cIlNlbmRcIiAob25DbGljayk9XCJzdWJtaXRDb21tZW50KClcIj48L2F4LWJ1dHRvblxuICAgICAgICAgID48L2F4LXN1ZmZpeD5cbiAgICAgICAgPC9heC13eXNpd3lnLXRvb2xiYXI+XG4gICAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGUgcnVsZT1cImNhbGxiYWNrXCIgW29wdGlvbnNdPVwieyB2YWxpZGF0ZTogdmFsaWRhdGVGbiB9XCI+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICA8L2F4LXd5c2l3eWctY29udGFpbmVyPlxuICAgIDwvYXgtZm9ybS1maWVsZD5cbiAgPC9heC1mb3JtPlxuPC9kaXY+XG4iXX0=
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1saXN0LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1zaW5nbGUtdmlldy9jb21tZW50cy9jb21tZW50LWxpc3Qtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0L3NyYy9saWIvbGF5b3V0cy9lbnRpdHktbGF5b3V0cy9lbnRpdHktbWFzdGVyLXNpbmdsZS12aWV3L2NvbW1lbnRzL2NvbW1lbnQtbGlzdC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQStCLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVB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cnQgeyBBWENvbW1lbnRNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbWVudCc7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYV3lzaXd5Z0NvbnRhaW5lckNvbXBvbmVudCwgQVhXeXNpd3lnTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3d5c2l3eWcnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBBWEF2YXRhck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hdmF0YXInO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYU3R5bGVMb29rVHlwZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYRHJvcGRvd25CdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24tYnV0dG9uJztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYSW1hZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvaW1hZ2UnO1xuaW1wb3J0IHsgQVhMYWJlbE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sYWJlbCc7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFBvcHVwQ29uZmlnLCBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYVGV4dEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBBWFRvYXN0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b2FzdCc7XG5pbXBvcnQgeyBBWFBIdG1sVXRpbHMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQQ29tbWVudExvb2t1cFBvcHVwIH0gZnJvbSAnLi9jb21tZW50LWxvb2t1cC1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQQ29tbWVudFNlcnZpY2UgfSBmcm9tICcuL2NvbW1lbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQQ29tbWVudCwgQVhQTGlrZVJlcXVlc3QsIEFYUFBvc3RSZXF1ZXN0IH0gZnJvbSAnLi9jb21tZW50cy50eXBlJztcbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vY29tbWVudC1saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzZWxlY3RvcjogJ2F4cC1jb21tZW50LWxpc3QtdmlldycsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYQ29tbWVudE1vZHVsZSxcbiAgICBBWFd5c2l3eWdNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhUZXh0Qm94TW9kdWxlLFxuICAgIEFYTGFiZWxNb2R1bGUsXG4gICAgQVhBdmF0YXJNb2R1bGUsXG4gICAgQVhJbWFnZU1vZHVsZSxcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYRHJvcGRvd25CdXR0b25Nb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc3R5bGVzOiBgYXgtd3lzaXd5Zy1jb250YWluZXJ7XG4gICAgLmF4LWVycm9yLW1lc3NhZ2V7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICB9XG4gIH1gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29tbWVudExpc3RWaWV3Q29tcG9uZW50IHtcbiAgY29tbWVudENvbnRlbnQgPSBzaWduYWwoJycpO1xuICBoYXNDb29sZG93biA9IHNpZ25hbChmYWxzZSk7XG4gIGlzU3VibWl0dGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIGlzUmVwbHlpbmdNb2RlID0gc2lnbmFsKGZhbHNlKTtcbiAgaXNFZGl0aW5nTW9kZSA9IHNpZ25hbChmYWxzZSk7XG4gIGZhaWxlZEltYWdlSWRzID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG4gIGFjdGl2ZVJlcGx5Q29tbWVudCA9IHNpZ25hbDx1bmRlZmluZWQgfCBBWFBDb21tZW50Pih1bmRlZmluZWQpO1xuICBhY3RpdmVFZGl0Q29tbWVudCA9IHNpZ25hbDx1bmRlZmluZWQgfCBBWFBDb21tZW50Pih1bmRlZmluZWQpO1xuICB3eXNpd3lnRWRpdG9yID0gdmlld0NoaWxkLnJlcXVpcmVkPEFYV3lzaXd5Z0NvbnRhaW5lckNvbXBvbmVudD4oJ3cnKTtcblxuICBwcml2YXRlIGNvbW1lbnRTZXJ2aWNlID0gaW5qZWN0KEFYUENvbW1lbnRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHByaXZhdGUgcG9wdXBTZXJ2aWNlID0gaW5qZWN0KEFYUG9wdXBTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0b2FzdFNlcnZpY2UgPSBpbmplY3QoQVhUb2FzdFNlcnZpY2UpO1xuICBwcml2YXRlIGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoQVhEaWFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBodG1sVXRpbHMgPSBpbmplY3QoQVhQSHRtbFV0aWxzKTtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZVBhcmFtcyA9IHRoaXMucm91dGUuc25hcHNob3Q7XG4gIHByaXZhdGUgcGF5bG9hZCA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgcm9vbVR5cGU6ICdkZWZhdWx0JyxcbiAgICBlbnRpdHlJZDogdGhpcy5yb3V0ZVBhcmFtcy5wYXJhbXM/LlsnbW9kdWxlJ10gKyAnLicgKyB0aGlzLnJvdXRlUGFyYW1zLnBhcmFtcz8uWydlbnRpdHknXSxcbiAgICBpbnN0YW5jZUlkOiB0aGlzLnJvdXRlUGFyYW1zLnBhcmFtcz8uWydpZCddLFxuICB9KSk7XG5cbiAgcHJvdGVjdGVkIGNvbW1lbnRzID0gc2lnbmFsPEFYUENvbW1lbnRbXT4oW10pO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZENvbW1lbnRzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgd3lzaXd5Z09wdGlvbnMgPSBzaWduYWw8e1xuICAgIGxvb2s6IEFYU3R5bGVMb29rVHlwZTtcbiAgfT4oe1xuICAgIGxvb2s6ICdub25lJyxcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGF2YXRhckNvbmZpZyA9IHNpZ25hbDx7XG4gICAgY29sb3I6IHN0cmluZztcbiAgICBsb29rOiAnc2hhcnAnIHwgJ3NvZnQnIHwgJ3JvdW5kZWQnO1xuICAgIHR5cGU6IHN0cmluZztcbiAgfT4oe1xuICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgbG9vazogJ3JvdW5kZWQnLFxuICAgIHR5cGU6ICdzb2xpZCcsIC8vICdpbWFnZScgfCAndGV4dCcgfCAnaWNvbicgfCAnZGVmYXVsdCdcbiAgfSk7XG5cbiAgdmFsaWRhdGVDb250ZW50ID0gKGNvbnRlbnQ6IHN0cmluZykgPT4ge1xuICAgIGxldCBpc1ZhbGlkID0gdHJ1ZTtcblxuICAgIGlmICghY29udGVudCB8fCBjb250ZW50ID09PSAnPHA+PGJyPjwvcD4nKSB7XG4gICAgICBpc1ZhbGlkID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBydWxlOiAnY2FsbGJhY2snLFxuICAgICAgcmVzdWx0OiBpc1ZhbGlkLFxuICAgICAgbWVzc2FnZTogaXNWYWxpZCA/ICcnIDogJ1BsZWFzZSBmaWxsIHRoZSBjb250ZW50JyxcbiAgICAgIHZhbHVlOiBjb250ZW50LFxuICAgIH07XG4gIH07XG5cbiAgc2FuaXRpemVIdG1sKGh0bWxDb250ZW50OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odG1sVXRpbHMuZ2V0U2FmZUhUTUxmcm9tSFRNTChodG1sQ29udGVudCk7XG4gIH1cblxuICBoYW5kbGVJbWFnZUVycm9yKGltYWdlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZmFpbGVkSW1hZ2VJZHMudXBkYXRlKChpZHMpID0+IFsuLi5pZHMsIGltYWdlSWRdKTtcbiAgfVxuXG4gIGNoZWNrSW1hZ2VFeGlzdHMoaW1hZ2VJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZhaWxlZEltYWdlSWRzKCkuaW5jbHVkZXMoaW1hZ2VJZCk7XG4gIH1cblxuICBleHRyYWN0SW5pdGlhbHMobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB3b3JkcyA9IG5hbWUuc3BsaXQoJyAnKTtcbiAgICBjb25zdCBpbml0aWFscyA9IHdvcmRzLm1hcCgod29yZCkgPT4gd29yZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSk7XG4gICAgcmV0dXJuIGluaXRpYWxzLmpvaW4oJycpO1xuICB9XG5cbiAgYXN5bmMgbG9hZENvbW1lbnRzKCkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jb21tZW50U2VydmljZS5nZXQodGhpcy5wYXlsb2FkKCkpO1xuICAgIHRoaXMuY29tbWVudHMuc2V0KHJlc3BvbnNlLml0ZW1zKTtcbiAgfVxuXG4gIGFzeW5jIGluaXRpYXRlRWRpdENvbW1lbnQoY29tbWVudDogQVhQQ29tbWVudCkge1xuICAgIHRoaXMuaXNSZXBseWluZ01vZGUuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmFjdGl2ZVJlcGx5Q29tbWVudC5zZXQodW5kZWZpbmVkKTtcbiAgICB0aGlzLmlzRWRpdGluZ01vZGUuc2V0KHRydWUpO1xuICAgIHRoaXMuYWN0aXZlRWRpdENvbW1lbnQuc2V0KGNvbW1lbnQpO1xuICAgIHRoaXMuY29tbWVudENvbnRlbnQuc2V0KGNvbW1lbnQuY29udGVudCk7XG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncWwtZWRpdG9yJylbMF0uaW5uZXJIVE1MID0gY29tbWVudC5jb250ZW50O1xuICAgIHRoaXMud3lzaXd5Z0VkaXRvcigpLmdldEhvc3RFbGVtZW50KCkuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnc3RhcnQnIH0pO1xuICB9XG5cbiAgYXN5bmMgaW5pdGlhdGVSZXBseUNvbW1lbnQoY29tbWVudDogQVhQQ29tbWVudCkge1xuICAgIHRoaXMuaXNFZGl0aW5nTW9kZS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuYWN0aXZlRWRpdENvbW1lbnQuc2V0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5pc1JlcGx5aW5nTW9kZS5zZXQodHJ1ZSk7XG4gICAgdGhpcy5hY3RpdmVSZXBseUNvbW1lbnQuc2V0KGNvbW1lbnQpO1xuICAgIHRoaXMud3lzaXd5Z0VkaXRvcigpLmdldEhvc3RFbGVtZW50KCkuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnc3RhcnQnIH0pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQ29tbWVudChjb21tZW50OiBBWFBDb21tZW50KSB7XG4gICAgY29uc3QgZGlhbG9nID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oe1xuICAgICAgaWNvbjogJ2ZhLXJlZ3VsYXIgZmEtd2FybmluZycsXG4gICAgICBjb250ZW50OiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNvbW1lbnQ/JyxcbiAgICAgIHRpdGxlOiAnRGVsZXRlIENvbW1lbnQnLFxuICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnLFxuICAgICAgYnV0dG9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJ0RlbGV0ZScsXG4gICAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICAgIG9uQ2xpY2s6IGFzeW5jIChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGUuaGFuZGxlZCA9IHRydWU7XG4gICAgICAgICAgICBlLnNvdXJjZS50ZXh0ID0gJ0RlbGV0aW5nLi4uJztcbiAgICAgICAgICAgIGUuc291cmNlLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGUuc291cmNlLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5jb21tZW50U2VydmljZS5kZWxldGUoeyBpZDogY29tbWVudC5pZCB9KTtcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDb21tZW50QnlJZChjb21tZW50LmlkKTtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ0NvbW1lbnQgZGVsZXRlZCBzdWNjZXNzZnVsbHkuJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgIGxvY2F0aW9uOiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgY2xvc2VCdXR0b246IHRydWUsXG4gICAgICAgICAgICAgICAgdGltZU91dDogMzAwMCxcbiAgICAgICAgICAgICAgICB0aW1lT3V0UHJvZ3Jlc3M6IHRydWUsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBkaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycgPyBlcnJvciA6ICdGYWlsZWQgdG8gZGVsZXRlIGNvbW1lbnQhJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgICAgICAgICAgbG9jYXRpb246ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0aW1lT3V0OiAzMDAwLFxuICAgICAgICAgICAgICAgIHRpbWVPdXRQcm9ncmVzczogdHJ1ZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdDYW5jZWwnLFxuICAgICAgICAgIGNvbG9yOiAnZ2hvc3QnLFxuICAgICAgICAgIGF1dG9mb2N1czogdHJ1ZSxcbiAgICAgICAgICBvbkNsaWNrOiAoZSkgPT4ge1xuICAgICAgICAgICAgZGlhbG9nLmNsb3NlKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBjbG9zZUJ1dHRvbjogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICByZXNldFJlcGx5RWRpdFN0YXRlKCkge1xuICAgIHRoaXMuaXNFZGl0aW5nTW9kZS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuYWN0aXZlRWRpdENvbW1lbnQuc2V0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5pc1JlcGx5aW5nTW9kZS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuYWN0aXZlUmVwbHlDb21tZW50LnNldCh1bmRlZmluZWQpO1xuICB9XG5cbiAgYXN5bmMgdG9nZ2xlTGlrZUNvbW1lbnQoY29tbWVudDogYW55KSB7XG4gICAgdGhpcy51cGRhdGVMaWtlU3RhdHVzKGNvbW1lbnQuaWQpO1xuICAgIGNvbnN0IHBheWxvYWQ6IEFYUExpa2VSZXF1ZXN0ID0ge1xuICAgICAgbWVzc2FnZUlkOiBjb21tZW50LmlkLFxuICAgICAgdHlwZTogJ2xpa2UnLFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UubGlrZShwYXlsb2FkKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy51cGRhdGVMaWtlU3RhdHVzKGNvbW1lbnQuaWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTGlrZVN0YXR1cyhjb21tZW50SWQ6IHN0cmluZykge1xuICAgIHRoaXMuY29tbWVudHMudXBkYXRlKChjb21tZW50c0xpc3QpID0+IHtcbiAgICAgIHJldHVybiBjb21tZW50c0xpc3QubWFwKChjb21tZW50KSA9PlxuICAgICAgICBjb21tZW50LmlkID09PSBjb21tZW50SWRcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgLi4uY29tbWVudCxcbiAgICAgICAgICAgICAgaXNMaWtlZDogIWNvbW1lbnQuaXNMaWtlZCxcbiAgICAgICAgICAgICAgcmVhY3Rpb25zQ291bnQ6IGNvbW1lbnQuaXNMaWtlZCA/IC0tY29tbWVudC5yZWFjdGlvbnNDb3VudCA6ICsrY29tbWVudC5yZWFjdGlvbnNDb3VudCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IGNvbW1lbnRcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUNvbW1lbnRCeUlkKGNvbW1lbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5jb21tZW50cy51cGRhdGUoKGNvbW1lbnRzTGlzdCkgPT4gY29tbWVudHNMaXN0LmZpbHRlcigoY29tbWVudCkgPT4gY29tbWVudC5pZCAhPT0gY29tbWVudElkKSk7XG4gIH1cblxuICBhc3luYyBzdWJtaXRQcml2YXRlQ29tbWVudCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMudmFsaWRhdGVDb250ZW50KHRoaXMuY29tbWVudENvbnRlbnQoKSkucmVzdWx0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcG9wdXBDb25maWc6IEFYUG9wdXBDb25maWcgPSB7XG4gICAgICBoZWFkZXI6IHRydWUsXG4gICAgICBzaXplOiAnbWQnLFxuICAgICAgZHJhZ2dhYmxlOiB0cnVlLFxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIGNsb3NlT25CYWNrZHJvcENsaWNrOiBmYWxzZSxcbiAgICB9O1xuICAgIGNvbnN0IHBvcHVwID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3BlbihBWFBDb21tZW50TG9va3VwUG9wdXAsIHBvcHVwQ29uZmlnKTtcblxuICAgIGNvbnN0IHBheWxvYWQ6IEFYUFBvc3RSZXF1ZXN0ID0ge1xuICAgICAgLi4udGhpcy5wYXlsb2FkKCksXG4gICAgICBjb250ZW50OiB0aGlzLmNvbW1lbnRDb250ZW50KCksXG4gICAgICBjb250ZW50VHlwZTogJ3RleHQnLFxuICAgICAgaXNQcml2YXRlOiBmYWxzZSxcbiAgICAgIHJlcGx5SWQ6IHRoaXMuYWN0aXZlUmVwbHlDb21tZW50KCk/LmlkLFxuICAgICAgbWVtYmVyczogW3BvcHVwLmRhdGE/LmRhdGE/Lmxvb2t1cF0sXG4gICAgfTtcbiAgICB0aGlzLmlzU3VibWl0dGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5oYXNDb29sZG93bi5zZXQodHJ1ZSk7XG4gICAgYXdhaXQgdGhpcy5jb21tZW50U2VydmljZS5wb3N0KHBheWxvYWQpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jb21tZW50U2VydmljZS5nZXQodGhpcy5wYXlsb2FkKCkpO1xuICAgIHRoaXMuY29tbWVudHMuc2V0KHJlc3BvbnNlLml0ZW1zKTtcbiAgICB0aGlzLmNvbW1lbnRDb250ZW50LnNldCgnJyk7XG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncWwtZWRpdG9yJylbMF0uaW5uZXJIVE1MID0gJyc7XG4gICAgdGhpcy5pc1N1Ym1pdHRpbmcuc2V0KGZhbHNlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaGFzQ29vbGRvd24uc2V0KGZhbHNlKTtcbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdENvbW1lbnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnZhbGlkYXRlQ29udGVudCh0aGlzLmNvbW1lbnRDb250ZW50KCkpLnJlc3VsdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwYXlsb2FkOiBBWFBQb3N0UmVxdWVzdCA9IHtcbiAgICAgIC4uLnRoaXMucGF5bG9hZCgpLFxuICAgICAgY29udGVudDogdGhpcy5jb21tZW50Q29udGVudCgpLFxuICAgICAgY29udGVudFR5cGU6ICd0ZXh0JyxcbiAgICAgIGlzUHJpdmF0ZTogZmFsc2UsXG4gICAgICByZXBseUlkOiB0aGlzLmFjdGl2ZVJlcGx5Q29tbWVudCgpPy5pZCxcbiAgICB9O1xuXG4gICAgdGhpcy5pc1N1Ym1pdHRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMuaGFzQ29vbGRvd24uc2V0KHRydWUpO1xuICAgIGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UucG9zdChwYXlsb2FkKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UuZ2V0KHRoaXMucGF5bG9hZCgpKTtcbiAgICB0aGlzLmNvbW1lbnRzLnNldChyZXNwb25zZS5pdGVtcyk7XG4gICAgdGhpcy5jb21tZW50Q29udGVudC5zZXQoJycpO1xuICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3FsLWVkaXRvcicpWzBdLmlubmVySFRNTCA9ICcnO1xuICAgIHRoaXMuaXNTdWJtaXR0aW5nLnNldChmYWxzZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmhhc0Nvb2xkb3duLnNldChmYWxzZSk7XG4gICAgfSwgMTAwMCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1tdC0yXCI+XG4gIDxheC1jb21tZW50LXZpZXcgY2xhc3M9XCJheC1iZy1zdXJmYWNlXCI+XG4gICAgQGZvcihjb21tZW50IG9mIGNvbW1lbnRzKCk7IHRyYWNrIGNvbW1lbnQuaWQpe1xuICAgIDxheC1jb21tZW50LWl0ZW0+XG4gICAgICA8YXgtYXZhdGFyIFtjb2xvcl09XCJhdmF0YXJDb25maWcoKS5jb2xvclwiIFtsb29rXT1cImF2YXRhckNvbmZpZygpLmxvb2tcIj5cbiAgICAgICAgQGlmKGNoZWNrSW1hZ2VFeGlzdHMoY29tbWVudC5pZCkgJiYgY29tbWVudC51c2VyLnBpY3R1cmUpe1xuICAgICAgICA8YXgtaW1hZ2UgKG9uRXJyb3IpPVwiaGFuZGxlSW1hZ2VFcnJvcihjb21tZW50LmlkKVwiIFtzcmNdPVwiY29tbWVudC51c2VyLnBpY3R1cmVcIj5cbiAgICAgICAgICA8YXgtbG9hZGluZz48L2F4LWxvYWRpbmc+XG4gICAgICAgIDwvYXgtaW1hZ2U+XG4gICAgICAgIH1AZWxzZXtcbiAgICAgICAgPGF4LXRleHQ+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LWJhc2UgYXgtb3ZlcmZsb3ctaGlkZGVuXCI+e3tcbiAgICAgICAgICAgIGV4dHJhY3RJbml0aWFscyhjb21tZW50LnVzZXIuZmlyc3ROYW1lICsgJyAnICsgY29tbWVudC51c2VyLmxhc3ROYW1lKVxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L2F4LXRleHQ+XG4gICAgICAgIH1cbiAgICAgIDwvYXgtYXZhdGFyPlxuICAgICAgPGF4LXRpdGxlPnt7IGNvbW1lbnQudXNlci5maXJzdE5hbWUgKyAnICcgKyBjb21tZW50LnVzZXIubGFzdE5hbWUgfX08L2F4LXRpdGxlPlxuICAgICAgPGF4LWNvbW1lbnQtbWVudS1vcHRpb25zPlxuICAgICAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtc21cIiBsb29rPVwiYmxhbmtcIiBjb2xvcj1cInNlY29uZGFyeVwiPlxuICAgICAgICAgIDxheC1pY29uIGljb249XCJheC1pY29uIGF4LWljb24tc29saWQgYXgtaWNvbi1tb3JlLWhvcml6b250YWxcIj48L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuXG4gICAgICAgIDxheC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICAgIDxheC1idXR0b24taXRlbSB0ZXh0PVwiRWRpdFwiIGNvbG9yPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImluaXRpYXRlRWRpdENvbW1lbnQoY29tbWVudClcIj5cbiAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtZWRpdFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuXG4gICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0gdGV4dD1cIkRlbGV0ZVwiIGNvbG9yPVwiZGFuZ2VyXCIgKGNsaWNrKT1cImRlbGV0ZUNvbW1lbnQoY29tbWVudClcIj5cbiAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtdHJhc2gtY2FuXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgPC9heC1jb21tZW50LW1lbnUtb3B0aW9ucz5cbiAgICAgIDxheC1jb250ZW50IFtpbm5lckhUTUxdPVwic2FuaXRpemVIdG1sKGNvbW1lbnQuY29udGVudClcIj48L2F4LWNvbnRlbnQ+XG4gICAgICA8YXgtY29tbWVudC1saWtlIChjbGljayk9XCJ0b2dnbGVMaWtlQ29tbWVudChjb21tZW50KVwiIFtsaWtlZF09XCJjb21tZW50LmlzTGlrZWRcIj5cbiAgICAgICAge3sgY29tbWVudC5yZWFjdGlvbnNDb3VudCB9fVxuICAgICAgPC9heC1jb21tZW50LWxpa2U+XG4gICAgICA8YXgtY29tbWVudC1yZXBseS10ZXh0IChjbGljayk9XCJpbml0aWF0ZVJlcGx5Q29tbWVudChjb21tZW50KVwiPjwvYXgtY29tbWVudC1yZXBseS10ZXh0PlxuICAgICAgQGZvcihyZXBseSBvZiBjb21tZW50LnJlcGxpZXM7IHRyYWNrIHJlcGx5LmlkKXtcbiAgICAgIDxheC1jb21tZW50LWl0ZW0+XG4gICAgICAgIEBpZihjaGVja0ltYWdlRXhpc3RzKHJlcGx5LmlkKSAmJiByZXBseT8udXNlcj8ucGljdHVyZSl7XG4gICAgICAgIDxheC1pbWFnZSAob25FcnJvcik9XCJoYW5kbGVJbWFnZUVycm9yKHJlcGx5LmlkKVwiIFtzcmNdPVwicmVwbHk/LnVzZXI/LnBpY3R1cmVcIj5cbiAgICAgICAgICA8YXgtbG9hZGluZz48L2F4LWxvYWRpbmc+XG4gICAgICAgIDwvYXgtaW1hZ2U+XG4gICAgICAgIH1AZWxzZXtcbiAgICAgICAgPGF4LXRleHQ+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LWJhc2UgYXgtb3ZlcmZsb3ctaGlkZGVuXCI+e3tcbiAgICAgICAgICAgIGV4dHJhY3RJbml0aWFscyhyZXBseT8udXNlcj8uZmlyc3ROYW1lICsgJyAnICsgcmVwbHk/LnVzZXI/Lmxhc3ROYW1lKVxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L2F4LXRleHQ+XG4gICAgICAgIH1cbiAgICAgICAgPGF4LXRpdGxlPnt7IChyZXBseT8udXNlcj8uZmlyc3ROYW1lID8/ICcnKSArICcgJyArIChyZXBseT8udXNlcj8ubGFzdE5hbWUgPz8gJycpIH19PC9heC10aXRsZT5cbiAgICAgICAgPGF4LWNvbnRlbnQgW2lubmVySFRNTF09XCJzYW5pdGl6ZUh0bWwocmVwbHkuY29udGVudClcIj48L2F4LWNvbnRlbnQ+XG4gICAgICAgIDxheC1jb21tZW50LWxpa2UgKGNsaWNrKT1cInRvZ2dsZUxpa2VDb21tZW50KHJlcGx5KVwiIFtsaWtlZF09XCJyZXBseS5pc0xpa2VkXCI+XG4gICAgICAgICAge3sgcmVwbHkucmVhY3Rpb25zQ291bnQgfX1cbiAgICAgICAgPC9heC1jb21tZW50LWxpa2U+XG4gICAgICAgIDxheC1jb21tZW50LXJlcGx5LXRleHQgKGNsaWNrKT1cImluaXRpYXRlUmVwbHlDb21tZW50KHJlcGx5KVwiPjwvYXgtY29tbWVudC1yZXBseS10ZXh0PlxuICAgICAgPC9heC1jb21tZW50LWl0ZW0+XG4gICAgICB9XG4gICAgPC9heC1jb21tZW50LWl0ZW0+XG4gICAgfSBAZW1wdHl7IH1cbiAgPC9heC1jb21tZW50LXZpZXc+XG5cbiAgPGF4LWZvcm0+XG4gICAgPGF4LWZvcm0tZmllbGQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtYm9yZGVyIGF4LW92ZXJmbG93LWhpZGRlbiBheC1yb3VuZGVkLWxnXCI+XG4gICAgICAgIEBpZihpc1JlcGx5aW5nTW9kZSgpIHx8IGlzRWRpdGluZ01vZGUoKSl7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWJvcmRlci1iIGF4LWJnLW9uLXN1cmZhY2UgYXgtcHgtNiBheC1weS00IGF4LXctZnVsbCBheC1pdGVtcy1jZW50ZXIgYXgtb3ZlcmZsb3ctaGlkZGVuIGF4LXRleHQtc20gYXgtbGVhZGluZy1ub25lXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWp1c3RpZnktc3RhcnQgYXgtYWxpZ24tbWlkZGxlXCI+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBbY2xhc3NdPVwiaXNSZXBseWluZ01vZGUoKSA/ICdmYS1yZXBseScgOiAnZmEtcGVuJ1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmEtc29saWQgYXgtdGV4dC1wcmltYXJ5LTUwMCBheC10ZXh0LTJ4bCBheC1tZS00XCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMiBheC1qdXN0aWZ5LWJldHdlZW4gYXgtYWxpZ24tbWlkZGxlXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwiYXgtdGV4dC1wcmltYXJ5LTUwMFwiPlxuICAgICAgICAgICAgICAgIHt7IGlzUmVwbHlpbmdNb2RlKCkgPyAnUmVwbHkgdG8gJyA6ICdFZGl0IE1lc3NhZ2UnIH19XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1mb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIGlzUmVwbHlpbmdNb2RlKClcbiAgICAgICAgICAgICAgICAgICAgICA/IGFjdGl2ZVJlcGx5Q29tbWVudCgpPy51c2VyPy5maXJzdE5hbWUgKyAnICcgKyBhY3RpdmVSZXBseUNvbW1lbnQoKT8udXNlcj8ubGFzdE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC10cnVuY2F0ZVwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgIGlzUmVwbHlpbmdNb2RlKClcbiAgICAgICAgICAgICAgICAgICAgPyBzYW5pdGl6ZUh0bWwoYWN0aXZlUmVwbHlDb21tZW50KCk/LmNvbnRlbnQgPz8gJycpXG4gICAgICAgICAgICAgICAgICAgIDogc2FuaXRpemVIdG1sKGFjdGl2ZUVkaXRDb21tZW50KCk/LmNvbnRlbnQgPz8gJycpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj48aSAoY2xpY2spPVwicmVzZXRSZXBseUVkaXRTdGF0ZSgpXCIgY2xhc3M9XCJmYS1zb2xpZCBheC10ZXh0LTJ4bCBmYS14bWFyayBheC1jdXJzb3ItcG9pbnRlclwiPjwvaT48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGF4LXd5c2l3eWctY29udGFpbmVyICN3IFtsb29rXT1cInd5c2l3eWdPcHRpb25zKCkubG9va1wiIFsobmdNb2RlbCldPVwiY29tbWVudENvbnRlbnRcIj5cbiAgICAgICAgICA8YXgtd3lzaXd5Zy12aWV3IGNsYXNzPVwiYXgtbWluLWgtMjhcIj48L2F4LXd5c2l3eWctdmlldz5cbiAgICAgICAgICA8YXgtd3lzaXd5Zy10b29sYmFyPlxuICAgICAgICAgICAgPGF4LXd5c2l3eWctaGlzdG9yeT48L2F4LXd5c2l3eWctaGlzdG9yeT5cbiAgICAgICAgICAgIDxheC13eXNpd3lnLWZvbnQtc3R5bGU+PC9heC13eXNpd3lnLWZvbnQtc3R5bGU+XG4gICAgICAgICAgICA8YXgtd3lzaXd5Zy1jb2xvcnM+PC9heC13eXNpd3lnLWNvbG9ycz5cbiAgICAgICAgICAgIDxheC13eXNpd3lnLWxpc3Q+PC9heC13eXNpd3lnLWxpc3Q+XG4gICAgICAgICAgICA8YXgtd3lzaXd5Zy1hbGlnbm1lbnQ+PC9heC13eXNpd3lnLWFsaWdubWVudD5cbiAgICAgICAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgICAgICAgIDxheC1kcm9wZG93bi1idXR0b25cbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaGFzQ29vbGRvd24oKVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBtb2RlPVwic3BsaXRcIlxuICAgICAgICAgICAgICAgIHRleHQ9XCJTZW5kXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJzdWJtaXRDb21tZW50KClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmKGlzU3VibWl0dGluZygpKXsgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPiB9XG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdFByaXZhdGVDb21tZW50KClcIlxuICAgICAgICAgICAgICAgICAgICB0ZXh0PVwiU2VuZCBQcml2YXRlIC4uLlwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJwcml2YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YT1cInByaXZhdGVcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1yZWd1bGFyIGZhLXVzZXItc2VjcmV0XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgICAgICA8L2F4LWRyb3Bkb3duLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvYXgtc3VmZml4PlxuICAgICAgICAgIDwvYXgtd3lzaXd5Zy10b29sYmFyPlxuICAgICAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGUgcnVsZT1cImNhbGxiYWNrXCIgW29wdGlvbnNdPVwieyB2YWxpZGF0ZTogdmFsaWRhdGVDb250ZW50IH1cIj48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgICAgPC9heC13eXNpd3lnLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXgtZm9ybS1maWVsZD5cbiAgPC9heC1mb3JtPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,56 @@
1
+ import { AXButtonModule } from '@acorex/components/button';
2
+ import { AXDecoratorModule } from '@acorex/components/decorators';
3
+ import { AXBasePageComponent } from '@acorex/components/page';
4
+ import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
5
+ import { Component } from '@angular/core';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@acorex/components/decorators";
8
+ import * as i2 from "@acorex/platform/layout/builder";
9
+ import * as i3 from "@acorex/components/button";
10
+ export class AXPCommentLookupPopup extends AXBasePageComponent {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.lookupNode = {
14
+ name: 'lookup',
15
+ path: 'lookup',
16
+ type: 'lookup-editor',
17
+ options: {
18
+ entity: 'axoidc.users',
19
+ },
20
+ };
21
+ this.context = {};
22
+ }
23
+ handleClose() {
24
+ this.close({
25
+ result: true,
26
+ data: this.context,
27
+ });
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommentLookupPopup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPCommentLookupPopup, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<axp-widgets-container class="ax-flex ax-flex-col ax-gap-2 ax-p-4" [(context)]="context">
31
+ <div class="ax-m-5"><axp-widget-renderer [node]="lookupNode" [mode]="'edit'"> </axp-widget-renderer></div>
32
+ </axp-widgets-container>
33
+
34
+ <ax-footer>
35
+ <ax-suffix>
36
+ <ax-button text="Accept & Send" color="primary" (onClick)="handleClose()"></ax-button>
37
+ </ax-suffix>
38
+ </ax-footer>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i2.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "component", type: i2.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["node", "mode", "parentNode", "index"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }] }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommentLookupPopup, decorators: [{
41
+ type: Component,
42
+ args: [{
43
+ template: `<axp-widgets-container class="ax-flex ax-flex-col ax-gap-2 ax-p-4" [(context)]="context">
44
+ <div class="ax-m-5"><axp-widget-renderer [node]="lookupNode" [mode]="'edit'"> </axp-widget-renderer></div>
45
+ </axp-widgets-container>
46
+
47
+ <ax-footer>
48
+ <ax-suffix>
49
+ <ax-button text="Accept & Send" color="primary" (onClick)="handleClose()"></ax-button>
50
+ </ax-suffix>
51
+ </ax-footer>`,
52
+ imports: [AXDecoratorModule, AXPLayoutBuilderModule, AXButtonModule],
53
+ standalone: true,
54
+ }]
55
+ }] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1sb29rdXAtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1zaW5nbGUtdmlldy9jb21tZW50cy9jb21tZW50LWxvb2t1cC1wb3B1cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxzQkFBc0IsRUFBaUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQWUxQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1CO0lBYjlEOztRQWNZLGVBQVUsR0FBa0I7WUFDcEMsSUFBSSxFQUFFLFFBQVE7WUFDZCxJQUFJLEVBQUUsUUFBUTtZQUNkLElBQUksRUFBRSxlQUFlO1lBQ3JCLE9BQU8sRUFBRTtnQkFDUCxNQUFNLEVBQUUsY0FBYzthQUN2QjtTQUNGLENBQUM7UUFDRixZQUFPLEdBQUcsRUFBRSxDQUFDO0tBUWQ7SUFOQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNULE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBaEJVLHFCQUFxQjtrR0FBckIscUJBQXFCLCtGQVp0Qjs7Ozs7Ozs7aUJBUUssMkRBQ0wsaUJBQWlCLHNQQUFFLHNCQUFzQixvV0FBRSxjQUFjOzsyRkFHeEQscUJBQXFCO2tCQWJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7aUJBUUs7b0JBQ2YsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxDQUFDO29CQUNwRSxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSwgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYDxheHAtd2lkZ2V0cy1jb250YWluZXIgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0yIGF4LXAtNFwiIFsoY29udGV4dCldPVwiY29udGV4dFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW0tNVwiPjxheHAtd2lkZ2V0LXJlbmRlcmVyIFtub2RlXT1cImxvb2t1cE5vZGVcIiBbbW9kZV09XCInZWRpdCdcIj4gPC9heHAtd2lkZ2V0LXJlbmRlcmVyPjwvZGl2PlxuICAgIDwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxuXG4gICAgPGF4LWZvb3Rlcj5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC1idXR0b24gdGV4dD1cIkFjY2VwdCAmIFNlbmRcIiBjb2xvcj1cInByaW1hcnlcIiAob25DbGljayk9XCJoYW5kbGVDbG9zZSgpXCI+PC9heC1idXR0b24+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICA8L2F4LWZvb3Rlcj5gLFxuICBpbXBvcnRzOiBbQVhEZWNvcmF0b3JNb2R1bGUsIEFYUExheW91dEJ1aWxkZXJNb2R1bGUsIEFYQnV0dG9uTW9kdWxlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29tbWVudExvb2t1cFBvcHVwIGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBsb29rdXBOb2RlOiBBWFBXaWRnZXROb2RlID0ge1xuICAgIG5hbWU6ICdsb29rdXAnLFxuICAgIHBhdGg6ICdsb29rdXAnLFxuICAgIHR5cGU6ICdsb29rdXAtZWRpdG9yJyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBlbnRpdHk6ICdheG9pZGMudXNlcnMnLFxuICAgIH0sXG4gIH07XG4gIGNvbnRleHQgPSB7fTtcblxuICBoYW5kbGVDbG9zZSgpIHtcbiAgICB0aGlzLmNsb3NlKHtcbiAgICAgIHJlc3VsdDogdHJ1ZSxcbiAgICAgIGRhdGE6IHRoaXMuY29udGV4dCxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,3 +1,3 @@
1
1
  export class AXPCommentService {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGhlbWVzL2RlZmF1bHQvc3JjL2xpYi9sYXlvdXRzL2VudGl0eS1sYXlvdXRzL2VudGl0eS1tYXN0ZXItc2luZ2xlLXZpZXcvY29tbWVudHMvY29tbWVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQWdCLGlCQUFpQjtDQU90QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBDb21tZW50U2VydmljZSB7XG4gIGFic3RyYWN0IGdldENvbW1lbnRzKHBheWxvYWQ6IGFueSk6IFByb21pc2U8eyBpdGVtczogYW55W107IHRvdGFsQ291bnQ6IG51bWJlciB9PjtcbiAgYWJzdHJhY3QgcG9zdENvbW1lbnQocGF5bG9hZDogYW55KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCByZXBseVRvQ29tbWVudChwYXlsb2FkOiBhbnkpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGxpa2VDb21tZW50KGNvbW1lbnRJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAgYWJzdHJhY3QgZGVsZXRlQ29tbWVudChjb21tZW50SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG4gIGFic3RyYWN0IGVkaXRDb21tZW50KHBheWxvYWQ6IGFueSk6IFByb21pc2U8YW55Pjtcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGhlbWVzL2RlZmF1bHQvc3JjL2xpYi9sYXlvdXRzL2VudGl0eS1sYXlvdXRzL2VudGl0eS1tYXN0ZXItc2luZ2xlLXZpZXcvY29tbWVudHMvY29tbWVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLE9BQWdCLGlCQUFpQjtDQVF0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYUENvbW1lbnRSZXNwb25zZSxcbiAgQVhQRGVsZXRlUmVxdWVzdCxcbiAgQVhQR2V0UmVxdWVzdCxcbiAgQVhQTGlrZVJlcXVlc3QsXG4gIEFYUFBvc3RSZXF1ZXN0LFxuICBBWFBQdXRSZXF1ZXN0LFxufSBmcm9tICcuL2NvbW1lbnRzLnR5cGUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQ29tbWVudFNlcnZpY2Uge1xuICBhYnN0cmFjdCBnZXQocGF5bG9hZDogQVhQR2V0UmVxdWVzdCk6IFByb21pc2U8QVhQQ29tbWVudFJlc3BvbnNlPjtcbiAgYWJzdHJhY3QgcG9zdChwYXlsb2FkOiBBWFBQb3N0UmVxdWVzdCk6IFByb21pc2U8c3RyaW5nPjtcbiAgYWJzdHJhY3QgZGVsZXRlKHBheWxvYWQ6IEFYUERlbGV0ZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+O1xuICBhYnN0cmFjdCBwdXQocGF5bG9hZDogQVhQUHV0UmVxdWVzdCk6IFByb21pc2U8c3RyaW5nPjtcbiAgYWJzdHJhY3QgbGlrZShwYXlsb2FkOiBBWFBMaWtlUmVxdWVzdCk6IFByb21pc2U8c3RyaW5nPjtcbiAgLy8gYWJzdHJhY3QgZGVsZXRlQ29tbWVudChjb21tZW50SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG4gIC8vIGFic3RyYWN0IGVkaXRDb21tZW50KHBheWxvYWQ6IEFYUENvbW1lbnQpOiBQcm9taXNlPEFYUENvbW1lbnQ+O1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGhlbWVzL2RlZmF1bHQvc3JjL2xpYi9sYXlvdXRzL2VudGl0eS1sYXlvdXRzL2VudGl0eS1tYXN0ZXItc2luZ2xlLXZpZXcvY29tbWVudHMvY29tbWVudHMudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBWFBDb21tZW50VmlzaWJsZU1lc3NhZ2Uge1xuICBpZDogc3RyaW5nO1xuICBtZW1iZXJJZDogc3RyaW5nO1xuICBtZW1iZXJUeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQ29tbWVudFN0YXR1c01lc3NhZ2Uge1xuICBpZDogc3RyaW5nO1xuICBtZW1iZXJJZDogc3RyaW5nO1xuICBtZW1iZXJUeXBlOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbW1lbnRIaXN0b3J5TWVzc2FnZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgY29udGVudFR5cGU6IHN0cmluZztcbiAgaXNQcml2YXRlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbW1lbnRVc2VyRGV0YWlscyB7XG4gIGlkOiBzdHJpbmc7XG4gIHVzZXJOYW1lOiBzdHJpbmc7XG4gIGZpcnN0TmFtZTogc3RyaW5nO1xuICBsYXN0TmFtZTogc3RyaW5nO1xuICBwaWN0dXJlOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbW1lbnQge1xuICBjb250ZW50OiBzdHJpbmc7XG4gIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG4gIG1lbWJlcklkOiBzdHJpbmc7XG4gIG1lbWJlclR5cGU6IHN0cmluZztcbiAgcm9vbUlkOiBzdHJpbmc7XG4gIGlzUHJpdmF0ZTogYm9vbGVhbjtcbiAgcmVwbHlJZDogc3RyaW5nIHwgbnVsbDtcbiAgbWVzc2FnZVZpc2libGVzOiBBWFBDb21tZW50VmlzaWJsZU1lc3NhZ2VbXTtcbiAgbWVzc2FnZVN0YXR1c2VzOiBBWFBDb21tZW50U3RhdHVzTWVzc2FnZVtdO1xuICBtZXNzYWdlSGlzdG9yaWVzOiBBWFBDb21tZW50SGlzdG9yeU1lc3NhZ2VbXTtcbiAgcmVwbGllczogQVhQQ29tbWVudFtdO1xuICBpc0FyY2hpdmVkOiBib29sZWFuO1xuICBpc0xpa2VkOiBib29sZWFuO1xuICByZWFjdGlvbnNDb3VudDogbnVtYmVyO1xuICByZXBsaWVzQ291bnQ6IG51bWJlcjtcbiAgdXNlcjogQVhQQ29tbWVudFVzZXJEZXRhaWxzO1xuICBpZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbW1lbnRSZXNwb25zZSB7XG4gIHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgaXRlbXM6IEFYUENvbW1lbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBQb3N0UmVxdWVzdCBleHRlbmRzIFBhcnRpYWw8QVhQQ29tbWVudD4ge1xuICBjb250ZW50OiBzdHJpbmc7XG4gIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG4gIGlzUHJpdmF0ZTogYm9vbGVhbjtcbiAgcmVwbHlJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBtZW1iZXJzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQR2V0UmVxdWVzdCBleHRlbmRzIFBhcnRpYWw8QVhQQ29tbWVudD4ge1xuICByb29tVHlwZTogc3RyaW5nO1xuICBlbnRpdHlJZDogc3RyaW5nO1xuICBpbnN0YW5jZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGVsZXRlUmVxdWVzdCB7XG4gIGlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQUHV0UmVxdWVzdCB7XG4gIGlkOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBMaWtlUmVxdWVzdCB7XG4gIG1lc3NhZ2VJZDogc3RyaW5nO1xuICB0eXBlOiAnbGlrZSc7XG59XG4iXX0=