raise-common-lib 0.0.134 → 0.0.135
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.
- package/bundles/raise-common-lib.umd.js +30 -18
- package/bundles/raise-common-lib.umd.js.map +1 -1
- package/bundles/raise-common-lib.umd.min.js +1 -1
- package/bundles/raise-common-lib.umd.min.js.map +1 -1
- package/esm2015/lib/commentary/constants.js +10 -10
- package/esm2015/lib/commentary/index.component.js +26 -16
- package/esm5/lib/commentary/constants.js +10 -10
- package/esm5/lib/commentary/index.component.js +31 -19
- package/fesm2015/raise-common-lib.js +25 -15
- package/fesm2015/raise-common-lib.js.map +1 -1
- package/fesm5/raise-common-lib.js +30 -18
- package/fesm5/raise-common-lib.js.map +1 -1
- package/lib/commentary/constants.d.ts +9 -9
- package/lib/commentary/index.component.d.ts +7 -0
- package/package.json +1 -1
- package/raise-common-lib.metadata.json +1 -1
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export function MessageItem() { }
|
|
10
10
|
if (false) {
|
|
11
|
-
/** @type {
|
|
11
|
+
/** @type {?|undefined} */
|
|
12
12
|
MessageItem.prototype.messageId;
|
|
13
|
-
/** @type {
|
|
13
|
+
/** @type {?|undefined} */
|
|
14
14
|
MessageItem.prototype.messageBody;
|
|
15
|
-
/** @type {
|
|
15
|
+
/** @type {?|undefined} */
|
|
16
16
|
MessageItem.prototype.ownerName;
|
|
17
|
-
/** @type {
|
|
17
|
+
/** @type {?|undefined} */
|
|
18
18
|
MessageItem.prototype.lastModifiedOn;
|
|
19
19
|
/* Skipping unhandled member: [key: string]: any;*/
|
|
20
20
|
}
|
|
@@ -23,16 +23,16 @@ if (false) {
|
|
|
23
23
|
*/
|
|
24
24
|
export function MessageGroup() { }
|
|
25
25
|
if (false) {
|
|
26
|
-
/** @type {
|
|
26
|
+
/** @type {?|undefined} */
|
|
27
27
|
MessageGroup.prototype.messageId;
|
|
28
|
-
/** @type {
|
|
28
|
+
/** @type {?|undefined} */
|
|
29
29
|
MessageGroup.prototype.messageBody;
|
|
30
|
-
/** @type {
|
|
30
|
+
/** @type {?|undefined} */
|
|
31
31
|
MessageGroup.prototype.ownerName;
|
|
32
|
-
/** @type {
|
|
32
|
+
/** @type {?|undefined} */
|
|
33
33
|
MessageGroup.prototype.lastModifiedOn;
|
|
34
|
-
/** @type {
|
|
34
|
+
/** @type {?|undefined} */
|
|
35
35
|
MessageGroup.prototype.commentaries;
|
|
36
36
|
/* Skipping unhandled member: [key: string]: any;*/
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21tZW50YXJ5L2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLGlDQU1DOzs7SUFMQyxnQ0FBbUI7O0lBQ25CLGtDQUFxQjs7SUFDckIsZ0NBQW1COztJQUNuQixxQ0FBcUI7Ozs7OztBQUl2QixrQ0FPQzs7O0lBTkMsaUNBQW1COztJQUNuQixtQ0FBcUI7O0lBQ3JCLGlDQUFtQjs7SUFDbkIsc0NBQXFCOztJQUNyQixvQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VJdGVtIHtcclxuICBtZXNzYWdlSWQ/OiBzdHJpbmc7XHJcbiAgbWVzc2FnZUJvZHk/OiBzdHJpbmc7XHJcbiAgb3duZXJOYW1lPzogc3RyaW5nO1xyXG4gIGxhc3RNb2RpZmllZE9uPzogYW55O1xyXG4gIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlR3JvdXAge1xyXG4gIG1lc3NhZ2VJZD86IHN0cmluZztcclxuICBtZXNzYWdlQm9keT86IHN0cmluZztcclxuICBvd25lck5hbWU/OiBzdHJpbmc7XHJcbiAgbGFzdE1vZGlmaWVkT24/OiBhbnk7XHJcbiAgY29tbWVudGFyaWVzPzogTWVzc2FnZUl0ZW1bXTtcclxuICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuIl19
|
|
@@ -25,6 +25,13 @@ export class RsCommentaryComponent {
|
|
|
25
25
|
this.deletePermission = true; // delete权限
|
|
26
26
|
// delete权限
|
|
27
27
|
this.isReadOnly = false;
|
|
28
|
+
this.filedsKey = {
|
|
29
|
+
commentaries: "commentaries",
|
|
30
|
+
messageId: "messageId",
|
|
31
|
+
ownerName: "ownerName",
|
|
32
|
+
lastModifiedOn: "lastModifiedOn",
|
|
33
|
+
messageBody: "messageBody",
|
|
34
|
+
};
|
|
28
35
|
this.actionComplete = new EventEmitter();
|
|
29
36
|
this.commentVal = "";
|
|
30
37
|
this.replyVal = "";
|
|
@@ -56,11 +63,11 @@ export class RsCommentaryComponent {
|
|
|
56
63
|
*/
|
|
57
64
|
(res) => {
|
|
58
65
|
this.commentData.unshift({
|
|
59
|
-
messageId: res.messageId,
|
|
60
|
-
commentaries: [],
|
|
61
|
-
ownerName: this.displayName,
|
|
62
|
-
lastModifiedOn: Date.now(),
|
|
63
|
-
messageBody: this.commentVal,
|
|
66
|
+
[`${this.filedsKey["messageId"]}`]: res.messageId,
|
|
67
|
+
[`${this.filedsKey["commentaries"]}`]: [],
|
|
68
|
+
[`${this.filedsKey["ownerName"]}`]: this.displayName,
|
|
69
|
+
[`${this.filedsKey["lastModifiedOn"]}`]: Date.now(),
|
|
70
|
+
[`${this.filedsKey["messageBody"]}`]: this.commentVal,
|
|
64
71
|
});
|
|
65
72
|
this.commentVal = "";
|
|
66
73
|
}),
|
|
@@ -71,7 +78,7 @@ export class RsCommentaryComponent {
|
|
|
71
78
|
* @return {?}
|
|
72
79
|
*/
|
|
73
80
|
editComment(item) {
|
|
74
|
-
this.editCommentVal = item.messageBody;
|
|
81
|
+
this.editCommentVal = item[this.filedsKey["messageBody"]];
|
|
75
82
|
item.showCommentEdit = true;
|
|
76
83
|
}
|
|
77
84
|
/**
|
|
@@ -88,7 +95,7 @@ export class RsCommentaryComponent {
|
|
|
88
95
|
* @return {?}
|
|
89
96
|
*/
|
|
90
97
|
(res) => {
|
|
91
|
-
item.messageBody = this.editCommentVal;
|
|
98
|
+
item[this.filedsKey["messageBody"]] = this.editCommentVal;
|
|
92
99
|
item.showCommentEdit = false;
|
|
93
100
|
this.ref.markForCheck();
|
|
94
101
|
}),
|
|
@@ -119,7 +126,7 @@ export class RsCommentaryComponent {
|
|
|
119
126
|
* @param {?} ele
|
|
120
127
|
* @return {?}
|
|
121
128
|
*/
|
|
122
|
-
(ele) => ele.messageId === item.messageId));
|
|
129
|
+
(ele) => ele[this.filedsKey.messageId] === item[this.filedsKey.messageId]));
|
|
123
130
|
this.actionComplete.emit({
|
|
124
131
|
action: "deleteComment",
|
|
125
132
|
data: item,
|
|
@@ -148,12 +155,12 @@ export class RsCommentaryComponent {
|
|
|
148
155
|
* @return {?}
|
|
149
156
|
*/
|
|
150
157
|
(res) => {
|
|
151
|
-
item.commentaries.unshift({
|
|
152
|
-
messageId: res.messageId,
|
|
153
|
-
commentaries: [],
|
|
154
|
-
ownerName: this.displayName,
|
|
155
|
-
lastModifiedOn: Date.now(),
|
|
156
|
-
messageBody: this.replyVal,
|
|
158
|
+
item[this.filedsKey["commentaries"]].unshift({
|
|
159
|
+
[`${this.filedsKey["messageId"]}`]: res[this.filedsKey["messageId"]],
|
|
160
|
+
[`${this.filedsKey["commentaries"]}`]: [],
|
|
161
|
+
[`${this.filedsKey["ownerName"]}`]: this.displayName,
|
|
162
|
+
[`${this.filedsKey["lastModifiedOn"]}`]: Date.now(),
|
|
163
|
+
[`${this.filedsKey["messageBody"]}`]: this.replyVal,
|
|
157
164
|
});
|
|
158
165
|
this.replyVal = "";
|
|
159
166
|
item.showReplyInput = false;
|
|
@@ -176,7 +183,7 @@ export class RsCommentaryComponent {
|
|
|
176
183
|
RsCommentaryComponent.decorators = [
|
|
177
184
|
{ type: Component, args: [{
|
|
178
185
|
selector: "rs-commentary",
|
|
179
|
-
template: "<div class=\"rs-commentary-wrap\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment' }\"\r\n ></ng-container>\r\n <div class=\"reply-box\">\r\n <div *ngFor=\"let item of commentData\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment', item: item }\"\r\n ></ng-container>\r\n <div class=\"sub-reply-list\">\r\n <ng-container\r\n *ngFor=\"\r\n let sub of item.isExpanded\r\n ? item.commentaries\r\n : item.commentaries.slice(0, 3)\r\n \"\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'sub', item: sub }\"\r\n ></ng-container>\r\n </div>\r\n <button\r\n class=\"e-btn text\"\r\n *ngIf=\"item.commentaries.length > 3\"\r\n (click)=\"item.isExpanded = !item.isExpanded\"\r\n style=\"margin-bottom: 8px
|
|
186
|
+
template: "<div class=\"rs-commentary-wrap\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment' }\"\r\n ></ng-container>\r\n <div class=\"reply-box\">\r\n <div *ngFor=\"let item of commentData\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment', item: item }\"\r\n ></ng-container>\r\n <div class=\"sub-reply-list\">\r\n <ng-container\r\n *ngFor=\"\r\n let sub of item.isExpanded\r\n ? item[filedsKey.commentaries]\r\n : item[filedsKey.commentaries].slice(0, 3)\r\n \"\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'sub', item: sub }\"\r\n ></ng-container>\r\n </div>\r\n <button\r\n class=\"e-btn text\"\r\n *ngIf=\"item[filedsKey.commentaries].length > 3\"\r\n (click)=\"item.isExpanded = !item.isExpanded\"\r\n style=\"margin-bottom: 8px\"\r\n >\r\n {{\r\n item.isExpanded\r\n ? \"Collapse\"\r\n : \"View All \" + item[filedsKey.commentaries].length + \" Replies\"\r\n }}\r\n <img\r\n class=\"arrow\"\r\n [ngClass]=\"{ collapse: item.isExpanded }\"\r\n src=\"../../assets/img/dropdown-arrow.svg\"\r\n alt=\"\"\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #commentBoxTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"comment-box\">\r\n <div class=\"comment-input-wrap\">\r\n <div class=\"avatar\" *ngIf=\"type !== 'editComment'\">\r\n {{ cf.rtn(displayName) }}\r\n </div>\r\n <textarea\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-input\"\r\n rows=\"2\"\r\n [(ngModel)]=\"commentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n placeholder=\"Write your comment...\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'reply'\"\r\n class=\"e-input\"\r\n rows=\"2\"\r\n [(ngModel)]=\"replyVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n placeholder=\"Write your comment...\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'editComment'\"\r\n class=\"e-input\"\r\n rows=\"2\"\r\n [(ngModel)]=\"editCommentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n placeholder=\"Write your comment...\"\r\n ></textarea>\r\n </div>\r\n <div class=\"btn-wrap\">\r\n <button\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"commentVal === '' || isReadOnly || !editPermission\"\r\n (click)=\"addComment()\"\r\n >\r\n {{ translation.COMMENT || \".COMMENT\" }}\r\n </button>\r\n <ng-container *ngIf=\"type === 'reply'\">\r\n <button\r\n class=\"e-btn small\"\r\n (click)=\"item.showReplyInput = false; replyVal = ''\"\r\n >\r\n {{ translation.CANCEL || \".CANCEL\" }}\r\n </button>\r\n <button\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"replyVal === ''\"\r\n (click)=\"addReply(item)\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"type === 'editComment'\">\r\n <button class=\"e-btn text\" (click)=\"item.showCommentEdit = false\">\r\n <img src=\"../../assets/img/comment-cancel.svg\" alt=\"\" />\r\n </button>\r\n <button\r\n class=\"e-btn text\"\r\n [disabled]=\"editCommentVal === ''\"\r\n (click)=\"updateComment(item)\"\r\n >\r\n <img src=\"../../assets/img/comment-check.svg\" alt=\"\" />\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template #replyItemTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"reply-item\" [ngClass]=\"{ comment: type === 'comment' }\">\r\n <div class=\"avatar\">\r\n {{ cf.rtn(item[filedsKey.ownerName]) }}\r\n </div>\r\n <div class=\"owner-wrap\">\r\n <div class=\"owner-info\">\r\n <div class=\"name\">\r\n {{ item[filedsKey.ownerName] }}\r\n </div>\r\n <div class=\"time\">\r\n {{ item[filedsKey.lastModifiedOn] | date : dateTimePipeFormat }}\r\n </div>\r\n </div>\r\n <div class=\"message-wrap\">\r\n <div class=\"message\" *ngIf=\"!item.showCommentEdit\">\r\n {{ item[filedsKey.messageBody] }}\r\n </div>\r\n <ng-container\r\n *ngIf=\"item.showCommentEdit\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'editComment', item: item }\"\r\n ></ng-container>\r\n </div>\r\n\r\n <button\r\n *ngIf=\"\r\n type === 'comment' && !item.showReplyInput && !item.showCommentEdit\r\n \"\r\n class=\"e-btn text\"\r\n (click)=\"item.showReplyInput = true\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n <ng-container\r\n *ngIf=\"item.showReplyInput\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'reply', item: item }\"\r\n ></ng-container>\r\n\r\n <rs-grid-action *ngIf=\"type === 'comment'\">\r\n <rs-grid-action-item\r\n image=\"Edit\"\r\n [text]=\"translation.EDIT\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n (click)=\"editComment(item)\"\r\n ></rs-grid-action-item>\r\n <rs-grid-action-item\r\n image=\"Delete\"\r\n [text]=\"translation.DELETE\"\r\n [disabled]=\"isReadOnly || !deletePermission\"\r\n (click)=\"deleteComment(item)\"\r\n ></rs-grid-action-item>\r\n </rs-grid-action>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
|
|
180
187
|
styles: [".rs-commentary-wrap{width:100%;height:100%;padding:32px;display:flex;flex-direction:column}.rs-commentary-wrap .comment-box{width:100%}.rs-commentary-wrap .comment-box .comment-input-wrap{margin-bottom:12px;display:flex;gap:12px}.rs-commentary-wrap .comment-box .comment-input-wrap .e-input{flex:1;width:0;height:44px}.rs-commentary-wrap .comment-box .btn-wrap{display:flex;justify-content:flex-end;gap:12px}.rs-commentary-wrap .comment-box .btn-wrap .e-btn.text{padding:4px}.rs-commentary-wrap .reply-box{height:0;flex:1;overflow:auto;margin-top:16px;margin-right:-32px;padding-right:32px}.rs-commentary-wrap .reply-box .sub-reply-list{padding-left:40px}.rs-commentary-wrap .reply-box .e-btn.text{padding:0!important;min-width:auto;height:auto;color:#6c7c90!important}.rs-commentary-wrap .reply-box .e-btn.text:hover{background:0 0!important;color:#1364b3!important}.rs-commentary-wrap .reply-box .e-btn.text:focus{background:0 0!important;color:#6c7c90!important}.rs-commentary-wrap .reply-box .arrow.collapse{transform:rotate(180deg)}.rs-commentary-wrap .reply-box .reply-item{display:flex;gap:12px;padding:12px 0}.rs-commentary-wrap .reply-box .reply-item.comment{border-top:1px solid #eaedf0}.rs-commentary-wrap .reply-box .reply-item.comment:hover{background-color:#f6faff}.rs-commentary-wrap .reply-box .reply-item.comment:hover rs-grid-action{display:block}.rs-commentary-wrap .reply-box .reply-item rs-grid-action{display:none;position:absolute;cursor:pointer;top:-4px;right:8px}.rs-commentary-wrap .reply-box .owner-wrap{flex:1;width:0;position:relative}.rs-commentary-wrap .reply-box .owner-wrap .owner-info{display:flex;align-items:center;gap:12px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .name{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:700;line-height:14px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .time{color:#6c7c90;font-family:Arial;font-size:10px;font-style:normal;font-weight:400;line-height:12px}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap{padding:8px 0}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap .message{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.rs-commentary-wrap .avatar{width:32px;height:32px;border-radius:100%;border:1px solid rgba(108,124,144,.4);color:#44566c;display:flex;align-items:center;justify-content:center;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px}"]
|
|
181
188
|
}] }
|
|
182
189
|
];
|
|
@@ -192,6 +199,7 @@ RsCommentaryComponent.propDecorators = {
|
|
|
192
199
|
editPermission: [{ type: Input }],
|
|
193
200
|
deletePermission: [{ type: Input }],
|
|
194
201
|
isReadOnly: [{ type: Input }],
|
|
202
|
+
filedsKey: [{ type: Input }],
|
|
195
203
|
actionComplete: [{ type: Output }]
|
|
196
204
|
};
|
|
197
205
|
tslib_1.__decorate([
|
|
@@ -230,6 +238,8 @@ if (false) {
|
|
|
230
238
|
/** @type {?} */
|
|
231
239
|
RsCommentaryComponent.prototype.isReadOnly;
|
|
232
240
|
/** @type {?} */
|
|
241
|
+
RsCommentaryComponent.prototype.filedsKey;
|
|
242
|
+
/** @type {?} */
|
|
233
243
|
RsCommentaryComponent.prototype.actionComplete;
|
|
234
244
|
/** @type {?} */
|
|
235
245
|
RsCommentaryComponent.prototype.commentVal;
|
|
@@ -254,4 +264,4 @@ if (false) {
|
|
|
254
264
|
*/
|
|
255
265
|
RsCommentaryComponent.prototype.ref;
|
|
256
266
|
}
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21tZW50YXJ5L2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVE5QyxNQUFNLE9BQU8scUJBQXFCOzs7Ozs7SUFDaEMsWUFDUyxFQUF5QixFQUN4QixNQUFxQixFQUNyQixHQUFzQjtRQUZ2QixPQUFFLEdBQUYsRUFBRSxDQUF1QjtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBSXZCLGdCQUFXLEdBQW1CLEVBQUUsQ0FBQztRQUNqQyxtQkFBYyxHQUFHLElBQUksQ0FBQyxDQUFDLFNBQVM7O1FBQ2hDLHFCQUFnQixHQUFHLElBQUksQ0FBQyxDQUFDLFdBQVc7O1FBQ3BDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFHNUIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFJN0IsQ0FBQztRQUVMLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLHVCQUFrQixHQUFHLHFCQUFxQixDQUFDO0lBbEJ4QyxDQUFDOzs7O0lBb0JKLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7OztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsV0FBVyxHQUFH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QUMsR0FBRyxDQUFDOzs7OzBEQXlCYjtBQUVEO0lBREMsUUFBUSxDQUFDLEdBQUcsQ0FBQzs7OztxREFtQmI7QUFHRDtJQURDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Ozs7aUVBS2I7OztJQWhIRCw0Q0FBNkI7O0lBQzdCLDRDQUEwQzs7SUFDMUMsK0NBQStCOztJQUMvQixpREFBaUM7O0lBQ2pDLDJDQUE0Qjs7SUFFNUIsK0NBS0s7O0lBRUwsMkNBQWdCOztJQUNoQix5Q0FBYzs7SUFDZCwrQ0FBb0I7O0lBQ3BCLG1EQUEyQzs7SUFDM0MsNENBQVk7O0lBdEJWLG1DQUFnQzs7Ozs7SUFDaEMsdUNBQTZCOzs7OztJQUM3QixvQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uRnVuY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlYm91bmNlIH0gZnJvbSBcIi4uL3V0aWxzL2RlY29yYXRvclwiO1xyXG5pbXBvcnQgeyBNZXNzYWdlR3JvdXAgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLWNvbW1lbnRhcnlcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUnNDb21tZW50YXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjZjogQ29tbW9uRnVuY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIEBJbnB1dCgpIGRpc3BsYXlOYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29tbWVudERhdGE6IE1lc3NhZ2VHcm91cFtdID0gW107XHJcbiAgQElucHV0KCkgZWRpdFBlcm1pc3Npb24gPSB0cnVlOyAvLyBlZGl05p2D6ZmQXHJcbiAgQElucHV0KCkgZGVsZXRlUGVybWlzc2lvbiA9IHRydWU7IC8vIGRlbGV0Zeadg+mZkFxyXG4gIEBJbnB1dCgpIGlzUmVhZE9ubHkgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgYWN0aW9uQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGFjdGlvbjogXCJhZGRDb21tZW50XCIgfCBcInVwZGF0ZUNvbW1lbnRcIiB8IFwiZGVsZXRlQ29tbWVudFwiIHwgXCJyZXBseUNvbW1lbnRcIjtcclxuICAgIGRhdGE6IGFueTtcclxuICAgIGNhbGxiYWNrOiAocmVzdWx0OiB7IG1lc3NhZ2VJZDogc3RyaW5nIH0pID0+IHZvaWQ7XHJcbiAgfT4oKTtcclxuXHJcbiAgY29tbWVudFZhbCA9IFwiXCI7XHJcbiAgcmVwbHlWYWwgPSBcIlwiO1xyXG4gIGVkaXRDb21tZW50VmFsID0gXCJcIjtcclxuICBkYXRlVGltZVBpcGVGb3JtYXQgPSBcImRkLU1NTS15eXl5IGhoOm1tOmFcIjtcclxuICB0cmFuc2xhdGlvbjtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0SW5mbygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5mbygpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb24gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidHJhbnNsYXRpb25cIikpO1xyXG4gIH1cclxuXHJcbiAgQERlYm91bmNlKDMwMClcclxuICBhZGRDb21tZW50KCkge1xyXG4gICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcclxuICAgICAgYWN0aW9uOiBcImFkZENvbW1lbnRcIixcclxuICAgICAgZGF0YTogeyBpbnB1dFZhbHVlOiB0aGlzLmNvbW1lbnRWYWwgfSxcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmNvbW1lbnREYXRhLnVuc2hpZnQoe1xyXG4gICAgICAgICAgbWVzc2FnZUlkOiByZXMubWVzc2FnZUlkLFxyXG4gICAgICAgICAgY29tbWVudGFyaWVzOiBbXSxcclxuICAgICAgICAgIG93bmVyTmFtZTogdGhpcy5kaXNwbGF5TmFtZSxcclxuICAgICAgICAgIGxhc3RNb2RpZmllZE9uOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgbWVzc2FnZUJvZHk6IHRoaXMuY29tbWVudFZhbCxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbW1lbnRWYWwgPSBcIlwiO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBlZGl0Q29tbWVudChpdGVtKSB7XHJcbiAgICB0aGlzLmVkaXRDb21tZW50VmFsID0gaXRlbS5tZXNzYWdlQm9keTtcclxuICAgIGl0ZW0uc2hvd0NvbW1lbnRFZGl0ID0gdHJ1ZTtcclxuICB9XHJcbiAgYXN5bmMgdXBkYXRlQ29tbWVudChpdGVtKSB7XHJcbiAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xyXG4gICAgICBhY3Rpb246IFwidXBkYXRlQ29tbWVudFwiLFxyXG4gICAgICBkYXRhOiB7IC4uLml0ZW0sIGlucHV0VmFsdWU6IHRoaXMuZWRpdENvbW1lbnRWYWwgfSxcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICBpdGVtLm1lc3NhZ2VCb2R5ID0gdGhpcy5lZGl0Q29tbWVudFZhbDtcclxuICAgICAgICBpdGVtLnNob3dDb21tZW50RWRpdCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBARGVib3VuY2UoMzAwKVxyXG4gIGRlbGV0ZUNvbW1lbnQoaXRlbSkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cuc2hvd0NvbW1vbkRpbGFvZyh7XHJcbiAgICAgIHRpdGxlOiBcIkRlbGV0ZSBDb21tZW50P1wiLFxyXG4gICAgICBkZXNjcmlwdGlvbjogXCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgQ29tbWVudD9cIixcclxuICAgICAgc2F2ZUJ0bkxhYmVsOiB0aGlzLnRyYW5zbGF0aW9uLkRFTEVURSxcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKCFyZXMpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaWR4ID0gdGhpcy5jb21tZW50RGF0YS5maW5kSW5kZXgoXHJcbiAgICAgICAgKGVsZSkgPT4gZWxlLm1lc3NhZ2VJZCA9PT0gaXRlbS5tZXNzYWdlSWRcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XHJcbiAgICAgICAgYWN0aW9uOiBcImRlbGV0ZUNvbW1lbnRcIixcclxuICAgICAgICBkYXRhOiBpdGVtLFxyXG4gICAgICAgIGNhbGxiYWNrOiAocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbW1lbnREYXRhLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgQERlYm91bmNlKDMwMClcclxuICBhZGRSZXBseShpdGVtKSB7XHJcbiAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xyXG4gICAgICBhY3Rpb246IFwicmVwbHlDb21tZW50XCIsXHJcbiAgICAgIGRhdGE6IHsgLi4uaXRlbSwgaW5wdXRWYWx1ZTogdGhpcy5yZXBseVZhbCB9LFxyXG4gICAgICBjYWxsYmFjazogKHJlcykgPT4ge1xyXG4gICAgICAgIGl0ZW0uY29tbWVudGFyaWVzLnVuc2hpZnQoe1xyXG4gICAgICAgICAgbWVzc2FnZUlkOiByZXMubWVzc2FnZUlkLFxyXG4gICAgICAgICAgY29tbWVudGFyaWVzOiBbXSxcclxuICAgICAgICAgIG93bmVyTmFtZTogdGhpcy5kaXNwbGF5TmFtZSxcclxuICAgICAgICAgIGxhc3RNb2RpZmllZE9uOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgbWVzc2FnZUJvZHk6IHRoaXMucmVwbHlWYWwsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5yZXBseVZhbCA9IFwiXCI7XHJcbiAgICAgICAgaXRlbS5zaG93UmVwbHlJbnB1dCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQERlYm91bmNlKDMwMClcclxuICBhZGp1c3RUZXh0YXJlYUhlaWdodChlKSB7XHJcbiAgICBjb25zdCB0ZXh0YXJlYSA9IGUudGFyZ2V0O1xyXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gXCJhdXRvXCI7XHJcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSB0ZXh0YXJlYS5zY3JvbGxIZWlnaHQgKyBcInB4XCI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21tZW50YXJ5L2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVE5QyxNQUFNLE9BQU8scUJBQXFCOzs7Ozs7SUFDaEMsWUFDUyxFQUF5QixFQUN4QixNQUFxQixFQUNyQixHQUFzQjtRQUZ2QixPQUFFLEdBQUYsRUFBRSxDQUF1QjtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBSXZCLGdCQUFXLEdBQW1CLEVBQUUsQ0FBQztRQUNqQyxtQkFBYyxHQUFHLElBQUksQ0FBQyxDQUFDLFNBQVM7O1FBQ2hDLHFCQUFnQixHQUFHLElBQUksQ0FBQyxDQUFDLFdBQVc7O1FBQ3BDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFHO1lBQ25CLFlBQVksRUFBRSxjQUFjO1lBQzVCLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLGNBQWMsRUFBRSxnQkFBZ0I7WUFDaEMsV0FBVyxFQUFFLGFBQWE7U0FDM0IsQ0FBQztRQUdGLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBSTdCLENBQUM7UUFFTCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxtQkFBYyxHQUFHLEVBQUUsQ0FBQztR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SUFDMUMsK0NBQStCOztJQUMvQixpREFBaUM7O0lBQ2pDLDJDQUE0Qjs7SUFDNUIsMENBTUU7O0lBRUYsK0NBS0s7O0lBRUwsMkNBQWdCOztJQUNoQix5Q0FBYzs7SUFDZCwrQ0FBb0I7O0lBQ3BCLG1EQUEyQzs7SUFDM0MsNENBQVk7O0lBN0JWLG1DQUFnQzs7Ozs7SUFDaEMsdUNBQTZCOzs7OztJQUM3QixvQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uRnVuY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlYm91bmNlIH0gZnJvbSBcIi4uL3V0aWxzL2RlY29yYXRvclwiO1xyXG5pbXBvcnQgeyBNZXNzYWdlR3JvdXAgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLWNvbW1lbnRhcnlcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUnNDb21tZW50YXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjZjogQ29tbW9uRnVuY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIEBJbnB1dCgpIGRpc3BsYXlOYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29tbWVudERhdGE6IE1lc3NhZ2VHcm91cFtdID0gW107XHJcbiAgQElucHV0KCkgZWRpdFBlcm1pc3Npb24gPSB0cnVlOyAvLyBlZGl05p2D6ZmQXHJcbiAgQElucHV0KCkgZGVsZXRlUGVybWlzc2lvbiA9IHRydWU7IC8vIGRlbGV0Zeadg+mZkFxyXG4gIEBJbnB1dCgpIGlzUmVhZE9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBmaWxlZHNLZXkgPSB7XHJcbiAgICBjb21tZW50YXJpZXM6IFwiY29tbWVudGFyaWVzXCIsXHJcbiAgICBtZXNzYWdlSWQ6IFwibWVzc2FnZUlkXCIsXHJcbiAgICBvd25lck5hbWU6IFwib3duZXJOYW1lXCIsXHJcbiAgICBsYXN0TW9kaWZpZWRPbjogXCJsYXN0TW9kaWZpZWRPblwiLFxyXG4gICAgbWVzc2FnZUJvZHk6IFwibWVzc2FnZUJvZHlcIixcclxuICB9O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBhY3Rpb25Db21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgYWN0aW9uOiBcImFkZENvbW1lbnRcIiB8IFwidXBkYXRlQ29tbWVudFwiIHwgXCJkZWxldGVDb21tZW50XCIgfCBcInJlcGx5Q29tbWVudFwiO1xyXG4gICAgZGF0YTogYW55O1xyXG4gICAgY2FsbGJhY2s6IChyZXN1bHQ6IHsgbWVzc2FnZUlkOiBzdHJpbmcgfSkgPT4gdm9pZDtcclxuICB9PigpO1xyXG5cclxuICBjb21tZW50VmFsID0gXCJcIjtcclxuICByZXBseVZhbCA9IFwiXCI7XHJcbiAgZWRpdENvbW1lbnRWYWwgPSBcIlwiO1xyXG4gIGRhdGVUaW1lUGlwZUZvcm1hdCA9IFwiZGQtTU1NLXl5eXkgaGg6bW06YVwiO1xyXG4gIHRyYW5zbGF0aW9uO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5nZXRJbmZvKCk7XHJcbiAgfVxyXG5cclxuICBnZXRJbmZvKCkge1xyXG4gICAgdGhpcy50cmFuc2xhdGlvbiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ0cmFuc2xhdGlvblwiKSk7XHJcbiAgfVxyXG5cclxuICBARGVib3VuY2UoMzAwKVxyXG4gIGFkZENvbW1lbnQoKSB7XHJcbiAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xyXG4gICAgICBhY3Rpb246IFwiYWRkQ29tbWVudFwiLFxyXG4gICAgICBkYXRhOiB7IGlucHV0VmFsdWU6IHRoaXMuY29tbWVudFZhbCB9LFxyXG4gICAgICBjYWxsYmFjazogKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuY29tbWVudERhdGEudW5zaGlmdCh7XHJcbiAgICAgICAgICBbYCR7dGhpcy5maWxlZHNLZXlbXCJtZXNzYWdlSWRcIl19YF06IHJlcy5tZXNzYWdlSWQsXHJcbiAgICAgICAgICBbYCR7dGhpcy5maWxlZHNLZXlbXCJjb21tZW50YXJpZXNcIl19YF06IFtdLFxyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wib3duZXJOYW1lXCJdfWBdOiB0aGlzLmRpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wibGFzdE1vZGlmaWVkT25cIl19YF06IERhdGUubm93KCksXHJcbiAgICAgICAgICBbYCR7dGhpcy5maWxlZHNLZXlbXCJtZXNzYWdlQm9keVwiXX1gXTogdGhpcy5jb21tZW50VmFsLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY29tbWVudFZhbCA9IFwiXCI7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGVkaXRDb21tZW50KGl0ZW0pIHtcclxuICAgIHRoaXMuZWRpdENvbW1lbnRWYWwgPSBpdGVtW3RoaXMuZmlsZWRzS2V5W1wibWVzc2FnZUJvZHlcIl1dO1xyXG4gICAgaXRlbS5zaG93Q29tbWVudEVkaXQgPSB0cnVlO1xyXG4gIH1cclxuICBhc3luYyB1cGRhdGVDb21tZW50KGl0ZW0pIHtcclxuICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XHJcbiAgICAgIGFjdGlvbjogXCJ1cGRhdGVDb21tZW50XCIsXHJcbiAgICAgIGRhdGE6IHsgLi4uaXRlbSwgaW5wdXRWYWx1ZTogdGhpcy5lZGl0Q29tbWVudFZhbCB9LFxyXG4gICAgICBjYWxsYmFjazogKHJlcykgPT4ge1xyXG4gICAgICAgIGl0ZW1bdGhpcy5maWxlZHNLZXlbXCJtZXNzYWdlQm9keVwiXV0gPSB0aGlzLmVkaXRDb21tZW50VmFsO1xyXG4gICAgICAgIGl0ZW0uc2hvd0NvbW1lbnRFZGl0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBEZWJvdW5jZSgzMDApXHJcbiAgZGVsZXRlQ29tbWVudChpdGVtKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5zaG93Q29tbW9uRGlsYW9nKHtcclxuICAgICAgdGl0bGU6IFwiRGVsZXRlIENvbW1lbnQ/XCIsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBDb21tZW50P1wiLFxyXG4gICAgICBzYXZlQnRuTGFiZWw6IHRoaXMudHJhbnNsYXRpb24uREVMRVRFLFxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAoIXJlcykge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBpZHggPSB0aGlzLmNvbW1lbnREYXRhLmZpbmRJbmRleChcclxuICAgICAgICAoZWxlKSA9PiBlbGVbdGhpcy5maWxlZHNLZXkubWVzc2FnZUlkXSA9PT0gaXRlbVt0aGlzLmZpbGVkc0tleS5tZXNzYWdlSWRdXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xyXG4gICAgICAgIGFjdGlvbjogXCJkZWxldGVDb21tZW50XCIsXHJcbiAgICAgICAgZGF0YTogaXRlbSxcclxuICAgICAgICBjYWxsYmFjazogKHJlcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb21tZW50RGF0YS5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIEBEZWJvdW5jZSgzMDApXHJcbiAgYWRkUmVwbHkoaXRlbSkge1xyXG4gICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcclxuICAgICAgYWN0aW9uOiBcInJlcGx5Q29tbWVudFwiLFxyXG4gICAgICBkYXRhOiB7IC4uLml0ZW0sIGlucHV0VmFsdWU6IHRoaXMucmVwbHlWYWwgfSxcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICBpdGVtW3RoaXMuZmlsZWRzS2V5W1wiY29tbWVudGFyaWVzXCJdXS51bnNoaWZ0KHtcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcIm1lc3NhZ2VJZFwiXX1gXTogcmVzW3RoaXMuZmlsZWRzS2V5W1wibWVzc2FnZUlkXCJdXSxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcImNvbW1lbnRhcmllc1wiXX1gXTogW10sXHJcbiAgICAgICAgICBbYCR7dGhpcy5maWxlZHNLZXlbXCJvd25lck5hbWVcIl19YF06IHRoaXMuZGlzcGxheU5hbWUsXHJcbiAgICAgICAgICBbYCR7dGhpcy5maWxlZHNLZXlbXCJsYXN0TW9kaWZpZWRPblwiXX1gXTogRGF0ZS5ub3coKSxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcIm1lc3NhZ2VCb2R5XCJdfWBdOiB0aGlzLnJlcGx5VmFsLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucmVwbHlWYWwgPSBcIlwiO1xyXG4gICAgICAgIGl0ZW0uc2hvd1JlcGx5SW5wdXQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBEZWJvdW5jZSgzMDApXHJcbiAgYWRqdXN0VGV4dGFyZWFIZWlnaHQoZSkge1xyXG4gICAgY29uc3QgdGV4dGFyZWEgPSBlLnRhcmdldDtcclxuICAgIHRleHRhcmVhLnN0eWxlLmhlaWdodCA9IFwiYXV0b1wiO1xyXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gdGV4dGFyZWEuc2Nyb2xsSGVpZ2h0ICsgXCJweFwiO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export function MessageItem() { }
|
|
10
10
|
if (false) {
|
|
11
|
-
/** @type {
|
|
11
|
+
/** @type {?|undefined} */
|
|
12
12
|
MessageItem.prototype.messageId;
|
|
13
|
-
/** @type {
|
|
13
|
+
/** @type {?|undefined} */
|
|
14
14
|
MessageItem.prototype.messageBody;
|
|
15
|
-
/** @type {
|
|
15
|
+
/** @type {?|undefined} */
|
|
16
16
|
MessageItem.prototype.ownerName;
|
|
17
|
-
/** @type {
|
|
17
|
+
/** @type {?|undefined} */
|
|
18
18
|
MessageItem.prototype.lastModifiedOn;
|
|
19
19
|
/* Skipping unhandled member: [key: string]: any;*/
|
|
20
20
|
}
|
|
@@ -23,16 +23,16 @@ if (false) {
|
|
|
23
23
|
*/
|
|
24
24
|
export function MessageGroup() { }
|
|
25
25
|
if (false) {
|
|
26
|
-
/** @type {
|
|
26
|
+
/** @type {?|undefined} */
|
|
27
27
|
MessageGroup.prototype.messageId;
|
|
28
|
-
/** @type {
|
|
28
|
+
/** @type {?|undefined} */
|
|
29
29
|
MessageGroup.prototype.messageBody;
|
|
30
|
-
/** @type {
|
|
30
|
+
/** @type {?|undefined} */
|
|
31
31
|
MessageGroup.prototype.ownerName;
|
|
32
|
-
/** @type {
|
|
32
|
+
/** @type {?|undefined} */
|
|
33
33
|
MessageGroup.prototype.lastModifiedOn;
|
|
34
|
-
/** @type {
|
|
34
|
+
/** @type {?|undefined} */
|
|
35
35
|
MessageGroup.prototype.commentaries;
|
|
36
36
|
/* Skipping unhandled member: [key: string]: any;*/
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21tZW50YXJ5L2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLGlDQU1DOzs7SUFMQyxnQ0FBbUI7O0lBQ25CLGtDQUFxQjs7SUFDckIsZ0NBQW1COztJQUNuQixxQ0FBcUI7Ozs7OztBQUl2QixrQ0FPQzs7O0lBTkMsaUNBQW1COztJQUNuQixtQ0FBcUI7O0lBQ3JCLGlDQUFtQjs7SUFDbkIsc0NBQXFCOztJQUNyQixvQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VJdGVtIHtcclxuICBtZXNzYWdlSWQ/OiBzdHJpbmc7XHJcbiAgbWVzc2FnZUJvZHk/OiBzdHJpbmc7XHJcbiAgb3duZXJOYW1lPzogc3RyaW5nO1xyXG4gIGxhc3RNb2RpZmllZE9uPzogYW55O1xyXG4gIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlR3JvdXAge1xyXG4gIG1lc3NhZ2VJZD86IHN0cmluZztcclxuICBtZXNzYWdlQm9keT86IHN0cmluZztcclxuICBvd25lck5hbWU/OiBzdHJpbmc7XHJcbiAgbGFzdE1vZGlmaWVkT24/OiBhbnk7XHJcbiAgY29tbWVudGFyaWVzPzogTWVzc2FnZUl0ZW1bXTtcclxuICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuIl19
|
|
@@ -20,6 +20,13 @@ var RsCommentaryComponent = /** @class */ (function () {
|
|
|
20
20
|
this.deletePermission = true; // delete权限
|
|
21
21
|
// delete权限
|
|
22
22
|
this.isReadOnly = false;
|
|
23
|
+
this.filedsKey = {
|
|
24
|
+
commentaries: "commentaries",
|
|
25
|
+
messageId: "messageId",
|
|
26
|
+
ownerName: "ownerName",
|
|
27
|
+
lastModifiedOn: "lastModifiedOn",
|
|
28
|
+
messageBody: "messageBody",
|
|
29
|
+
};
|
|
23
30
|
this.actionComplete = new EventEmitter();
|
|
24
31
|
this.commentVal = "";
|
|
25
32
|
this.replyVal = "";
|
|
@@ -60,13 +67,14 @@ var RsCommentaryComponent = /** @class */ (function () {
|
|
|
60
67
|
* @return {?}
|
|
61
68
|
*/
|
|
62
69
|
function (res) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
var _a;
|
|
71
|
+
_this.commentData.unshift((_a = {},
|
|
72
|
+
_a["" + _this.filedsKey["messageId"]] = res.messageId,
|
|
73
|
+
_a["" + _this.filedsKey["commentaries"]] = [],
|
|
74
|
+
_a["" + _this.filedsKey["ownerName"]] = _this.displayName,
|
|
75
|
+
_a["" + _this.filedsKey["lastModifiedOn"]] = Date.now(),
|
|
76
|
+
_a["" + _this.filedsKey["messageBody"]] = _this.commentVal,
|
|
77
|
+
_a));
|
|
70
78
|
_this.commentVal = "";
|
|
71
79
|
}),
|
|
72
80
|
});
|
|
@@ -80,7 +88,7 @@ var RsCommentaryComponent = /** @class */ (function () {
|
|
|
80
88
|
* @return {?}
|
|
81
89
|
*/
|
|
82
90
|
function (item) {
|
|
83
|
-
this.editCommentVal = item.messageBody;
|
|
91
|
+
this.editCommentVal = item[this.filedsKey["messageBody"]];
|
|
84
92
|
item.showCommentEdit = true;
|
|
85
93
|
};
|
|
86
94
|
/**
|
|
@@ -103,7 +111,7 @@ var RsCommentaryComponent = /** @class */ (function () {
|
|
|
103
111
|
* @return {?}
|
|
104
112
|
*/
|
|
105
113
|
function (res) {
|
|
106
|
-
item.messageBody = _this.editCommentVal;
|
|
114
|
+
item[_this.filedsKey["messageBody"]] = _this.editCommentVal;
|
|
107
115
|
item.showCommentEdit = false;
|
|
108
116
|
_this.ref.markForCheck();
|
|
109
117
|
}),
|
|
@@ -141,7 +149,7 @@ var RsCommentaryComponent = /** @class */ (function () {
|
|
|
141
149
|
* @param {?} ele
|
|
142
150
|
* @return {?}
|
|
143
151
|
*/
|
|
144
|
-
function (ele) { return ele.messageId === item.messageId; }));
|
|
152
|
+
function (ele) { return ele[_this.filedsKey.messageId] === item[_this.filedsKey.messageId]; }));
|
|
145
153
|
_this.actionComplete.emit({
|
|
146
154
|
action: "deleteComment",
|
|
147
155
|
data: item,
|
|
@@ -175,13 +183,14 @@ var RsCommentaryComponent = /** @class */ (function () {
|
|
|
175
183
|
* @return {?}
|
|
176
184
|
*/
|
|
177
185
|
function (res) {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
186
|
+
var _a;
|
|
187
|
+
item[_this.filedsKey["commentaries"]].unshift((_a = {},
|
|
188
|
+
_a["" + _this.filedsKey["messageId"]] = res[_this.filedsKey["messageId"]],
|
|
189
|
+
_a["" + _this.filedsKey["commentaries"]] = [],
|
|
190
|
+
_a["" + _this.filedsKey["ownerName"]] = _this.displayName,
|
|
191
|
+
_a["" + _this.filedsKey["lastModifiedOn"]] = Date.now(),
|
|
192
|
+
_a["" + _this.filedsKey["messageBody"]] = _this.replyVal,
|
|
193
|
+
_a));
|
|
185
194
|
_this.replyVal = "";
|
|
186
195
|
item.showReplyInput = false;
|
|
187
196
|
_this.ref.detectChanges();
|
|
@@ -206,7 +215,7 @@ var RsCommentaryComponent = /** @class */ (function () {
|
|
|
206
215
|
RsCommentaryComponent.decorators = [
|
|
207
216
|
{ type: Component, args: [{
|
|
208
217
|
selector: "rs-commentary",
|
|
209
|
-
template: "<div class=\"rs-commentary-wrap\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment' }\"\r\n ></ng-container>\r\n <div class=\"reply-box\">\r\n <div *ngFor=\"let item of commentData\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment', item: item }\"\r\n ></ng-container>\r\n <div class=\"sub-reply-list\">\r\n <ng-container\r\n *ngFor=\"\r\n let sub of item.isExpanded\r\n ? item.commentaries\r\n : item.commentaries.slice(0, 3)\r\n \"\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'sub', item: sub }\"\r\n ></ng-container>\r\n </div>\r\n <button\r\n class=\"e-btn text\"\r\n *ngIf=\"item.commentaries.length > 3\"\r\n (click)=\"item.isExpanded = !item.isExpanded\"\r\n style=\"margin-bottom: 8px
|
|
218
|
+
template: "<div class=\"rs-commentary-wrap\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment' }\"\r\n ></ng-container>\r\n <div class=\"reply-box\">\r\n <div *ngFor=\"let item of commentData\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment', item: item }\"\r\n ></ng-container>\r\n <div class=\"sub-reply-list\">\r\n <ng-container\r\n *ngFor=\"\r\n let sub of item.isExpanded\r\n ? item[filedsKey.commentaries]\r\n : item[filedsKey.commentaries].slice(0, 3)\r\n \"\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'sub', item: sub }\"\r\n ></ng-container>\r\n </div>\r\n <button\r\n class=\"e-btn text\"\r\n *ngIf=\"item[filedsKey.commentaries].length > 3\"\r\n (click)=\"item.isExpanded = !item.isExpanded\"\r\n style=\"margin-bottom: 8px\"\r\n >\r\n {{\r\n item.isExpanded\r\n ? \"Collapse\"\r\n : \"View All \" + item[filedsKey.commentaries].length + \" Replies\"\r\n }}\r\n <img\r\n class=\"arrow\"\r\n [ngClass]=\"{ collapse: item.isExpanded }\"\r\n src=\"../../assets/img/dropdown-arrow.svg\"\r\n alt=\"\"\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #commentBoxTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"comment-box\">\r\n <div class=\"comment-input-wrap\">\r\n <div class=\"avatar\" *ngIf=\"type !== 'editComment'\">\r\n {{ cf.rtn(displayName) }}\r\n </div>\r\n <textarea\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-input\"\r\n rows=\"2\"\r\n [(ngModel)]=\"commentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n placeholder=\"Write your comment...\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'reply'\"\r\n class=\"e-input\"\r\n rows=\"2\"\r\n [(ngModel)]=\"replyVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n placeholder=\"Write your comment...\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'editComment'\"\r\n class=\"e-input\"\r\n rows=\"2\"\r\n [(ngModel)]=\"editCommentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n placeholder=\"Write your comment...\"\r\n ></textarea>\r\n </div>\r\n <div class=\"btn-wrap\">\r\n <button\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"commentVal === '' || isReadOnly || !editPermission\"\r\n (click)=\"addComment()\"\r\n >\r\n {{ translation.COMMENT || \".COMMENT\" }}\r\n </button>\r\n <ng-container *ngIf=\"type === 'reply'\">\r\n <button\r\n class=\"e-btn small\"\r\n (click)=\"item.showReplyInput = false; replyVal = ''\"\r\n >\r\n {{ translation.CANCEL || \".CANCEL\" }}\r\n </button>\r\n <button\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"replyVal === ''\"\r\n (click)=\"addReply(item)\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"type === 'editComment'\">\r\n <button class=\"e-btn text\" (click)=\"item.showCommentEdit = false\">\r\n <img src=\"../../assets/img/comment-cancel.svg\" alt=\"\" />\r\n </button>\r\n <button\r\n class=\"e-btn text\"\r\n [disabled]=\"editCommentVal === ''\"\r\n (click)=\"updateComment(item)\"\r\n >\r\n <img src=\"../../assets/img/comment-check.svg\" alt=\"\" />\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template #replyItemTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"reply-item\" [ngClass]=\"{ comment: type === 'comment' }\">\r\n <div class=\"avatar\">\r\n {{ cf.rtn(item[filedsKey.ownerName]) }}\r\n </div>\r\n <div class=\"owner-wrap\">\r\n <div class=\"owner-info\">\r\n <div class=\"name\">\r\n {{ item[filedsKey.ownerName] }}\r\n </div>\r\n <div class=\"time\">\r\n {{ item[filedsKey.lastModifiedOn] | date : dateTimePipeFormat }}\r\n </div>\r\n </div>\r\n <div class=\"message-wrap\">\r\n <div class=\"message\" *ngIf=\"!item.showCommentEdit\">\r\n {{ item[filedsKey.messageBody] }}\r\n </div>\r\n <ng-container\r\n *ngIf=\"item.showCommentEdit\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'editComment', item: item }\"\r\n ></ng-container>\r\n </div>\r\n\r\n <button\r\n *ngIf=\"\r\n type === 'comment' && !item.showReplyInput && !item.showCommentEdit\r\n \"\r\n class=\"e-btn text\"\r\n (click)=\"item.showReplyInput = true\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n <ng-container\r\n *ngIf=\"item.showReplyInput\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'reply', item: item }\"\r\n ></ng-container>\r\n\r\n <rs-grid-action *ngIf=\"type === 'comment'\">\r\n <rs-grid-action-item\r\n image=\"Edit\"\r\n [text]=\"translation.EDIT\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n (click)=\"editComment(item)\"\r\n ></rs-grid-action-item>\r\n <rs-grid-action-item\r\n image=\"Delete\"\r\n [text]=\"translation.DELETE\"\r\n [disabled]=\"isReadOnly || !deletePermission\"\r\n (click)=\"deleteComment(item)\"\r\n ></rs-grid-action-item>\r\n </rs-grid-action>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
|
|
210
219
|
styles: [".rs-commentary-wrap{width:100%;height:100%;padding:32px;display:flex;flex-direction:column}.rs-commentary-wrap .comment-box{width:100%}.rs-commentary-wrap .comment-box .comment-input-wrap{margin-bottom:12px;display:flex;gap:12px}.rs-commentary-wrap .comment-box .comment-input-wrap .e-input{flex:1;width:0;height:44px}.rs-commentary-wrap .comment-box .btn-wrap{display:flex;justify-content:flex-end;gap:12px}.rs-commentary-wrap .comment-box .btn-wrap .e-btn.text{padding:4px}.rs-commentary-wrap .reply-box{height:0;flex:1;overflow:auto;margin-top:16px;margin-right:-32px;padding-right:32px}.rs-commentary-wrap .reply-box .sub-reply-list{padding-left:40px}.rs-commentary-wrap .reply-box .e-btn.text{padding:0!important;min-width:auto;height:auto;color:#6c7c90!important}.rs-commentary-wrap .reply-box .e-btn.text:hover{background:0 0!important;color:#1364b3!important}.rs-commentary-wrap .reply-box .e-btn.text:focus{background:0 0!important;color:#6c7c90!important}.rs-commentary-wrap .reply-box .arrow.collapse{transform:rotate(180deg)}.rs-commentary-wrap .reply-box .reply-item{display:flex;gap:12px;padding:12px 0}.rs-commentary-wrap .reply-box .reply-item.comment{border-top:1px solid #eaedf0}.rs-commentary-wrap .reply-box .reply-item.comment:hover{background-color:#f6faff}.rs-commentary-wrap .reply-box .reply-item.comment:hover rs-grid-action{display:block}.rs-commentary-wrap .reply-box .reply-item rs-grid-action{display:none;position:absolute;cursor:pointer;top:-4px;right:8px}.rs-commentary-wrap .reply-box .owner-wrap{flex:1;width:0;position:relative}.rs-commentary-wrap .reply-box .owner-wrap .owner-info{display:flex;align-items:center;gap:12px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .name{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:700;line-height:14px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .time{color:#6c7c90;font-family:Arial;font-size:10px;font-style:normal;font-weight:400;line-height:12px}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap{padding:8px 0}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap .message{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.rs-commentary-wrap .avatar{width:32px;height:32px;border-radius:100%;border:1px solid rgba(108,124,144,.4);color:#44566c;display:flex;align-items:center;justify-content:center;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px}"]
|
|
211
220
|
}] }
|
|
212
221
|
];
|
|
@@ -222,6 +231,7 @@ var RsCommentaryComponent = /** @class */ (function () {
|
|
|
222
231
|
editPermission: [{ type: Input }],
|
|
223
232
|
deletePermission: [{ type: Input }],
|
|
224
233
|
isReadOnly: [{ type: Input }],
|
|
234
|
+
filedsKey: [{ type: Input }],
|
|
225
235
|
actionComplete: [{ type: Output }]
|
|
226
236
|
};
|
|
227
237
|
tslib_1.__decorate([
|
|
@@ -263,6 +273,8 @@ if (false) {
|
|
|
263
273
|
/** @type {?} */
|
|
264
274
|
RsCommentaryComponent.prototype.isReadOnly;
|
|
265
275
|
/** @type {?} */
|
|
276
|
+
RsCommentaryComponent.prototype.filedsKey;
|
|
277
|
+
/** @type {?} */
|
|
266
278
|
RsCommentaryComponent.prototype.actionComplete;
|
|
267
279
|
/** @type {?} */
|
|
268
280
|
RsCommentaryComponent.prototype.commentVal;
|
|
@@ -287,4 +299,4 @@ if (false) {
|
|
|
287
299
|
*/
|
|
288
300
|
RsCommentaryComponent.prototype.ref;
|
|
289
301
|
}
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21tZW50YXJ5L2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUc5QztJQU1FLCtCQUNTLEVBQXlCLEVBQ3hCLE1BQXFCLEVBQ3JCLEdBQXNCO1FBRnZCLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFJdkIsZ0JBQVcsR0FBbUIsRUFBRSxDQUFDO1FBQ2pDLG1CQUFjLEdBQUcsSUFBSSxDQUFDLENBQUMsU0FBUzs7UUFDaEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDLENBQUMsV0FBVzs7UUFDcEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUc1QixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUk3QixDQUFDO1FBRUwsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsdUJBQWtCLEdBQUcscUJBQXFCLENBQUM7SUFsQnhDLENBQUM7Ozs7SUFvQkosd0NBQVE7OztJQUFSO1FBQ0UsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7Ozs7SUFFRCx1Q0FBTzs7O0lBQVA7UUFDRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUks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Q0FBQyxHQUFHLENBQUM7Ozs7MkRBZ0JiO0lBbUJEO1FBREMsUUFBUSxDQUFDLEdBQUcsQ0FBQzs7Ozs4REF5QmI7SUFFRDtRQURDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Ozs7eURBbUJiO0lBR0Q7UUFEQyxRQUFRLENBQUMsR0FBRyxDQUFDOzs7O3FFQUtiO0lBQ0gsNEJBQUM7Q0FBQSxBQTdIRCxJQTZIQztTQXhIWSxxQkFBcUI7OztJQU9oQyw0Q0FBNkI7O0lBQzdCLDRDQUEwQzs7SUFDMUMsK0NBQStCOztJQUMvQixpREFBaUM7O0lBQ2pDLDJDQUE0Qjs7SUFFNUIsK0NBS0s7O0lBRUwsMkNBQWdCOztJQUNoQix5Q0FBYzs7SUFDZCwrQ0FBb0I7O0lBQ3BCLG1EQUEyQzs7SUFDM0MsNENBQVk7O0lBdEJWLG1DQUFnQzs7Ozs7SUFDaEMsdUNBQTZCOzs7OztJQUM3QixvQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uRnVuY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlYm91bmNlIH0gZnJvbSBcIi4uL3V0aWxzL2RlY29yYXRvclwiO1xyXG5pbXBvcnQgeyBNZXNzYWdlR3JvdXAgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLWNvbW1lbnRhcnlcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUnNDb21tZW50YXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjZjogQ29tbW9uRnVuY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIEBJbnB1dCgpIGRpc3BsYXlOYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29tbWVudERhdGE6IE1lc3NhZ2VHcm91cFtdID0gW107XHJcbiAgQElucHV0KCkgZWRpdFBlcm1pc3Npb24gPSB0cnVlOyAvLyBlZGl05p2D6ZmQXHJcbiAgQElucHV0KCkgZGVsZXRlUGVybWlzc2lvbiA9IHRydWU7IC8vIGRlbGV0Zeadg+mZkFxyXG4gIEBJbnB1dCgpIGlzUmVhZE9ubHkgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgYWN0aW9uQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGFjdGlvbjogXCJhZGRDb21tZW50XCIgfCBcInVwZGF0ZUNvbW1lbnRcIiB8IFwiZGVsZXRlQ29tbWVudFwiIHwgXCJyZXBseUNvbW1lbnRcIjtcclxuICAgIGRhdGE6IGFueTtcclxuICAgIGNhbGxiYWNrOiAocmVzdWx0OiB7IG1lc3NhZ2VJZDogc3RyaW5nIH0pID0+IHZvaWQ7XHJcbiAgfT4oKTtcclxuXHJcbiAgY29tbWVudFZhbCA9IFwiXCI7XHJcbiAgcmVwbHlWYWwgPSBcIlwiO1xyXG4gIGVkaXRDb21tZW50VmFsID0gXCJcIjtcclxuICBkYXRlVGltZVBpcGVGb3JtYXQgPSBcImRkLU1NTS15eXl5IGhoOm1tOmFcIjtcclxuICB0cmFuc2xhdGlvbjtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0SW5mbygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5mbygpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb24gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidHJhbnNsYXRpb25cIikpO1xyXG4gIH1cclxuXHJcbiAgQERlYm91bmNlKDMwMClcclxuICBhZGRDb21tZW50KCkge1xyXG4gICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcclxuICAgICAgYWN0aW9uOiBcImFkZENvbW1lbnRcIixcclxuICAgICAgZGF0YTogeyBpbnB1dFZhbHVlOiB0aGlzLmNvbW1lbnRWYWwgfSxcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmNvbW1lbnREYXRhLnVuc2hpZnQoe1xyXG4gICAgICAgICAgbWVzc2FnZUlkOiByZXMubWVzc2FnZUlkLFxyXG4gICAgICAgICAgY29tbWVudGFyaWVzOiBbXSxcclxuICAgICAgICAgIG93bmVyTmFtZTogdGhpcy5kaXNwbGF5TmFtZSxcclxuICAgICAgICAgIGxhc3RNb2RpZmllZE9uOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgbWVzc2FnZUJvZHk6IHRoaXMuY29tbWVudFZhbCxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbW1lbnRWYWwgPSBcIlwiO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBlZGl0Q29tbWVudChpdGVtKSB7XHJcbiAgICB0aGlzLmVkaXRDb21tZW50VmFsID0gaXRlbS5tZXNzYWdlQm9keTtcclxuICAgIGl0ZW0uc2hvd0NvbW1lbnRFZGl0ID0gdHJ1ZTtcclxuICB9XHJcbiAgYXN5bmMgdXBkYXRlQ29tbWVudChpdGVtKSB7XHJcbiAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xyXG4gICAgICBhY3Rpb246IFwidXBkYXRlQ29tbWVudFwiLFxyXG4gICAgICBkYXRhOiB7IC4uLml0ZW0sIGlucHV0VmFsdWU6IHRoaXMuZWRpdENvbW1lbnRWYWwgfSxcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICBpdGVtLm1lc3NhZ2VCb2R5ID0gdGhpcy5lZGl0Q29tbWVudFZhbDtcclxuICAgICAgICBpdGVtLnNob3dDb21tZW50RWRpdCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBARGVib3VuY2UoMzAwKVxyXG4gIGRlbGV0ZUNvbW1lbnQoaXRlbSkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cuc2hvd0NvbW1vbkRpbGFvZyh7XHJcbiAgICAgIHRpdGxlOiBcIkRlbGV0ZSBDb21tZW50P1wiLFxyXG4gICAgICBkZXNjcmlwdGlvbjogXCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgQ29tbWVudD9cIixcclxuICAgICAgc2F2ZUJ0bkxhYmVsOiB0aGlzLnRyYW5zbGF0aW9uLkRFTEVURSxcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKCFyZXMpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaWR4ID0gdGhpcy5jb21tZW50RGF0YS5maW5kSW5kZXgoXHJcbiAgICAgICAgKGVsZSkgPT4gZWxlLm1lc3NhZ2VJZCA9PT0gaXRlbS5tZXNzYWdlSWRcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XHJcbiAgICAgICAgYWN0aW9uOiBcImRlbGV0ZUNvbW1lbnRcIixcclxuICAgICAgICBkYXRhOiBpdGVtLFxyXG4gICAgICAgIGNhbGxiYWNrOiAocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbW1lbnREYXRhLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgQERlYm91bmNlKDMwMClcclxuICBhZGRSZXBseShpdGVtKSB7XHJcbiAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xyXG4gICAgICBhY3Rpb246IFwicmVwbHlDb21tZW50XCIsXHJcbiAgICAgIGRhdGE6IHsgLi4uaXRlbSwgaW5wdXRWYWx1ZTogdGhpcy5yZXBseVZhbCB9LFxyXG4gICAgICBjYWxsYmFjazogKHJlcykgPT4ge1xyXG4gICAgICAgIGl0ZW0uY29tbWVudGFyaWVzLnVuc2hpZnQoe1xyXG4gICAgICAgICAgbWVzc2FnZUlkOiByZXMubWVzc2FnZUlkLFxyXG4gICAgICAgICAgY29tbWVudGFyaWVzOiBbXSxcclxuICAgICAgICAgIG93bmVyTmFtZTogdGhpcy5kaXNwbGF5TmFtZSxcclxuICAgICAgICAgIGxhc3RNb2RpZmllZE9uOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgbWVzc2FnZUJvZHk6IHRoaXMucmVwbHlWYWwsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5yZXBseVZhbCA9IFwiXCI7XHJcbiAgICAgICAgaXRlbS5zaG93UmVwbHlJbnB1dCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQERlYm91bmNlKDMwMClcclxuICBhZGp1c3RUZXh0YXJlYUhlaWdodChlKSB7XHJcbiAgICBjb25zdCB0ZXh0YXJlYSA9IGUudGFyZ2V0O1xyXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gXCJhdXRvXCI7XHJcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSB0ZXh0YXJlYS5zY3JvbGxIZWlnaHQgKyBcInB4XCI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21tZW50YXJ5L2luZGV4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUc5QztJQU1FLCtCQUNTLEVBQXlCLEVBQ3hCLE1BQXFCLEVBQ3JCLEdBQXNCO1FBRnZCLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFJdkIsZ0JBQVcsR0FBbUIsRUFBRSxDQUFDO1FBQ2pDLG1CQUFjLEdBQUcsSUFBSSxDQUFDLENBQUMsU0FBUzs7UUFDaEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDLENBQUMsV0FBVzs7UUFDcEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixjQUFTLEdBQUc7WUFDbkIsWUFBWSxFQUFFLGNBQWM7WUFDNUIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsY0FBYyxFQUFFLGdCQUFnQjtZQUNoQyxXQUFXLEVBQUUsYUFBYTtTQUMzQixDQUFDO1FBR0YsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFJN0IsQ0FBQztRQUVMLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLHVCQUFrQixHQUFHLHFCQUFxQixDQUFDO0lBekJ4QyxDQUFDOzs7O0lBMkJKLHdDQUFROzs7SUFBUjtRQUNFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDOzs7O0lBRUQsdUNBQU87OztJQUFQO1FBQ0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDOzs7O0lBR0QsMENBQVU7OztJQUFWO1FBREEsaUJBZ0JDO1FBZEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDdkIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDckMsUUFBUTs7OztZQUFFLFVBQUMsR0FBRzs7Z0JBQ1osS0FBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPO29CQUN0QixHQUFDLEtBQUcsS0FBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUcsSUFBRyxHQUFHLENBQUMsU0FBUztvQkFDakQsR0FBQyxLQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFHLElBQUcsRUFBRTtvQkFDekMsR0FBQyxLQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFHLElBQUcsS0FBSSxDQUFDLFdBQVc7b0JBQ3BELEdBQUMsS0FBRyxLQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFHLElBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDbkQsR0FBQyxLQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFHLElBQUcsS0FBSSxDQUFDLFVBQVU7d0JBQ3JELENBQUM7Z0JBQ0gsS0FBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDdkIsQ0FBQyxDQUFBO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFFRCwyQ0FBVzs7OztJQUFYLFVBQVksSUFBSTtRQUNkLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDOzs7OztJQUNLLDZDQUFhOzs7O0lBQW5CLFVBQW9CLElBQUk7Ozs7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO29CQUN2QixNQUFNLEVBQUUsZUFBZTtvQkFDdkIsSUFBSSx1QkFBTyxJQUFJLElBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEdBQUU7b0JBQ2xELFFBQVE7Ozs7b0JBQUUsVUFBQyxHQUFHO3dCQUNaLElBQUksQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsS0FBSSxDQUFDLGNBQWMsQ0FBQzt3QkFDMUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7d0JBQzdCLEtBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzFCLENBQUMsQ0FBQTtpQkFDRixDQUFDLENBQUM7Ozs7S0FDSjs7Ozs7SUFHRCw2Q0FBYTs7OztJQUFiLFVBQWMsSUFBSTtRQURsQixpQkF5QkM7O1lBdkJPLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQzdDLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsV0FBVyxFQUFFLCtDQUErQztZQUM1RCxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNO1NBQ3RDLENBQUM7UUFDRixTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUzs7OztRQUFDLFVBQUMsR0FBRztZQUNwQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNSLE9BQU87YUFDUjs7Z0JBQ0ssR0FBRyxHQUFHLEtBQUksQ0FBQyxXQUFXLENBQUMsU0FBUzs7OztZQUNwQyxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFoRSxDQUFnRSxFQUMxRTtZQUVELEtBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixNQUFNLEVBQUUsZUFBZTtnQkFDdkIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsUUFBUTs7OztnQkFBRSxVQUFDLEdBQUc7b0JBQ1osS0FBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNoQyxLQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUN6QixLQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMxQixDQUFDLENBQUE7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBRUQsd0NBQVE7Ozs7SUFBUixVQUFTLElBQUk7UUFEYixpQkFtQkM7UUFqQkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDdkIsTUFBTSxFQUFFLGNBQWM7WUFDdEIsSUFBSSx1QkFBTyxJQUFJLElBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEdBQUU7WUFDNUMsUUFBUTs7OztZQUFFLFVBQUMsR0FBRzs7Z0JBQ1osSUFBSSxDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPO29CQUMxQyxHQUFDLEtBQUcsS0FBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUcsSUFBRyxHQUFHLENBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDcEUsR0FBQyxLQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFHLElBQUcsRUFBRTtvQkFDekMsR0FBQyxLQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFHLElBQUcsS0FBSSxDQUFDLFdBQVc7b0JBQ3BELEdBQUMsS0FBRyxLQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFHLElBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDbkQsR0FBQyxLQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFHLElBQUcsS0FBSSxDQUFDLFFBQVE7d0JBQ25ELENBQUM7Z0JBQ0gsS0FBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2dCQUM1QixLQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN6QixLQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLENBQUMsQ0FBQTtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBR0Qsb0RBQW9COzs7O0lBQXBCLFVBQXFCLENBQUM7O1lBQ2QsUUFBUSxHQUFHLENBQUMsQ0FBQyxNQUFNO1FBQ3pCLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUMvQixRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUN2RCxDQUFDOztnQkFuSUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6Qiw2a01BQXFDOztpQkFFdEM7Ozs7Z0JBVFEscUJBQXFCO2dCQUNyQixhQUFhO2dCQVJwQixpQkFBaUI7Ozs4QkF3QmhCLEtBQUs7OEJBQ0wsS0FBSztpQ0FDTCxLQUFLO21DQUNMLEtBQUs7NkJBQ0wsS0FBSzs0QkFDTCxLQUFLO2lDQVFMLE1BQU07O0lBcUJQO1FBREMsUUFBUSxDQUFDLEdBQUcsQ0FBQzs7OzsyREFnQmI7SUFtQkQ7UUFEQyxRQUFRLENBQUMsR0FBRyxDQUFDOzs7OzhEQXlCYjtJQUVEO1FBREMsUUFBUSxDQUFDLEdBQUcsQ0FBQzs7Ozt5REFtQmI7SUFHRDtRQURDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Ozs7cUVBS2I7SUFDSCw0QkFBQztDQUFBLEFBcElELElBb0lDO1NBL0hZLHFCQUFxQjs7O0lBT2hDLDRDQUE2Qjs7SUFDN0IsNENBQTBDOztJQUMxQywrQ0FBK0I7O0lBQy9CLGlEQUFpQzs7SUFDakMsMkNBQTRCOztJQUM1QiwwQ0FNRTs7SUFFRiwrQ0FLSzs7SUFFTCwyQ0FBZ0I7O0lBQ2hCLHlDQUFjOztJQUNkLCtDQUFvQjs7SUFDcEIsbURBQTJDOztJQUMzQyw0Q0FBWTs7SUE3QlYsbUNBQWdDOzs7OztJQUNoQyx1Q0FBNkI7Ozs7O0lBQzdCLG9DQUE4QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21tb25GdW5jdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9jb21tb24tZnVuY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVib3VuY2UgfSBmcm9tIFwiLi4vdXRpbHMvZGVjb3JhdG9yXCI7XHJcbmltcG9ydCB7IE1lc3NhZ2VHcm91cCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtY29tbWVudGFyeVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSc0NvbW1lbnRhcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNmOiBDb21tb25GdW5jdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgQElucHV0KCkgZGlzcGxheU5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKSBjb21tZW50RGF0YTogTWVzc2FnZUdyb3VwW10gPSBbXTtcclxuICBASW5wdXQoKSBlZGl0UGVybWlzc2lvbiA9IHRydWU7IC8vIGVkaXTmnYPpmZBcclxuICBASW5wdXQoKSBkZWxldGVQZXJtaXNzaW9uID0gdHJ1ZTsgLy8gZGVsZXRl5p2D6ZmQXHJcbiAgQElucHV0KCkgaXNSZWFkT25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZpbGVkc0tleSA9IHtcclxuICAgIGNvbW1lbnRhcmllczogXCJjb21tZW50YXJpZXNcIixcclxuICAgIG1lc3NhZ2VJZDogXCJtZXNzYWdlSWRcIixcclxuICAgIG93bmVyTmFtZTogXCJvd25lck5hbWVcIixcclxuICAgIGxhc3RNb2RpZmllZE9uOiBcImxhc3RNb2RpZmllZE9uXCIsXHJcbiAgICBtZXNzYWdlQm9keTogXCJtZXNzYWdlQm9keVwiLFxyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGFjdGlvbkNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBhY3Rpb246IFwiYWRkQ29tbWVudFwiIHwgXCJ1cGRhdGVDb21tZW50XCIgfCBcImRlbGV0ZUNvbW1lbnRcIiB8IFwicmVwbHlDb21tZW50XCI7XHJcbiAgICBkYXRhOiBhbnk7XHJcbiAgICBjYWxsYmFjazogKHJlc3VsdDogeyBtZXNzYWdlSWQ6IHN0cmluZyB9KSA9PiB2b2lkO1xyXG4gIH0+KCk7XHJcblxyXG4gIGNvbW1lbnRWYWwgPSBcIlwiO1xyXG4gIHJlcGx5VmFsID0gXCJcIjtcclxuICBlZGl0Q29tbWVudFZhbCA9IFwiXCI7XHJcbiAgZGF0ZVRpbWVQaXBlRm9ybWF0ID0gXCJkZC1NTU0teXl5eSBoaDptbTphXCI7XHJcbiAgdHJhbnNsYXRpb247XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmdldEluZm8oKTtcclxuICB9XHJcblxyXG4gIGdldEluZm8oKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRyYW5zbGF0aW9uXCIpKTtcclxuICB9XHJcblxyXG4gIEBEZWJvdW5jZSgzMDApXHJcbiAgYWRkQ29tbWVudCgpIHtcclxuICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XHJcbiAgICAgIGFjdGlvbjogXCJhZGRDb21tZW50XCIsXHJcbiAgICAgIGRhdGE6IHsgaW5wdXRWYWx1ZTogdGhpcy5jb21tZW50VmFsIH0sXHJcbiAgICAgIGNhbGxiYWNrOiAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb21tZW50RGF0YS51bnNoaWZ0KHtcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcIm1lc3NhZ2VJZFwiXX1gXTogcmVzLm1lc3NhZ2VJZCxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcImNvbW1lbnRhcmllc1wiXX1gXTogW10sXHJcbiAgICAgICAgICBbYCR7dGhpcy5maWxlZHNLZXlbXCJvd25lck5hbWVcIl19YF06IHRoaXMuZGlzcGxheU5hbWUsXHJcbiAgICAgICAgICBbYCR7dGhpcy5maWxlZHNLZXlbXCJsYXN0TW9kaWZpZWRPblwiXX1gXTogRGF0ZS5ub3coKSxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcIm1lc3NhZ2VCb2R5XCJdfWBdOiB0aGlzLmNvbW1lbnRWYWwsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jb21tZW50VmFsID0gXCJcIjtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZWRpdENvbW1lbnQoaXRlbSkge1xyXG4gICAgdGhpcy5lZGl0Q29tbWVudFZhbCA9IGl0ZW1bdGhpcy5maWxlZHNLZXlbXCJtZXNzYWdlQm9keVwiXV07XHJcbiAgICBpdGVtLnNob3dDb21tZW50RWRpdCA9IHRydWU7XHJcbiAgfVxyXG4gIGFzeW5jIHVwZGF0ZUNvbW1lbnQoaXRlbSkge1xyXG4gICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcclxuICAgICAgYWN0aW9uOiBcInVwZGF0ZUNvbW1lbnRcIixcclxuICAgICAgZGF0YTogeyAuLi5pdGVtLCBpbnB1dFZhbHVlOiB0aGlzLmVkaXRDb21tZW50VmFsIH0sXHJcbiAgICAgIGNhbGxiYWNrOiAocmVzKSA9PiB7XHJcbiAgICAgICAgaXRlbVt0aGlzLmZpbGVkc0tleVtcIm1lc3NhZ2VCb2R5XCJdXSA9IHRoaXMuZWRpdENvbW1lbnRWYWw7XHJcbiAgICAgICAgaXRlbS5zaG93Q29tbWVudEVkaXQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQERlYm91bmNlKDMwMClcclxuICBkZWxldGVDb21tZW50KGl0ZW0pIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLnNob3dDb21tb25EaWxhb2coe1xyXG4gICAgICB0aXRsZTogXCJEZWxldGUgQ29tbWVudD9cIixcclxuICAgICAgZGVzY3JpcHRpb246IFwiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIENvbW1lbnQ/XCIsXHJcbiAgICAgIHNhdmVCdG5MYWJlbDogdGhpcy50cmFuc2xhdGlvbi5ERUxFVEUsXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmICghcmVzKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGlkeCA9IHRoaXMuY29tbWVudERhdGEuZmluZEluZGV4KFxyXG4gICAgICAgIChlbGUpID0+IGVsZVt0aGlzLmZpbGVkc0tleS5tZXNzYWdlSWRdID09PSBpdGVtW3RoaXMuZmlsZWRzS2V5Lm1lc3NhZ2VJZF1cclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XHJcbiAgICAgICAgYWN0aW9uOiBcImRlbGV0ZUNvbW1lbnRcIixcclxuICAgICAgICBkYXRhOiBpdGVtLFxyXG4gICAgICAgIGNhbGxiYWNrOiAocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbW1lbnREYXRhLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgQERlYm91bmNlKDMwMClcclxuICBhZGRSZXBseShpdGVtKSB7XHJcbiAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xyXG4gICAgICBhY3Rpb246IFwicmVwbHlDb21tZW50XCIsXHJcbiAgICAgIGRhdGE6IHsgLi4uaXRlbSwgaW5wdXRWYWx1ZTogdGhpcy5yZXBseVZhbCB9LFxyXG4gICAgICBjYWxsYmFjazogKHJlcykgPT4ge1xyXG4gICAgICAgIGl0ZW1bdGhpcy5maWxlZHNLZXlbXCJjb21tZW50YXJpZXNcIl1dLnVuc2hpZnQoe1xyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wibWVzc2FnZUlkXCJdfWBdOiByZXNbdGhpcy5maWxlZHNLZXlbXCJtZXNzYWdlSWRcIl1dLFxyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wiY29tbWVudGFyaWVzXCJdfWBdOiBbXSxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcIm93bmVyTmFtZVwiXX1gXTogdGhpcy5kaXNwbGF5TmFtZSxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcImxhc3RNb2RpZmllZE9uXCJdfWBdOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wibWVzc2FnZUJvZHlcIl19YF06IHRoaXMucmVwbHlWYWwsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5yZXBseVZhbCA9IFwiXCI7XHJcbiAgICAgICAgaXRlbS5zaG93UmVwbHlJbnB1dCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQERlYm91bmNlKDMwMClcclxuICBhZGp1c3RUZXh0YXJlYUhlaWdodChlKSB7XHJcbiAgICBjb25zdCB0ZXh0YXJlYSA9IGUudGFyZ2V0O1xyXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gXCJhdXRvXCI7XHJcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSB0ZXh0YXJlYS5zY3JvbGxIZWlnaHQgKyBcInB4XCI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|