@colijnit/sharedcomponents 255.1.12 → 255.1.14
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/colijnit-sharedcomponents.umd.js +24 -5
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
- package/colijnit-sharedcomponents.metadata.json +1 -1
- package/esm2015/lib/components/activity-overview-component/component-activity-overview.component.js +36 -12
- package/esm2015/lib/components/activity-overview-component/components/base-activity-overview.component.js +6 -1
- package/esm2015/lib/components/modify-task-form/modify-task-form.component.js +8 -2
- package/esm2015/lib/components/open-activity-list/component-activity-list.component.js +11 -3
- package/esm2015/lib/components/task-modifyer/task-modifier.component.js +7 -1
- package/fesm2015/colijnit-sharedcomponents.js +63 -14
- package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
- package/index.html +2 -2
- package/lib/components/activity-overview-component/components/base-activity-overview.component.d.ts +2 -0
- package/lib/components/activity-overview-component/style/_layout.scss +63 -39
- package/lib/components/modify-task-form/modify-task-form.component.d.ts +2 -0
- package/lib/components/open-activity-list/component-activity-list.component.d.ts +1 -0
- package/lib/components/task-modifyer/task-modifier.component.d.ts +2 -0
- package/{main.fb2a972348d07d7127fb.js → main.f010af331eeb875858fe.js} +1 -1
- package/package.json +2 -2
- package/{styles.8fce26887e7ff9657567.css → styles.eab53d84c672390d990a.css} +1 -1
|
@@ -120,6 +120,10 @@ export class ComponentActivityListComponent extends BaseActivityListComponent {
|
|
|
120
120
|
this.getTheActivities();
|
|
121
121
|
this.refreshRequested.emit();
|
|
122
122
|
}
|
|
123
|
+
handleFormTriggerFired() {
|
|
124
|
+
this.getTheActivities();
|
|
125
|
+
this.refreshRequested.emit();
|
|
126
|
+
}
|
|
123
127
|
handleFormCreation() {
|
|
124
128
|
this.formCreated.next();
|
|
125
129
|
}
|
|
@@ -201,9 +205,11 @@ ComponentActivityListComponent.decorators = [
|
|
|
201
205
|
(activityChange)="handleChangedActivity(index, $event)"
|
|
202
206
|
(activityDeleted)="deleteActivity($event)"
|
|
203
207
|
(genericTriggerFired)="handleGenericTriggerFired($event)"
|
|
208
|
+
(formTriggerFired)="handleFormTriggerFired()"
|
|
204
209
|
(triggerFired)="handleTriggerFired($event)"
|
|
205
210
|
(linkClicked)="linkClicked.emit($event)"
|
|
206
|
-
(formCreated)="handleFormCreation()"
|
|
211
|
+
(formCreated)="handleFormCreation()"
|
|
212
|
+
[class.bottom-task]="activityViewModel.activity.IsTask"></co-component-activity-overview>
|
|
207
213
|
</ng-container>
|
|
208
214
|
</co-collapsible>
|
|
209
215
|
</ng-container>
|
|
@@ -221,9 +227,11 @@ ComponentActivityListComponent.decorators = [
|
|
|
221
227
|
(activityChange)="handleChangedActivity(index, $event)"
|
|
222
228
|
(activityDeleted)="deleteActivity($event)"
|
|
223
229
|
(genericTriggerFired)="handleGenericTriggerFired($event)"
|
|
230
|
+
(formTriggerFired)="handleFormTriggerFired()"
|
|
224
231
|
(triggerFired)="handleTriggerFired($event)"
|
|
225
232
|
(linkClicked)="linkClicked.emit($event)"
|
|
226
|
-
(formCreated)="handleFormCreation()"
|
|
233
|
+
(formCreated)="handleFormCreation()"
|
|
234
|
+
[class.bottom-task]="activityViewModel.activity.IsTask"></co-component-activity-overview>
|
|
227
235
|
</ng-container>
|
|
228
236
|
</co-collapsible>
|
|
229
237
|
</ng-container>
|
|
@@ -278,4 +286,4 @@ __decorate([
|
|
|
278
286
|
__decorate([
|
|
279
287
|
InputBoolean()
|
|
280
288
|
], ComponentActivityListComponent.prototype, "noFreeTasks", void 0);
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWFjdGl2aXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3Blbi1hY3Rpdml0eS1saXN0L2NvbXBvbmVudC1hY3Rpdml0eS1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFBRSxXQUFXLEVBQ3pCLEtBQUssRUFFTCxNQUFNLEVBRU4sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBSXJFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ3RGLE9BQU8sRUFFTCxrQ0FBa0MsRUFDbkMsTUFBTSxvREFBb0QsQ0FBQztBQUM1RCxPQUFPLEVBQ0wsaUNBQWlDLEVBQ2xDLE1BQU0sOEVBQThFLENBQUM7QUFDdEYsT0FBTyxFQUVMLCtCQUErQixFQUNoQyxNQUFNLDZEQUE2RCxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQTZFM0QsTUFBTSxPQUFPLDhCQUErQixTQUFRLHlCQUF5QjtJQStGM0UsWUFBc0Is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TyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7d0JBQ3ZELFVBQVUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7cUJBQ3pELENBQUM7b0JBQ0YsT0FBTyxDQUFDLGFBQWEsRUFBRTt3QkFDbkIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLENBQUMsQ0FBQzt3QkFDbEQsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsZ0NBQWdDLEVBQUMsQ0FBQyxDQUFDO3dCQUN4RSxVQUFVLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7cUJBQ2pFLENBQUM7aUJBQ0w7YUFDSjs7O1lBNUVPLGFBQWE7OzttQ0FtRmhCLFlBQVksU0FBQyxpQ0FBaUM7d0JBRzlDLFdBQVcsU0FBQyxrQ0FBa0M7b0JBSzlDLEtBQUs7a0JBVUwsS0FBSztpQ0FVTCxLQUFLO3dCQUlMLEtBQUs7MEJBSUwsS0FBSzswQkFJTCxLQUFLOzBCQUdMLEtBQUs7eUJBR0wsS0FBSzt3Q0FHTCxLQUFLO21FQUdMLEtBQUs7NEJBR0wsTUFBTTtvQ0FHTixNQUFNOzBCQUdOLE1BQU07MEJBR04sTUFBTTsrQkFHTixNQUFNOzZDQUdOLE1BQU07NkJBcUROLEtBQUs7O0FBN0ZOO0lBREMsWUFBWSxFQUFFOzBFQUMyQjtBQUkxQztJQURDLFlBQVksRUFBRTtpRUFDbUI7QUFJbEM7SUFEQyxZQUFZLEVBQUU7bUVBQ3FCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7QmFzZUFjdGl2aXR5TGlzdENvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYXNlLW9wZW4tYWN0aXZpdHktbGlzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW5cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHkuYm9cIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7QWN0aXZpdHlUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9hY3Rpdml0eS10eXBlXCI7XHJcbmltcG9ydCB7QWN0aXZpdHlWaWV3TW9kZWx9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS12aWV3LW1vZGVsXCI7XHJcbmltcG9ydCB7UGVyc29uYWxBY3Rpdml0eVRhYkVudW19IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3BlcnNvbmFsLWFjdGl2aXR5LXRhYi5lbnVtXCI7XHJcbmltcG9ydCB7QWN0aXZpdHlTb3J0VHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vYWN0aXZpdHktc29ydC10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtcclxuICBPcGVyYXRpb25DYWxsYmFja1NpbXBsZUZ1bmN0aW9uLFxyXG4gIE9wZXJhdGlvbldpdGhBbHdheXNTdWNjZXNzQ2FsbGJhY2tcclxufSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlL29wZXJhdGlvbi1jYWxsYmFjay1zaW1wbGUtZnVuY3Rpb25cIjtcclxuaW1wb3J0IHtcclxuICBQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnRcclxufSBmcm9tIFwiLi9jb21wb25lbnRzL3BlcnNvbmFsLWFjdGl2aXR5LW92ZXJ2aWV3L3BlcnNvbmFsLWFjdGl2aXR5LW92ZXJ2aWV3LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIE9wZXJhdGlvbkNhbGxiYWNrRnVuY3Rpb25XaXRoVmFsaWRhdGlvbixcclxuICBPcGVyYXRpb25XaXRoVmFsaWRhdGlvbkNhbGxiYWNrXHJcbn0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZS9vcGVyYXRpb24tY2FsbGJhY2stZnVuY3Rpb24td2l0aC12YWxpZGF0aW9uXCI7XHJcbmltcG9ydCB7U2hhcmVkU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uvc2hhcmVkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUYWJsZU5hbWV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3RhYmxlLW5hbWUuZW51bVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28tY29tcG9uZW50LWFjdGl2aXR5LWxpc3RcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGNvLWFjdGl2aXR5LWxpc3QtaGVhZGVyXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dBY3Rpdml0eUhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FDVElWSVRJRVMnXCJcclxuICAgICAgICAgICAgICAgIFt0YWJsZV09XCJ0YWJsZVwiXHJcbiAgICAgICAgICAgICAgICBba2V5XT1cImtleVwiXHJcbiAgICAgICAgICAgICAgICBbKHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzKV09XCJzaG93VXNlcmdyb3VwQWN0aXZpdGllc1wiXHJcbiAgICAgICAgICAgICAgICBbKHNlYXJjaFRleHQpXT1cInNlYXJjaFRleHRcIlxyXG4gICAgICAgICAgICAgICAgKHBlcmlvZEZpbHRlckNsaWNrZWQpPVwiZG9GaWx0ZXJDbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHNlYXJjaFRleHRDaGFuZ2UpPVwiYXBwbHlGaWx0ZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAoc2hvd1VzZXJncm91cEFjdGl2aXRpZXNDaGFuZ2UpPVwic2hvd1VzZXJncm91cEFjdGl2aXRpZXNDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICBbc2V0SGFzUGF1c2VkTm90aWZpY2F0aW9uc0ZvcldvcmtmbG93UHJvY2Vzc09wZXJhdGlvbl09XCJzZXRIYXNQYXVzZWROb3RpZmljYXRpb25zRm9yV29ya2Zsb3dQcm9jZXNzT3BlcmF0aW9uXCJcclxuICAgICAgICA+PC9jby1hY3Rpdml0eS1saXN0LWhlYWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktbGlzdC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktdGFiLWNvbnRlbnQgbWluaS1zY3JvbGxiYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpdml0eUxpc3RWaWV3TW9kZWwgb2YgcHJpdmF0ZUFjdGl2aXR5TGlzdFZpZXdNb2RlbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1jb2xsYXBzaWJsZSAqbmdJZj1cImFjdGl2aXR5TGlzdFZpZXdNb2RlbC5zaG93aW5nXCIgI2NvbGxhcHNlYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJUaXRsZV09XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwubGFiZWwgKyAnICcgKyBhY3Rpdml0eUxpc3RWaWV3TW9kZWwuYW1vdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGV4cGFuZGVkKV09XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwuZXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGl2aXR5Vmlld01vZGVsIG9mIGFjdGl2aXR5TGlzdFZpZXdNb2RlbC5hY3Rpdml0aWVzOyB0cmFja0J5OiB0cmFja0J5Rm47IGxldCBpbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tY29tcG9uZW50LWFjdGl2aXR5LW92ZXJ2aWV3ICpuZ0lmPVwiYWN0aXZpdHlWaWV3TW9kZWwuc2hvd2luZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlld01vZGVsXT1cImFjdGl2aXR5Vmlld01vZGVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1c2VyUmVsYXRpb25JZF09XCJyZWxhdGlvbklkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1c2VyR3JvdXBJZF09XCJ1c2VyR3JvdXBJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aXZpdHlDaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlZEFjdGl2aXR5KGluZGV4LCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eURlbGV0ZWQpPVwiZGVsZXRlQWN0aXZpdHkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2VuZXJpY1RyaWdnZXJGaXJlZCk9XCJoYW5kbGVHZW5lcmljVHJpZ2dlckZpcmVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyaWdnZXJGaXJlZCk9XCJoYW5kbGVUcmlnZ2VyRmlyZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlua0NsaWNrZWQpPVwibGlua0NsaWNrZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtQ3JlYXRlZCk9XCJoYW5kbGVGb3JtQ3JlYXRpb24oKVwiPjwvY28tY29tcG9uZW50LWFjdGl2aXR5LW92ZXJ2aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LXRhYi1jb250ZW50IG1pbmktc2Nyb2xsYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aXZpdHlMaXN0Vmlld01vZGVsIG9mIHByaXZhdGVEZWxlZ2F0ZWRBY3Rpdml0eUxpc3RWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjby1jb2xsYXBzaWJsZSAqbmdJZj1cImFjdGl2aXR5TGlzdFZpZXdNb2RlbC5zaG93aW5nXCIgI2NvbGxhcHNlYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlclRpdGxlXT1cImFjdGl2aXR5TGlzdFZpZXdNb2RlbC5sYWJlbCArICcgJyArIGFjdGl2aXR5TGlzdFZpZXdNb2RlbC5hbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhleHBhbmRlZCldPVwiYWN0aXZpdHlMaXN0Vmlld01vZGVsLmV4cGFuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpdml0eVZpZXdNb2RlbCBvZiBhY3Rpdml0eUxpc3RWaWV3TW9kZWwuYWN0aXZpdGllczsgdHJhY2tCeTogdHJhY2tCeUZuOyBsZXQgaW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWNvbXBvbmVudC1hY3Rpdml0eS1vdmVydmlldyAqbmdJZj1cImFjdGl2aXR5Vmlld01vZGVsLnNob3dpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZpZXdNb2RlbF09XCJhY3Rpdml0eVZpZXdNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXNlclJlbGF0aW9uSWRdPVwicmVsYXRpb25JZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXNlckdyb3VwSWRdPVwidXNlckdyb3VwSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImhhbmRsZUNoYW5nZWRBY3Rpdml0eShpbmRleCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aXZpdHlEZWxldGVkKT1cImRlbGV0ZUFjdGl2aXR5KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdlbmVyaWNUcmlnZ2VyRmlyZWQpPVwiaGFuZGxlR2VuZXJpY1RyaWdnZXJGaXJlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmlnZ2VyRmlyZWQpPVwiaGFuZGxlVHJpZ2dlckZpcmVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmtDbGlja2VkKT1cImxpbmtDbGlja2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybUNyZWF0ZWQpPVwiaGFuZGxlRm9ybUNyZWF0aW9uKClcIj48L2NvLWNvbXBvbmVudC1hY3Rpdml0eS1vdmVydmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWNvbGxhcHNpYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICB0cmlnZ2VyKFwic2hvd0hpZGVDb250ZW50XCIsIFtcclxuICAgICAgICAgICAgc3RhdGUoXCJ2b2lkXCIsIHN0eWxlKHt0cmFuc2Zvcm06IFwic2NhbGVZKDApXCIsIG9wYWNpdHk6IDB9KSksXHJcbiAgICAgICAgICAgIHN0YXRlKFwiKlwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInNjYWxlWSgxKVwiLCBvcGFjaXR5OiAxfSkpLFxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKGB2b2lkIDw9PiAqYCwgYW5pbWF0ZShcIjIwMG1zIGVhc2UtaW4tb3V0XCIpKVxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIHRyaWdnZXIoXCJzaG93SGlkZVRhYlwiLCBbXHJcbiAgICAgICAgICAgIHN0YXRlKFwiVE9ET1wiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoMClcIn0pKSxcclxuICAgICAgICAgICAgc3RhdGUoXCJERUxFR0FURURcIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKGNhbGMoLTEwMCUgLSAyMHB4KSlcIn0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbihgVE9ETyA8PT4gREVMRUdBVEVEYCwgYW5pbWF0ZShcIjIwMG1zIGVhc2UtaW4tb3V0XCIpKVxyXG4gICAgICAgIF0pXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRBY3Rpdml0eUxpc3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlQWN0aXZpdHlMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAgIHB1YmxpYyByZWFkb25seSB0YWJzOiB0eXBlb2YgUGVyc29uYWxBY3Rpdml0eVRhYkVudW0gPSBQZXJzb25hbEFjdGl2aXR5VGFiRW51bTtcclxuICAgIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGl2aXR5Q2xhc3M6IHR5cGVvZiBBY3Rpdml0eSA9IEFjdGl2aXR5O1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGl2aXR5U29ydFR5cGU6IHR5cGVvZiBBY3Rpdml0eVNvcnRUeXBlID0gQWN0aXZpdHlTb3J0VHlwZTtcclxuXHJcbiAgICBAVmlld0NoaWxkcmVuKFBlcnNvbmFsQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudClcclxuICAgIHB1YmxpYyBhY3Rpdml0eU92ZXJ2aWV3TGlzdDogUXVlcnlMaXN0PFBlcnNvbmFsQWN0aXZpdHlPdmVydmlld0NvbXBvbmVudD47XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tY29tcG9uZW50LWFjdGl2aXR5LWxpc3RcIilcclxuICAgIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHRhYmxlKHZhbHVlOiBUYWJsZU5hbWUpIHtcclxuICAgICAgICB0aGlzLl90YWJsZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZ2V0VGhlQWN0aXZpdGllcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdGFibGUoKTogVGFibGVOYW1lIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGU7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQga2V5KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9rZXkgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGtleSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9rZXk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIHNob3dBY3Rpdml0eUhlYWRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGhpZGVUaXRsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBub0ZyZWVUYXNrczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY3VzdG9tVGl0bGU6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHVzZXJHcm91cElkOiBudW1iZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByZWxhdGlvbklkOiBudW1iZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjb21wb25lbnRBY3Rpdml0aWVzTWV0aG9kOiBPcGVyYXRpb25DYWxsYmFja1NpbXBsZUZ1bmN0aW9uID0gT3BlcmF0aW9uV2l0aEFsd2F5c1N1Y2Nlc3NDYWxsYmFjaztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldEhhc1BhdXNlZE5vdGlmaWNhdGlvbnNGb3JXb3JrZmxvd1Byb2Nlc3NPcGVyYXRpb246IE9wZXJhdGlvbkNhbGxiYWNrRnVuY3Rpb25XaXRoVmFsaWRhdGlvbiA9IE9wZXJhdGlvbldpdGhWYWxpZGF0aW9uQ2FsbGJhY2s7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgb3BlbkxpbmtDbGljazogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgYW1vdW50QWN0aXZpdHlDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGxpbmtDbGlja2VkOiBFdmVudEVtaXR0ZXI8e21vZHVsZTogc3RyaW5nLCBpZDogc3RyaW5nfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHttb2R1bGU6IHN0cmluZywgaWQ6IHN0cmluZ30+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZm9ybUNyZWF0ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWZyZXNoUmVxdWVzdGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1VzZXJncm91cEFjdGl2aXRpZXNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgcHVibGljIGFjdGl2ZVRhYjogUGVyc29uYWxBY3Rpdml0eVRhYkVudW0gPSBQZXJzb25hbEFjdGl2aXR5VGFiRW51bS5UT0RPO1xyXG5cclxuICAgIC8qcHVibGljIGFjdGl2aXR5U29ydExpc3Q6IGJvb2xlYW5bXSA9IFtdOyovXHJcblxyXG4gICAgcHVibGljIGFjdGl2aXR5TGlzdDogQWN0aXZpdHlWaWV3TW9kZWxbXSA9IFtdO1xyXG5cclxuICAgIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgdm06IEFjdGl2aXR5Vmlld01vZGVsKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdm0uYWN0aXZpdHkuaWQgKyAnXycgKyB2bS5hY3Rpdml0eS53b3JrZmxvdy5jb21iaW5lZFRyaWdnZXJJZHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdGFibGU6IFRhYmxlTmFtZTtcclxuICAgIHByaXZhdGUgX2tleTogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICAgIHByaXZhdGUgX2FjdGl2aXRpZXNMaXN0OiBBY3Rpdml0eVtdID0gW107XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgICAgICAvKnRoaXMuX3N1YnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5fYXBwRXZlbnRTZXJ2aWNlLnRhc2tDcmVhdGVkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHRoaXMuX2FwcEV2ZW50U2VydmljZS50YXNrTW9kaWZpZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGhlQWN0aXZpdGllcygpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7Ki9cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvL3RoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWN0aXZpdGllcygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgaWYgKHRoaXMudGFibGUgJiYgdGhpcy5rZXkpIHtcclxuICAgICAgICBjb25zdCBhbGxBY3Rpdml0aWVzOiBBY3Rpdml0eVtdID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldENvbXBvbmVudEFjdGl2aXRpZXNXaXRob3V0UmVsYXRpb25GaWx0ZXJpbmcodGhpcy50YWJsZSwgdGhpcy5rZXkpO1xyXG4gICAgICAgIGlmIChhbGxBY3Rpdml0aWVzKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXRpZXMgPSB0aGlzLm5vRnJlZVRhc2tzID8gYWxsQWN0aXZpdGllcy5maWx0ZXIoYWEgPT4gIWFhLnRhc2spIDogYWxsQWN0aXZpdGllcztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0aWVzID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYW1vdW50QWN0aXZpdHlDaGFuZ2VkLm5leHQodGhpcy5hY3Rpdml0aWVzLmxlbmd0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBhY3Rpdml0aWVzTGlzdChhbGxBY3Rpdml0aWVzOiBBY3Rpdml0eVtdKSB7XHJcbiAgICAgIHRoaXMuX2FjdGl2aXRpZXNMaXN0ID0gYWxsQWN0aXZpdGllcztcclxuICAgICAgaWYgKGFsbEFjdGl2aXRpZXMpIHtcclxuICAgICAgICB0aGlzLmFjdGl2aXRpZXMgPSB0aGlzLm5vRnJlZVRhc2tzID8gYWxsQWN0aXZpdGllcy5maWx0ZXIoYWEgPT4gIWFhLnRhc2spIDogYWxsQWN0aXZpdGllcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmFjdGl2aXRpZXMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgYWN0aXZpdGllc0xpc3QoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hY3Rpdml0aWVzTGlzdDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0RGVsZWdhdGVkQWN0aXZpdGllcygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICAvLyBjb25zdCBhbGxBY3Rpdml0aWVzOiBBY3Rpdml0eVtdID0gYXdhaXQgdGhpcy5fYWN0aXZpdHlSZXBvLmdldENvbXBvbmVudEFjdGl2aXRpZXModGhpcy50YWJsZSwgdGhpcy5rZXkpO1xyXG4gICAgICAgIC8vIHRoaXMuZGVsZWdhdGVkQWN0aXZpdGllcyA9IGFsbEFjdGl2aXRpZXMgPyBhbGxBY3Rpdml0aWVzLmZpbHRlcihhYSA9PiBhYS5hY3Rpdml0eVR5cGUgIT09IEFjdGl2aXR5VHlwZS5Xb3JrZmxvd1Rhc2spIDogW107XHJcbiAgICB9XHJcblxyXG4gICAgLyovL1RPRE8gdGhlcmUgd2VyZSBhbHJlYWR5IHVudXNlZCBiZWZvcmUgdGhlIG1vdmUuIENhbiB0aGV5IGdvP1xyXG4gICAgcHVibGljIGhhbmRsZU9wZW5MaW5rKGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub3BlbkxpbmtDbGljay5uZXh0KGFjdGl2aXR5KTtcclxuICAgIH0qL1xyXG5cclxuICAgIHB1YmxpYyBzaG93VXNlcmdyb3VwQWN0aXZpdGllc0NoYW5nZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzQ2hhbmdlZC5uZXh0KClcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlVHJpZ2dlckZpcmVkKGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZ2V0VGhlQWN0aXZpdGllcygpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFJlcXVlc3RlZC5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUdlbmVyaWNUcmlnZ2VyRmlyZWQoYWN0aXZpdHk6IEFjdGl2aXR5KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoUmVxdWVzdGVkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlRm9ybUNyZWF0aW9uKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybUNyZWF0ZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVDaGFuZ2VkQWN0aXZpdHkoaWR4OiBudW1iZXIsIGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2aXRpZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5hY3Rpdml0aWVzW2lkeF0gPSBhY3Rpdml0eTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRlbGV0ZUFjdGl2aXR5KGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYW1vdW50QWN0aXZpdHlDaGFuZ2VkLm5leHQodGhpcy5hY3Rpdml0aWVzLmxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5yZXNldCgpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZpdHlMaXN0ID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRvRmlsdGVyQ2xpY2tlZChmaWx0ZXI6IHsgZnJvbTogRGF0ZSwgdG86IERhdGUgfSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChmaWx0ZXIuZnJvbSAmJiBmaWx0ZXIudG8pIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGcm9tID0gbmV3IERhdGUoZmlsdGVyLmZyb20pO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZyb20uc2V0SG91cnMoMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRnJvbS5zZXRNaW51dGVzKDApO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZyb20uc2V0U2Vjb25kcygwKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJUbyA9IG5ldyBEYXRlKGZpbHRlci50byk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8uc2V0SG91cnMoMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8uc2V0TWludXRlcygwKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJUby5zZXRTZWNvbmRzKDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRnJvbSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJUbyA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hcHBseUZpbHRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvcGVuRmlyc3RUYXNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5hY3Rpdml0aWVzKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdGFza3M6IEFjdGl2aXR5W10gPSB0aGlzLmFjdGl2aXRpZXMuZmlsdGVyKCh2YWx1ZSA9PiB2YWx1ZS5Jc1Rhc2spKTtcclxuICAgICAgICBpZiAodGFza3MgJiYgdGFza3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBhY3Rpdml0eU92ZXJ2aWV3czogUGVyc29uYWxBY3Rpdml0eU92ZXJ2aWV3Q29tcG9uZW50W10gPSB0aGlzLmFjdGl2aXR5T3ZlcnZpZXdMaXN0LnRvQXJyYXkoKTtcclxuICAgICAgICAgICAgaWYgKGFjdGl2aXR5T3ZlcnZpZXdzICYmIGFjdGl2aXR5T3ZlcnZpZXdzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGVuOiBudW1iZXIgPSBhY3Rpdml0eU92ZXJ2aWV3cy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZpdHlPdmVydmlld3NbaV0uYWN0aXZpdHkuZ2V0SWQoKSA9PT0gdGFza3NbMF0uZ2V0SWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eU92ZXJ2aWV3c1tpXS5zdGFydE1vZGlmeWluZ1Rhc2soKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWFjdGl2aXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb3Blbi1hY3Rpdml0eS1saXN0L2NvbXBvbmVudC1hY3Rpdml0eS1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFBRSxXQUFXLEVBQ3pCLEtBQUssRUFFTCxNQUFNLEVBRU4sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBSXJFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ3RGLE9BQU8sRUFFTCxrQ0FBa0MsRUFDbkMsTUFBTSxvREFBb0QsQ0FBQztBQUM1RCxPQUFPLEVBQ0wsaUNBQWlDLEVBQ2xDLE1BQU0sOEVBQThFLENBQUM7QUFDdEYsT0FBTyxFQUVMLCtCQUErQixFQUNoQyxNQUFNLDZEQUE2RCxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQWlGM0QsTUFBTSxPQUFPLDhCQUErQixTQUFRLHlCQUF5QjtJQStGM0UsWUFBc0Is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QVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzt3QkFDMUQsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO3dCQUN2RCxVQUFVLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3FCQUN6RCxDQUFDO29CQUNGLE9BQU8sQ0FBQyxhQUFhLEVBQUU7d0JBQ25CLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLGVBQWUsRUFBQyxDQUFDLENBQUM7d0JBQ2xELEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLGdDQUFnQyxFQUFDLENBQUMsQ0FBQzt3QkFDeEUsVUFBVSxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3FCQUNqRSxDQUFDO2lCQUNMO2FBQ0o7OztZQWhGTyxhQUFhOzs7bUNBdUZoQixZQUFZLFNBQUMsaUNBQWlDO3dCQUc5QyxXQUFXLFNBQUMsa0NBQWtDO29CQUs5QyxLQUFLO2tCQVVMLEtBQUs7aUNBVUwsS0FBSzt3QkFJTCxLQUFLOzBCQUlMLEtBQUs7MEJBSUwsS0FBSzswQkFHTCxLQUFLO3lCQUdMLEtBQUs7d0NBR0wsS0FBSzttRUFHTCxLQUFLOzRCQUdMLE1BQU07b0NBR04sTUFBTTswQkFHTixNQUFNOzBCQUdOLE1BQU07K0JBR04sTUFBTTs2Q0FHTixNQUFNOzZCQXFETixLQUFLOztBQTdGTjtJQURDLFlBQVksRUFBRTswRUFDMkI7QUFJMUM7SUFEQyxZQUFZLEVBQUU7aUVBQ21CO0FBSWxDO0lBREMsWUFBWSxFQUFFO21FQUNxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xyXG5pbXBvcnQge0Jhc2VBY3Rpdml0eUxpc3RDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvYmFzZS1vcGVuLWFjdGl2aXR5LWxpc3QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LmJvXCI7XHJcbmltcG9ydCB7SW5wdXRCb29sZWFufSBmcm9tIFwiLi4vLi4vZGVjb3JhdG9yL2lucHV0LWJvb2xlYW4uZGVjb3JhdG9yXCI7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge0FjdGl2aXR5VHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vYWN0aXZpdHktdHlwZVwiO1xyXG5pbXBvcnQge0FjdGl2aXR5Vmlld01vZGVsfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHktdmlldy1tb2RlbFwiO1xyXG5pbXBvcnQge1BlcnNvbmFsQWN0aXZpdHlUYWJFbnVtfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9wZXJzb25hbC1hY3Rpdml0eS10YWIuZW51bVwiO1xyXG5pbXBvcnQge0FjdGl2aXR5U29ydFR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL2FjdGl2aXR5LXNvcnQtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7XHJcbiAgT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbixcclxuICBPcGVyYXRpb25XaXRoQWx3YXlzU3VjY2Vzc0NhbGxiYWNrXHJcbn0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZS9vcGVyYXRpb24tY2FsbGJhY2stc2ltcGxlLWZ1bmN0aW9uXCI7XHJcbmltcG9ydCB7XHJcbiAgUGVyc29uYWxBY3Rpdml0eU92ZXJ2aWV3Q29tcG9uZW50XHJcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9wZXJzb25hbC1hY3Rpdml0eS1vdmVydmlldy9wZXJzb25hbC1hY3Rpdml0eS1vdmVydmlldy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtcclxuICBPcGVyYXRpb25DYWxsYmFja0Z1bmN0aW9uV2l0aFZhbGlkYXRpb24sXHJcbiAgT3BlcmF0aW9uV2l0aFZhbGlkYXRpb25DYWxsYmFja1xyXG59IGZyb20gXCIuLi8uLi9pbnRlcmZhY2Uvb3BlcmF0aW9uLWNhbGxiYWNrLWZ1bmN0aW9uLXdpdGgtdmFsaWRhdGlvblwiO1xyXG5pbXBvcnQge1NoYXJlZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3NoYXJlZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VGFibGVOYW1lfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90YWJsZS1uYW1lLmVudW1cIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLWNvbXBvbmVudC1hY3Rpdml0eS1saXN0XCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxjby1hY3Rpdml0eS1saXN0LWhlYWRlclxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93QWN0aXZpdHlIZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBQ1RJVklUSUVTJ1wiXHJcbiAgICAgICAgICAgICAgICBbdGFibGVdPVwidGFibGVcIlxyXG4gICAgICAgICAgICAgICAgW2tleV09XCJrZXlcIlxyXG4gICAgICAgICAgICAgICAgWyhzaG93VXNlcmdyb3VwQWN0aXZpdGllcyldPVwic2hvd1VzZXJncm91cEFjdGl2aXRpZXNcIlxyXG4gICAgICAgICAgICAgICAgWyhzZWFyY2hUZXh0KV09XCJzZWFyY2hUZXh0XCJcclxuICAgICAgICAgICAgICAgIChwZXJpb2RGaWx0ZXJDbGlja2VkKT1cImRvRmlsdGVyQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChzZWFyY2hUZXh0Q2hhbmdlKT1cImFwcGx5RmlsdGVyKClcIlxyXG4gICAgICAgICAgICAgICAgKHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzQ2hhbmdlKT1cInNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgW3NldEhhc1BhdXNlZE5vdGlmaWNhdGlvbnNGb3JXb3JrZmxvd1Byb2Nlc3NPcGVyYXRpb25dPVwic2V0SGFzUGF1c2VkTm90aWZpY2F0aW9uc0ZvcldvcmtmbG93UHJvY2Vzc09wZXJhdGlvblwiXHJcbiAgICAgICAgPjwvY28tYWN0aXZpdHktbGlzdC1oZWFkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWxpc3QtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LXRhYi1jb250ZW50IG1pbmktc2Nyb2xsYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aXZpdHlMaXN0Vmlld01vZGVsIG9mIHByaXZhdGVBY3Rpdml0eUxpc3RWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28tY29sbGFwc2libGUgKm5nSWY9XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwuc2hvd2luZ1wiICNjb2xsYXBzZWFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyVGl0bGVdPVwiYWN0aXZpdHlMaXN0Vmlld01vZGVsLmxhYmVsICsgJyAnICsgYWN0aXZpdHlMaXN0Vmlld01vZGVsLmFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhleHBhbmRlZCldPVwiYWN0aXZpdHlMaXN0Vmlld01vZGVsLmV4cGFuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpdml0eVZpZXdNb2RlbCBvZiBhY3Rpdml0eUxpc3RWaWV3TW9kZWwuYWN0aXZpdGllczsgdHJhY2tCeTogdHJhY2tCeUZuOyBsZXQgaW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWNvbXBvbmVudC1hY3Rpdml0eS1vdmVydmlldyAqbmdJZj1cImFjdGl2aXR5Vmlld01vZGVsLnNob3dpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZpZXdNb2RlbF09XCJhY3Rpdml0eVZpZXdNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXNlclJlbGF0aW9uSWRdPVwicmVsYXRpb25JZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXNlckdyb3VwSWRdPVwidXNlckdyb3VwSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5Q2hhbmdlKT1cImhhbmRsZUNoYW5nZWRBY3Rpdml0eShpbmRleCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aXZpdHlEZWxldGVkKT1cImRlbGV0ZUFjdGl2aXR5KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdlbmVyaWNUcmlnZ2VyRmlyZWQpPVwiaGFuZGxlR2VuZXJpY1RyaWdnZXJGaXJlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtVHJpZ2dlckZpcmVkKT1cImhhbmRsZUZvcm1UcmlnZ2VyRmlyZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJpZ2dlckZpcmVkKT1cImhhbmRsZVRyaWdnZXJGaXJlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rQ2xpY2tlZCk9XCJsaW5rQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1DcmVhdGVkKT1cImhhbmRsZUZvcm1DcmVhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ib3R0b20tdGFza109XCJhY3Rpdml0eVZpZXdNb2RlbC5hY3Rpdml0eS5Jc1Rhc2tcIj48L2NvLWNvbXBvbmVudC1hY3Rpdml0eS1vdmVydmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgIDwvY28tY29sbGFwc2libGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS10YWItY29udGVudCBtaW5pLXNjcm9sbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGl2aXR5TGlzdFZpZXdNb2RlbCBvZiBwcml2YXRlRGVsZWdhdGVkQWN0aXZpdHlMaXN0Vmlld01vZGVsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28tY29sbGFwc2libGUgKm5nSWY9XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwuc2hvd2luZ1wiICNjb2xsYXBzZWFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJUaXRsZV09XCJhY3Rpdml0eUxpc3RWaWV3TW9kZWwubGFiZWwgKyAnICcgKyBhY3Rpdml0eUxpc3RWaWV3TW9kZWwuYW1vdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoZXhwYW5kZWQpXT1cImFjdGl2aXR5TGlzdFZpZXdNb2RlbC5leHBhbmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aXZpdHlWaWV3TW9kZWwgb2YgYWN0aXZpdHlMaXN0Vmlld01vZGVsLmFjdGl2aXRpZXM7IHRyYWNrQnk6IHRyYWNrQnlGbjsgbGV0IGluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXcgKm5nSWY9XCJhY3Rpdml0eVZpZXdNb2RlbC5zaG93aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2aWV3TW9kZWxdPVwiYWN0aXZpdHlWaWV3TW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJSZWxhdGlvbklkXT1cInJlbGF0aW9uSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJHcm91cElkXT1cInVzZXJHcm91cElkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJoYW5kbGVDaGFuZ2VkQWN0aXZpdHkoaW5kZXgsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5RGVsZXRlZCk9XCJkZWxldGVBY3Rpdml0eSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZW5lcmljVHJpZ2dlckZpcmVkKT1cImhhbmRsZUdlbmVyaWNUcmlnZ2VyRmlyZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybVRyaWdnZXJGaXJlZCk9XCJoYW5kbGVGb3JtVHJpZ2dlckZpcmVkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyaWdnZXJGaXJlZCk9XCJoYW5kbGVUcmlnZ2VyRmlyZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlua0NsaWNrZWQpPVwibGlua0NsaWNrZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtQ3JlYXRlZCk9XCJoYW5kbGVGb3JtQ3JlYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYm90dG9tLXRhc2tdPVwiYWN0aXZpdHlWaWV3TW9kZWwuYWN0aXZpdHkuSXNUYXNrXCI+PC9jby1jb21wb25lbnQtYWN0aXZpdHktb3ZlcnZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBhbmltYXRpb25zOiBbXHJcbiAgICAgICAgdHJpZ2dlcihcInNob3dIaWRlQ29udGVudFwiLCBbXHJcbiAgICAgICAgICAgIHN0YXRlKFwidm9pZFwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInNjYWxlWSgwKVwiLCBvcGFjaXR5OiAwfSkpLFxyXG4gICAgICAgICAgICBzdGF0ZShcIipcIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJzY2FsZVkoMSlcIiwgb3BhY2l0eTogMX0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbihgdm9pZCA8PT4gKmAsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSlcclxuICAgICAgICBdKSxcclxuICAgICAgICB0cmlnZ2VyKFwic2hvd0hpZGVUYWJcIiwgW1xyXG4gICAgICAgICAgICBzdGF0ZShcIlRPRE9cIiwgc3R5bGUoe3RyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKDApXCJ9KSksXHJcbiAgICAgICAgICAgIHN0YXRlKFwiREVMRUdBVEVEXCIsIHN0eWxlKHt0cmFuc2Zvcm06IFwidHJhbnNsYXRlWChjYWxjKC0xMDAlIC0gMjBweCkpXCJ9KSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oYFRPRE8gPD0+IERFTEVHQVRFRGAsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSlcclxuICAgICAgICBdKVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50QWN0aXZpdHlMaXN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUFjdGl2aXR5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGFiczogdHlwZW9mIFBlcnNvbmFsQWN0aXZpdHlUYWJFbnVtID0gUGVyc29uYWxBY3Rpdml0eVRhYkVudW07XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eUNsYXNzOiB0eXBlb2YgQWN0aXZpdHkgPSBBY3Rpdml0eTtcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpdml0eVNvcnRUeXBlOiB0eXBlb2YgQWN0aXZpdHlTb3J0VHlwZSA9IEFjdGl2aXR5U29ydFR5cGU7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnQpXHJcbiAgICBwdWJsaWMgYWN0aXZpdHlPdmVydmlld0xpc3Q6IFF1ZXJ5TGlzdDxQZXJzb25hbEFjdGl2aXR5T3ZlcnZpZXdDb21wb25lbnQ+O1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWNvbXBvbmVudC1hY3Rpdml0eS1saXN0XCIpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0YWJsZSh2YWx1ZTogVGFibGVOYW1lKSB7XHJcbiAgICAgICAgdGhpcy5fdGFibGUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRhYmxlKCk6IFRhYmxlTmFtZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGtleSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fa2V5ID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBrZXkoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fa2V5O1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBzaG93QWN0aXZpdHlIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBoaWRlVGl0bGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgbm9GcmVlVGFza3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGN1c3RvbVRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1c2VyR3JvdXBJZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVsYXRpb25JZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29tcG9uZW50QWN0aXZpdGllc01ldGhvZDogT3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbiA9IE9wZXJhdGlvbldpdGhBbHdheXNTdWNjZXNzQ2FsbGJhY2s7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXRIYXNQYXVzZWROb3RpZmljYXRpb25zRm9yV29ya2Zsb3dQcm9jZXNzT3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja0Z1bmN0aW9uV2l0aFZhbGlkYXRpb24gPSBPcGVyYXRpb25XaXRoVmFsaWRhdGlvbkNhbGxiYWNrO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIG9wZW5MaW5rQ2xpY2s6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGFtb3VudEFjdGl2aXR5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBsaW5rQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHttb2R1bGU6IHN0cmluZywgaWQ6IHN0cmluZ30+ID0gbmV3IEV2ZW50RW1pdHRlcjx7bW9kdWxlOiBzdHJpbmcsIGlkOiBzdHJpbmd9PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGZvcm1DcmVhdGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVmcmVzaFJlcXVlc3RlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNob3dVc2VyZ3JvdXBBY3Rpdml0aWVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHB1YmxpYyBhY3RpdmVUYWI6IFBlcnNvbmFsQWN0aXZpdHlUYWJFbnVtID0gUGVyc29uYWxBY3Rpdml0eVRhYkVudW0uVE9ETztcclxuXHJcbiAgICAvKnB1YmxpYyBhY3Rpdml0eVNvcnRMaXN0OiBib29sZWFuW10gPSBbXTsqL1xyXG5cclxuICAgIHB1YmxpYyBhY3Rpdml0eUxpc3Q6IEFjdGl2aXR5Vmlld01vZGVsW10gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIHZtOiBBY3Rpdml0eVZpZXdNb2RlbCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHZtLmFjdGl2aXR5LmlkICsgJ18nICsgdm0uYWN0aXZpdHkud29ya2Zsb3cuY29tYmluZWRUcmlnZ2VySWRzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3RhYmxlOiBUYWJsZU5hbWU7XHJcbiAgICBwcml2YXRlIF9rZXk6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgICBwcml2YXRlIF9hY3Rpdml0aWVzTGlzdDogQWN0aXZpdHlbXSA9IFtdO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICAgICAgLyp0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuX2FwcEV2ZW50U2VydmljZS50YXNrQ3JlYXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB0aGlzLl9hcHBFdmVudFNlcnZpY2UudGFza01vZGlmaWVkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApOyovXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgLy90aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldEFjdGl2aXRpZXMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgIGlmICh0aGlzLnRhYmxlICYmIHRoaXMua2V5KSB7XHJcbiAgICAgICAgY29uc3QgYWxsQWN0aXZpdGllczogQWN0aXZpdHlbXSA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5nZXRDb21wb25lbnRBY3Rpdml0aWVzV2l0aG91dFJlbGF0aW9uRmlsdGVyaW5nKHRoaXMudGFibGUsIHRoaXMua2V5KTtcclxuICAgICAgICBpZiAoYWxsQWN0aXZpdGllcykge1xyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0aWVzID0gdGhpcy5ub0ZyZWVUYXNrcyA/IGFsbEFjdGl2aXRpZXMuZmlsdGVyKGFhID0+ICFhYS50YXNrKSA6IGFsbEFjdGl2aXRpZXM7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdGllcyA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmFtb3VudEFjdGl2aXR5Q2hhbmdlZC5uZXh0KHRoaXMuYWN0aXZpdGllcy5sZW5ndGgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgYWN0aXZpdGllc0xpc3QoYWxsQWN0aXZpdGllczogQWN0aXZpdHlbXSkge1xyXG4gICAgICB0aGlzLl9hY3Rpdml0aWVzTGlzdCA9IGFsbEFjdGl2aXRpZXM7XHJcbiAgICAgIGlmIChhbGxBY3Rpdml0aWVzKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0aWVzID0gdGhpcy5ub0ZyZWVUYXNrcyA/IGFsbEFjdGl2aXRpZXMuZmlsdGVyKGFhID0+ICFhYS50YXNrKSA6IGFsbEFjdGl2aXRpZXM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0aWVzID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGFjdGl2aXRpZXNMaXN0KCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYWN0aXZpdGllc0xpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldERlbGVnYXRlZEFjdGl2aXRpZXMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgLy8gY29uc3QgYWxsQWN0aXZpdGllczogQWN0aXZpdHlbXSA9IGF3YWl0IHRoaXMuX2FjdGl2aXR5UmVwby5nZXRDb21wb25lbnRBY3Rpdml0aWVzKHRoaXMudGFibGUsIHRoaXMua2V5KTtcclxuICAgICAgICAvLyB0aGlzLmRlbGVnYXRlZEFjdGl2aXRpZXMgPSBhbGxBY3Rpdml0aWVzID8gYWxsQWN0aXZpdGllcy5maWx0ZXIoYWEgPT4gYWEuYWN0aXZpdHlUeXBlICE9PSBBY3Rpdml0eVR5cGUuV29ya2Zsb3dUYXNrKSA6IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIC8qLy9UT0RPIHRoZXJlIHdlcmUgYWxyZWFkeSB1bnVzZWQgYmVmb3JlIHRoZSBtb3ZlLiBDYW4gdGhleSBnbz9cclxuICAgIHB1YmxpYyBoYW5kbGVPcGVuTGluayhhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9wZW5MaW5rQ2xpY2submV4dChhY3Rpdml0eSk7XHJcbiAgICB9Ki9cclxuXHJcbiAgICBwdWJsaWMgc2hvd1VzZXJncm91cEFjdGl2aXRpZXNDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93VXNlcmdyb3VwQWN0aXZpdGllc0NoYW5nZWQubmV4dCgpXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZVRyaWdnZXJGaXJlZChhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdldFRoZUFjdGl2aXRpZXMoKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hSZXF1ZXN0ZWQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVHZW5lcmljVHJpZ2dlckZpcmVkKGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZ2V0VGhlQWN0aXZpdGllcygpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFJlcXVlc3RlZC5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVGb3JtVHJpZ2dlckZpcmVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRUaGVBY3Rpdml0aWVzKCk7XHJcbiAgICB0aGlzLnJlZnJlc2hSZXF1ZXN0ZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlRm9ybUNyZWF0aW9uKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybUNyZWF0ZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVDaGFuZ2VkQWN0aXZpdHkoaWR4OiBudW1iZXIsIGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2aXRpZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5hY3Rpdml0aWVzW2lkeF0gPSBhY3Rpdml0eTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRlbGV0ZUFjdGl2aXR5KGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYW1vdW50QWN0aXZpdHlDaGFuZ2VkLm5leHQodGhpcy5hY3Rpdml0aWVzLmxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5yZXNldCgpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZpdHlMaXN0ID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRvRmlsdGVyQ2xpY2tlZChmaWx0ZXI6IHsgZnJvbTogRGF0ZSwgdG86IERhdGUgfSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChmaWx0ZXIuZnJvbSAmJiBmaWx0ZXIudG8pIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGcm9tID0gbmV3IERhdGUoZmlsdGVyLmZyb20pO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZyb20uc2V0SG91cnMoMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRnJvbS5zZXRNaW51dGVzKDApO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZyb20uc2V0U2Vjb25kcygwKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJUbyA9IG5ldyBEYXRlKGZpbHRlci50byk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8uc2V0SG91cnMoMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVG8uc2V0TWludXRlcygwKTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJUby5zZXRTZWNvbmRzKDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRnJvbSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJUbyA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hcHBseUZpbHRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvcGVuRmlyc3RUYXNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5hY3Rpdml0aWVzKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdGFza3M6IEFjdGl2aXR5W10gPSB0aGlzLmFjdGl2aXRpZXMuZmlsdGVyKCh2YWx1ZSA9PiB2YWx1ZS5Jc1Rhc2spKTtcclxuICAgICAgICBpZiAodGFza3MgJiYgdGFza3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBhY3Rpdml0eU92ZXJ2aWV3czogUGVyc29uYWxBY3Rpdml0eU92ZXJ2aWV3Q29tcG9uZW50W10gPSB0aGlzLmFjdGl2aXR5T3ZlcnZpZXdMaXN0LnRvQXJyYXkoKTtcclxuICAgICAgICAgICAgaWYgKGFjdGl2aXR5T3ZlcnZpZXdzICYmIGFjdGl2aXR5T3ZlcnZpZXdzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGVuOiBudW1iZXIgPSBhY3Rpdml0eU92ZXJ2aWV3cy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZpdHlPdmVydmlld3NbaV0uYWN0aXZpdHkuZ2V0SWQoKSA9PT0gdGFza3NbMF0uZ2V0SWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eU92ZXJ2aWV3c1tpXS5zdGFydE1vZGlmeWluZ1Rhc2soKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -25,6 +25,7 @@ export class TaskModifierComponent {
|
|
|
25
25
|
this.showWorkLog = new EventEmitter();
|
|
26
26
|
this.taskCreated = new EventEmitter();
|
|
27
27
|
this.taskModified = new EventEmitter();
|
|
28
|
+
this.triggerFired = new EventEmitter();
|
|
28
29
|
this.showAfterInsert = false;
|
|
29
30
|
this.showNewForm = false;
|
|
30
31
|
this.showModificationForm = false;
|
|
@@ -177,6 +178,9 @@ export class TaskModifierComponent {
|
|
|
177
178
|
updateEditActivity(activity) {
|
|
178
179
|
this.editActivity = this._boFactory.makeWithRawBackendData(Activity, activity);
|
|
179
180
|
}
|
|
181
|
+
handleTriggerFired() {
|
|
182
|
+
this.triggerFired.next();
|
|
183
|
+
}
|
|
180
184
|
}
|
|
181
185
|
TaskModifierComponent.decorators = [
|
|
182
186
|
{ type: Component, args: [{
|
|
@@ -217,6 +221,7 @@ TaskModifierComponent.decorators = [
|
|
|
217
221
|
(statusChange)="doHandleStatusChange($event)"
|
|
218
222
|
(showWorkLog)="showWorkLog.emit()"
|
|
219
223
|
(activityChange)="updateEditActivity($event)"
|
|
224
|
+
(triggerFired)="handleTriggerFired()"
|
|
220
225
|
></co-modify-task-form>
|
|
221
226
|
</co-form>
|
|
222
227
|
</div>
|
|
@@ -268,9 +273,10 @@ TaskModifierComponent.propDecorators = {
|
|
|
268
273
|
showWorkLog: [{ type: Output }],
|
|
269
274
|
taskCreated: [{ type: Output }],
|
|
270
275
|
taskModified: [{ type: Output }],
|
|
276
|
+
triggerFired: [{ type: Output }],
|
|
271
277
|
showClass: [{ type: HostBinding, args: ["class.co-task-modifier",] }]
|
|
272
278
|
};
|
|
273
279
|
__decorate([
|
|
274
280
|
InputBoolean()
|
|
275
281
|
], TaskModifierComponent.prototype, "forceReadonly", void 0);
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1tb2RpZmllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YXNrLW1vZGlmeWVyL3Rhc2stbW9kaWZpZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsYUFBYSxFQUNkLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUVyRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFJcEcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBbUUzRCxNQUFNLE9BQU8scUJBQXFCO0lBaUg5QixZQUNZLGNBQWlDLEVBQ2pDLFVBQWlDLEVBQ3hCLFdBQThCLEVBQ3hDLFdBQTZCLEVBQzFCLGFBQTRCO1FBSjlCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxlQUFVLEdBQVYsVUFBVSxD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ZFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIENvcmVEaWFsb2dTZXJ2aWNlLFxyXG4gIERpYWxvZ1Jlc3BvbnNlSW50ZXJmYWNlLFxyXG4gIEZvcm1Db21wb25lbnRcclxufSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHkuYm9cIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtXb3JrZmxvd0NhdGVnb3J5VHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vd29ya2Zsb3ctY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9zZXJ2aWNlL2J1c2luZXNzLW9iamVjdC1mYWN0b3J5XCI7XHJcbmltcG9ydCB7T3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbn0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZS9vcGVyYXRpb24tY2FsbGJhY2stc2ltcGxlLWZ1bmN0aW9uXCI7XHJcbmltcG9ydCB7VGFza30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3Rhc2suYm9cIjtcclxuaW1wb3J0IHtPcGVyYXRpb25DYWxsYmFja0FjdGl2aXR5fSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlL29wZXJhdGlvbi1jYWxsYmFjay1hY3Rpdml0eVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0FwcFBvcHVwQnV0dG9uVHlwZX0gZnJvbSBcIi4uLy4uL2VudW0vYXBwLWJ1dHRvbi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtNb2RpZnlUYXNrRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4uL21vZGlmeS10YXNrLWZvcm0vbW9kaWZ5LXRhc2stZm9ybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtTaGFyZWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zaGFyZWQuc2VydmljZVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28tdGFzay1tb2RpZmllclwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8Y28tZGlhbG9nICAqbmdJZj1cInNob3dGb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJvblBvcHVwQ2xvc2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGFzay1wb3B1cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY3NzSWQ9XCJ0YXNrX21vZGlmaWVyX3BvcHVwXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbjwhLS1cclxuICAgICAgICAgIFtoZWFkZXJdPVwiaGVhZGVyXCJcclxuICAgICAgICAgIFtzdWJIZWFkZXJdPVwic3ViSGVhZGVyXCJcclxuICAgICAgICAgIFtzdWJIZWFkZXJMaW5rXT1cInN1YkhlYWRlckxpbmtcIlxyXG4gICAgICAgICAgW3N1YlN1YkhlYWRlcl09XCJzdWJTdWJIZWFkZXJcIlxyXG4gICAgICAgICAgW2hlYWRlckljb25dPVwiaWNvbnMuVGFza1wiXHJcbiAgICAgICAgICAob3BlbkxpbmspPVwib3BlblJlZmVyZW5jZUluTW9kdWxlKClcIi0tPlxyXG4gICAgICA8IS0tICAgICAgPG5nLXRlbXBsYXRlPi0tPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuTGlzdFVsUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1oZWFkZXItdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwiJ1RBU0snIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIoc2hvd05ld0Zvcm0pID8gJ25ldy10YXNrLXBvcHVwJyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0td3JhcHBlciBtaW5pLXNjcm9sbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28tZm9ybSAjbWFpbkZvcm0gKHZhbGlkU3VibWl0KT1cIm9uVmFsaWQoKVwiPlxyXG48IS0tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmV3LXRhc2stZm9ybSAqbmdJZj1cInNob3dOZXdGb3JtXCIgW2FjdGl2aXR5XT1cImVkaXRBY3Rpdml0eVwiIFtteUNmZ05hbWVzXT1cInRhc2tDZmdOYW1lc1wiIFt0YXNrS2V5XT1cInJlZmVyZW5jZUlkXCIgW3Rhc2tXb3JrZmxvd0NhdGVnb3J5XT1cIndvcmtmbG93Q2F0ZWdvcnlcIj48L25ldy10YXNrLWZvcm0+XHJcbi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLW1vZGlmeS10YXNrLWZvcm0gI21vZGlmeVRhc2tGb3JtICpuZ0lmPVwic2hvd01vZGlmaWNhdGlvbkZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2aXR5XT1cImVkaXRBY3Rpdml0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BvcHVwQ29udGV4dF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdGF0dXNDaGFuZ2UpPVwiZG9IYW5kbGVTdGF0dXNDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2hvd1dvcmtMb2cpPVwic2hvd1dvcmtMb2cuZW1pdCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJ1cGRhdGVFZGl0QWN0aXZpdHkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1tb2RpZnktdGFzay1mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWZvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1idXR0b25zXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd05ld0Zvcm1cIiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwicG9wdXAtdGh1bWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidTSE9XX0FGVEVSX0lOU0VSVCcgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPCEtLSAgICAgICAgIDx0aHVtYiBbKGFjdGl2ZSldPXNob3dBZnRlckluc2VydFwiPjwvdGh1bWI+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctZm9vdGVyLWJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBbZGlzYWJsZWRdPVwicmVhZG9ubHkgfHwgdGFza0VkaXR0aW5nXCIgY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU2F2ZUZvcm0oKVwiIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkNoZWNrRHVvdG9uZSlcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8Y28tYnV0dG9uICBjbGFzcz1cImNsb3NlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2FuY2VsRm9ybSgpXCIgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3NTa2lubnkpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgPGNvLWJ1dHRvbiAqbmdJZj1cInNob3dNb2RpZmljYXRpb25Gb3JtICYmICFyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmFzaGJpbilcIiBjbGFzcz1cImRlbGV0ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IHRhc2tFZGl0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlVGFzaygpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICA8IS0tIDwvbmctdGVtcGxhdGU+LS0+XHJcbiAgICAgICAgPC9jby1kaWFsb2c+XHJcbiAgICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFza01vZGlmaWVyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAgIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoRm9ybUNvbXBvbmVudClcclxuICAgIHB1YmxpYyBtYWluRm9ybTogRm9ybUNvbXBvbmVudDtcclxuXHJcbiAgICBAVmlld0NoaWxkKGZvcndhcmRSZWYoKCkgPT4gTW9kaWZ5VGFza0Zvcm1Db21wb25lbnQpKVxyXG4gICAgcHVibGljIG1vZGlmeVRhc2tGb3JtOiBNb2RpZnlUYXNrRm9ybUNvbXBvbmVudDtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IHJlYWRvbmx5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vcmV0dXJuIHRoaXMubW9kdWxlU2VydmljZS5yZWFkb25seSAmJlxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4vKiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRhc2tDZmdOYW1lczogQWN0aXZpdGllc1Rhc2tDb25maWdOYW1lczsqL1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgd29ya2Zsb3dDYXRlZ29yeTogV29ya2Zsb3dDYXRlZ29yeVR5cGU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByZWZlcmVuY2U6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlZmVyZW5jZUlkOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1c2VyR3JvdXBJZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVsYXRpb25JZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY3JlYXRlVGFza09wZXJhdGlvbjogT3BlcmF0aW9uQ2FsbGJhY2tBY3Rpdml0eTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgZm9yY2VSZWFkb25seTogYm9vbGVhbjtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBlZGl0aW5nQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGl2aXR5U2F2ZWQ6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGl2aXR5PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGl2aXR5RGVsZXRlZDogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2xvc2VkV2l0aG91dENvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2hvd1dvcmtMb2c6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSB0YXNrQ3JlYXRlZDogRXZlbnRFbWl0dGVyPFRhc2s+ID0gbmV3IEV2ZW50RW1pdHRlcjxUYXNrPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRhc2tNb2RpZmllZDogRXZlbnRFbWl0dGVyPFRhc2s+ID0gbmV3IEV2ZW50RW1pdHRlcjxUYXNrPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10YXNrLW1vZGlmaWVyXCIpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNob3dGb3JtKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNob3dOZXdGb3JtIHx8IHRoaXMuc2hvd01vZGlmaWNhdGlvbkZvcm07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBoZWFkZXIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuc2hvd01vZGlmaWNhdGlvbkZvcm0pID8gXCJUQVNLXCIgOiBcIkFERF9UQVNLMlwiO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgc3ViSGVhZGVyKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEFjdGl2aXR5ID8gdGhpcy5jdXJyZW50QWN0aXZpdHkudGFzay50YXNrSWQgKyBcIlwiIDogXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHN1YlN1YkhlYWRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRBY3Rpdml0eT8udGFzaz8ubGFzdE1vZGlmaWVkQnkgJiYgdGhpcy5jdXJyZW50QWN0aXZpdHk/LnRhc2s/Lmxhc3RNb2RpZmllZERhdGUpIHtcclxuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLl9kaWN0aW9uYXJ5LmdldCgnTEFTVF9DSEFOR0UnKTtcclxuICAgICAgICAgICAgY29uc3QgbGFzdE1vZGlmaWVkQnk6IHN0cmluZyA9IHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2s/Lmxhc3RNb2RpZmllZERpc3BsYXlOYW1lO1xyXG4gICAgICAgICAgICBjb25zdCBsYXN0TW9kaWZpZWREYXRlOiBzdHJpbmcgPSB0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrPy5sYXN0TW9kaWZpZWREYXRlLnRvTG9jYWxlU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbGFiZWwgKyAnOiAnICsgbGFzdE1vZGlmaWVkQnkgKyAnIHwgJyArIGxhc3RNb2RpZmllZERhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgc3ViSGVhZGVyTGluaygpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLnNob3dNb2RpZmljYXRpb25Gb3JtICYmIHRoaXMuY3VycmVudEFjdGl2aXR5ICYmIHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2spIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2sud29ya2Zsb3dDYXRlZ29yeSAmJiB0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrLnJlZmVyZW5jZSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGFjdGl2aXR5TmFtZTogc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgYWN0aXZpdHlOYW1lID0gdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJXT1JLRkxPV19DQVRFR09SWV9cIiArIHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2sud29ya2Zsb3dDYXRlZ29yeSkgKyBcIiBcIiArIHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2sucmVmZXJlbmNlICsgXCIpXCI7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWN0aXZpdHlOYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdXNlcklzVGFza1JlcG9ydGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRBY3Rpdml0eSAmJlxyXG4gICAgICAgICAgICAoKHRoaXMuZWRpdEFjdGl2aXR5LnRhc2sucmVwb3J0ZXJVc2VyR3JvdXBJZCAmJiB0aGlzLmVkaXRBY3Rpdml0eS50YXNrLnJlcG9ydGVyVXNlckdyb3VwSWQgPT09IHRoaXMudXNlckdyb3VwSWQpIHx8XHJcbiAgICAgICAgICAgICAgICAodGhpcy5lZGl0QWN0aXZpdHkudGFzay5yZXBvcnRlciAmJiB0aGlzLmVkaXRBY3Rpdml0eS50YXNrLnJlcG9ydGVyLnJlbGF0aW9uSWQgPT09IHRoaXMucmVsYXRpb25JZCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzaG93QWZ0ZXJJbnNlcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaG93TmV3Rm9ybTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNob3dNb2RpZmljYXRpb25Gb3JtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgY3VycmVudEFjdGl2aXR5OiBBY3Rpdml0eTtcclxuICAgIHB1YmxpYyBlZGl0QWN0aXZpdHk6IEFjdGl2aXR5O1xyXG5cclxuICAgIHB1YmxpYyB0YXNrRWRpdHRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBDb3JlRGlhbG9nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9ib0ZhY3Rvcnk6IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICAgICBwdWJsaWMgaWNvblNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIHNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVTYXZlRm9ybSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1haW5Gb3JtLnN1Ym1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBvblZhbGlkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRBY3Rpdml0eSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdBY3Rpdml0eTogYm9vbGVhbiA9IHRoaXMuZWRpdEFjdGl2aXR5LmlzTmV3O1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UudXBkYXRlQWN0aXZpdHkodGhpcy5lZGl0QWN0aXZpdHkpO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5U2F2ZWQubmV4dCh0aGlzLmVkaXRBY3Rpdml0eSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRpbmdDb21wbGV0ZS5uZXh0KHRoaXMuZWRpdEFjdGl2aXR5KTtcclxuICAgICAgICAgICAgICAgIGlmIChuZXdBY3Rpdml0eSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFza0NyZWF0ZWQubmV4dCh0aGlzLmVkaXRBY3Rpdml0eS50YXNrKVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhc2tNb2RpZmllZC5uZXh0KHRoaXMuZWRpdEFjdGl2aXR5LnRhc2spO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hvd0FmdGVySW5zZXJ0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydE1vZGlmeWluZ1Rhc2sodGhpcy5lZGl0QWN0aXZpdHkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUNhbmNlbEZvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlQ2xvbmUoKTtcclxuICAgICAgICAvL1RPRE86IGlzIHRoaXMgbmVlZGVkP1xyXG4gICAgICAgIC8vdGhpcy5tb2R1bGVTZXJ2aWNlLmNhbmNlbEVkaXQoKTtcclxuICAgICAgICB0aGlzLmNsb3NlZFdpdGhvdXRDb21wbGV0ZS5uZXh0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblBvcHVwQ2xvc2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JjZVJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy5jbG9zZWRXaXRob3V0Q29tcGxldGUubmV4dCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvL1RPRE8gZmlndXJlIG91dCByb3V0aW5nIGZyb20gZXh0ZXJuYWwgY29tcG9uZW50XHJcbiAgICAvKnB1YmxpYyBvcGVuUmVmZXJlbmNlSW5Nb2R1bGUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2aXR5ICYmIHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2spIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2sud29ya2Zsb3dDYXRlZ29yeSA9PT0gV29ya2Zsb3dDYXRlZ29yeVR5cGUuQWJzZW5jZUZpbGUgfHwgdGhpcy5jdXJyZW50QWN0aXZpdHkudGFzay53b3JrZmxvd0NhdGVnb3J5ID09PSBXb3JrZmxvd0NhdGVnb3J5VHlwZS5QcmV2ZW50aXZlQWJzZW5jZUZpbGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FwcE5hdmlnYXRvci5uYXZpZ2F0ZVRvSU9uZU1vZHVsZShJT25lTW9kdWxlTmFtZS5BYnNlbmNlRmlsZSwgdGhpcy5jdXJyZW50QWN0aXZpdHkudGFzay5yZWZlcmVuY2VJZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfSovXHJcblxyXG4gICAgcHVibGljIGhpZGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93TmV3Rm9ybSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd01vZGlmaWNhdGlvbkZvcm0gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZGVsZXRlVGFzaygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBjb25zdCBkb0RlbGV0ZTogRGlhbG9nUmVzcG9uc2VJbnRlcmZhY2UgPSBhd2FpdCB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dZZXNObyhcIkRFTEVURV9UQVNLXCIsXCJERUxFVEVfVEFTS1wiLGZhbHNlKTtcclxuICAgICAgICBpZiAoZG9EZWxldGUuYnV0dG9uID09PSBBcHBQb3B1cEJ1dHRvblR5cGUuWWVzKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5kZWxldGVBY3Rpdml0eSh0aGlzLmVkaXRBY3Rpdml0eSk7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZpdHlEZWxldGVkLm5leHQodGhpcy5lZGl0QWN0aXZpdHkpO1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGNyZWF0ZU5ld1Rhc2soc3RhbmRhbG9uZTogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAodGhpcy5zaG93Rm9ybSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNob3dBZnRlckluc2VydCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY3VycmVudEFjdGl2aXR5ID0gYXdhaXQgdGhpcy5jcmVhdGVUYXNrT3BlcmF0aW9uKHtzdGFuZGFsb25lOiBzdGFuZGFsb25lLCB3b3JrZmxvd0NhdGVnb3J5OiB0aGlzLndvcmtmbG93Q2F0ZWdvcnksIHJlZmVyZW5jZTogdGhpcy5yZWZlcmVuY2UsIHJlZmVyZW5jZUlkOiB0aGlzLnJlZmVyZW5jZUlkfSk7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlQ2xvbmUoKTtcclxuICAgICAgICB0aGlzLnNob3dOZXdGb3JtID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgc3RhcnRNb2RpZnlpbmdUYXNrKGFjdGl2aXR5OiBBY3Rpdml0eSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGlmICh0aGlzLnNob3dGb3JtIHx8ICFhY3Rpdml0eS5Jc1Rhc2spIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zaG93QWZ0ZXJJbnNlcnQgPSBmYWxzZTtcclxuICAgICAgICBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UubG9ja1Rhc2soYWN0aXZpdHkudGFzay50YXNrSWQpO1xyXG4gICAgICAgIGFjdGl2aXR5LnRhc2sgPSBhY3Rpdml0eS50YXNrO1xyXG4gICAgICAgIHRoaXMuY3VycmVudEFjdGl2aXR5ID0gYWN0aXZpdHk7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlQ2xvbmUoKTtcclxuICAgICAgICB0aGlzLnNob3dNb2RpZmljYXRpb25Gb3JtID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgc3RhcnRNb2RpZnlpbmdUYXNrQW5kV29ya0xvZyhhY3Rpdml0eTogQWN0aXZpdHkpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0TW9kaWZ5aW5nVGFzayhhY3Rpdml0eSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8qaWYgKHRoaXMubW9kaWZ5VGFza0Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubW9kaWZ5VGFza0Zvcm0uaGFuZGxlUmVnaXN0ZXJXb3JrKCk7XHJcbiAgICAgICAgICAgIH0qL1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBfY3JlYXRlQ2xvbmUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5lZGl0QWN0aXZpdHkgPSB0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShBY3Rpdml0eSwgdGhpcy5jdXJyZW50QWN0aXZpdHkpYXMgQWN0aXZpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRvSGFuZGxlU3RhdHVzQ2hhbmdlKGVkaXR0aW5nOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YXNrRWRpdHRpbmcgPSBlZGl0dGluZztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlRWRpdEFjdGl2aXR5KGFjdGl2aXR5OiBBY3Rpdml0eSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWRpdEFjdGl2aXR5ID0gdGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQWN0aXZpdHksIGFjdGl2aXR5KSBhcyBBY3Rpdml0eTtcclxuICAgIH1cclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEljb24gPSBJY29uO1xyXG59XHJcbiJdfQ==
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1tb2RpZmllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YXNrLW1vZGlmeWVyL3Rhc2stbW9kaWZpZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsYUFBYSxFQUNkLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUVyRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFJcEcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBb0UzRCxNQUFNLE9BQU8scUJBQXFCO0lBb0g5QixZQUNZLGNBQWlDLEVBQ2pDLFVBQWlDLEVBQ3hCLFdBQThCLEVBQ3hDLFdBQTZCLEVBQzFCLGFBQTRCO1FBSjlCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxlQUFVLEdBQVYsVUFBVSxD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QU07d0JBR04sV0FBVyxTQUFDLHdCQUF3Qjs7QUExQnJDO0lBREMsWUFBWSxFQUFFOzREQUNlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIENvcmVEaWFsb2dTZXJ2aWNlLFxyXG4gIERpYWxvZ1Jlc3BvbnNlSW50ZXJmYWNlLFxyXG4gIEZvcm1Db21wb25lbnRcclxufSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHkuYm9cIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtXb3JrZmxvd0NhdGVnb3J5VHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vd29ya2Zsb3ctY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9zZXJ2aWNlL2J1c2luZXNzLW9iamVjdC1mYWN0b3J5XCI7XHJcbmltcG9ydCB7T3BlcmF0aW9uQ2FsbGJhY2tTaW1wbGVGdW5jdGlvbn0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZS9vcGVyYXRpb24tY2FsbGJhY2stc2ltcGxlLWZ1bmN0aW9uXCI7XHJcbmltcG9ydCB7VGFza30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3Rhc2suYm9cIjtcclxuaW1wb3J0IHtPcGVyYXRpb25DYWxsYmFja0FjdGl2aXR5fSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlL29wZXJhdGlvbi1jYWxsYmFjay1hY3Rpdml0eVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0FwcFBvcHVwQnV0dG9uVHlwZX0gZnJvbSBcIi4uLy4uL2VudW0vYXBwLWJ1dHRvbi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtNb2RpZnlUYXNrRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4uL21vZGlmeS10YXNrLWZvcm0vbW9kaWZ5LXRhc2stZm9ybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtTaGFyZWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zaGFyZWQuc2VydmljZVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28tdGFzay1tb2RpZmllclwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8Y28tZGlhbG9nICAqbmdJZj1cInNob3dGb3JtXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJvblBvcHVwQ2xvc2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGFzay1wb3B1cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY3NzSWQ9XCJ0YXNrX21vZGlmaWVyX3BvcHVwXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbjwhLS1cclxuICAgICAgICAgIFtoZWFkZXJdPVwiaGVhZGVyXCJcclxuICAgICAgICAgIFtzdWJIZWFkZXJdPVwic3ViSGVhZGVyXCJcclxuICAgICAgICAgIFtzdWJIZWFkZXJMaW5rXT1cInN1YkhlYWRlckxpbmtcIlxyXG4gICAgICAgICAgW3N1YlN1YkhlYWRlcl09XCJzdWJTdWJIZWFkZXJcIlxyXG4gICAgICAgICAgW2hlYWRlckljb25dPVwiaWNvbnMuVGFza1wiXHJcbiAgICAgICAgICAob3BlbkxpbmspPVwib3BlblJlZmVyZW5jZUluTW9kdWxlKClcIi0tPlxyXG4gICAgICA8IS0tICAgICAgPG5nLXRlbXBsYXRlPi0tPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuTGlzdFVsUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1oZWFkZXItdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwiJ1RBU0snIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIoc2hvd05ld0Zvcm0pID8gJ25ldy10YXNrLXBvcHVwJyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0td3JhcHBlciBtaW5pLXNjcm9sbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28tZm9ybSAjbWFpbkZvcm0gKHZhbGlkU3VibWl0KT1cIm9uVmFsaWQoKVwiPlxyXG48IS0tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmV3LXRhc2stZm9ybSAqbmdJZj1cInNob3dOZXdGb3JtXCIgW2FjdGl2aXR5XT1cImVkaXRBY3Rpdml0eVwiIFtteUNmZ05hbWVzXT1cInRhc2tDZmdOYW1lc1wiIFt0YXNrS2V5XT1cInJlZmVyZW5jZUlkXCIgW3Rhc2tXb3JrZmxvd0NhdGVnb3J5XT1cIndvcmtmbG93Q2F0ZWdvcnlcIj48L25ldy10YXNrLWZvcm0+XHJcbi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLW1vZGlmeS10YXNrLWZvcm0gI21vZGlmeVRhc2tGb3JtICpuZ0lmPVwic2hvd01vZGlmaWNhdGlvbkZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2aXR5XT1cImVkaXRBY3Rpdml0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BvcHVwQ29udGV4dF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdGF0dXNDaGFuZ2UpPVwiZG9IYW5kbGVTdGF0dXNDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2hvd1dvcmtMb2cpPVwic2hvd1dvcmtMb2cuZW1pdCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpdml0eUNoYW5nZSk9XCJ1cGRhdGVFZGl0QWN0aXZpdHkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJpZ2dlckZpcmVkKT1cImhhbmRsZVRyaWdnZXJGaXJlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLW1vZGlmeS10YXNrLWZvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvY28tZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWJ1dHRvbnNcIiBmeExheW91dD1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93TmV3Rm9ybVwiIGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJwb3B1cC10aHVtYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ1NIT1dfQUZURVJfSU5TRVJUJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8IS0tICAgICAgICAgPHRodW1iIFsoYWN0aXZlKV09c2hvd0FmdGVySW5zZXJ0XCI+PC90aHVtYj4tLT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1mb290ZXItYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y28tYnV0dG9uIFtkaXNhYmxlZF09XCJyZWFkb25seSB8fCB0YXNrRWRpdHRpbmdcIiBjbGFzcz1cInNhdmUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTYXZlRm9ybSgpXCIgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxjby1idXR0b24gIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDYW5jZWxGb3JtKClcIiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc1NraW5ueSlcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8Y28tYnV0dG9uICpuZ0lmPVwic2hvd01vZGlmaWNhdGlvbkZvcm0gJiYgIXJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlRyYXNoYmluKVwiIGNsYXNzPVwiZGVsZXRlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVhZG9ubHkgfHwgdGFza0VkaXR0aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVUYXNrKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgIDwhLS0gPC9uZy10ZW1wbGF0ZT4tLT5cclxuICAgICAgICA8L2NvLWRpYWxvZz5cclxuICAgIGAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYXNrTW9kaWZpZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gICAgQFZpZXdDaGlsZChGb3JtQ29tcG9uZW50KVxyXG4gICAgcHVibGljIG1haW5Gb3JtOiBGb3JtQ29tcG9uZW50O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBNb2RpZnlUYXNrRm9ybUNvbXBvbmVudCkpXHJcbiAgICBwdWJsaWMgbW9kaWZ5VGFza0Zvcm06IE1vZGlmeVRhc2tGb3JtQ29tcG9uZW50O1xyXG5cclxuICAgIHB1YmxpYyBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgLy9yZXR1cm4gdGhpcy5tb2R1bGVTZXJ2aWNlLnJlYWRvbmx5ICYmXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbi8qICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGFza0NmZ05hbWVzOiBBY3Rpdml0aWVzVGFza0NvbmZpZ05hbWVzOyovXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB3b3JrZmxvd0NhdGVnb3J5OiBXb3JrZmxvd0NhdGVnb3J5VHlwZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlZmVyZW5jZTogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVmZXJlbmNlSWQ6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHVzZXJHcm91cElkOiBudW1iZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByZWxhdGlvbklkOiBudW1iZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjcmVhdGVUYXNrT3BlcmF0aW9uOiBPcGVyYXRpb25DYWxsYmFja0FjdGl2aXR5O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBmb3JjZVJlYWRvbmx5OiBib29sZWFuO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRpbmdDb21wbGV0ZTogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZpdHlTYXZlZDogRXZlbnRFbWl0dGVyPEFjdGl2aXR5PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZpdHlEZWxldGVkOiBFdmVudEVtaXR0ZXI8QWN0aXZpdHk+ID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpdml0eT4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBjbG9zZWRXaXRob3V0Q29tcGxldGU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBzaG93V29ya0xvZzogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRhc2tDcmVhdGVkOiBFdmVudEVtaXR0ZXI8VGFzaz4gPSBuZXcgRXZlbnRFbWl0dGVyPFRhc2s+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGFza01vZGlmaWVkOiBFdmVudEVtaXR0ZXI8VGFzaz4gPSBuZXcgRXZlbnRFbWl0dGVyPFRhc2s+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJpZ2dlckZpcmVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdGFzay1tb2RpZmllclwiKVxyXG4gICAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzaG93Rm9ybSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zaG93TmV3Rm9ybSB8fCB0aGlzLnNob3dNb2RpZmljYXRpb25Gb3JtO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaGVhZGVyKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLnNob3dNb2RpZmljYXRpb25Gb3JtKSA/IFwiVEFTS1wiIDogXCJBRERfVEFTSzJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHN1YkhlYWRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRBY3Rpdml0eSA/IHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2sudGFza0lkICsgXCJcIiA6IFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzdWJTdWJIZWFkZXIoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50QWN0aXZpdHk/LnRhc2s/Lmxhc3RNb2RpZmllZEJ5ICYmIHRoaXMuY3VycmVudEFjdGl2aXR5Py50YXNrPy5sYXN0TW9kaWZpZWREYXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5fZGljdGlvbmFyeS5nZXQoJ0xBU1RfQ0hBTkdFJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGxhc3RNb2RpZmllZEJ5OiBzdHJpbmcgPSB0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrPy5sYXN0TW9kaWZpZWREaXNwbGF5TmFtZTtcclxuICAgICAgICAgICAgY29uc3QgbGFzdE1vZGlmaWVkRGF0ZTogc3RyaW5nID0gdGhpcy5jdXJyZW50QWN0aXZpdHkudGFzaz8ubGFzdE1vZGlmaWVkRGF0ZS50b0xvY2FsZVN0cmluZygpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGxhYmVsICsgJzogJyArIGxhc3RNb2RpZmllZEJ5ICsgJyB8ICcgKyBsYXN0TW9kaWZpZWREYXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHN1YkhlYWRlckxpbmsoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5zaG93TW9kaWZpY2F0aW9uRm9ybSAmJiB0aGlzLmN1cnJlbnRBY3Rpdml0eSAmJiB0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrLndvcmtmbG93Q2F0ZWdvcnkgJiYgdGhpcy5jdXJyZW50QWN0aXZpdHkudGFzay5yZWZlcmVuY2UpIHtcclxuICAgICAgICAgICAgICAgIGxldCBhY3Rpdml0eU5hbWU6IHN0cmluZztcclxuICAgICAgICAgICAgICAgIGFjdGl2aXR5TmFtZSA9IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiV09SS0ZMT1dfQ0FURUdPUllfXCIgKyB0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrLndvcmtmbG93Q2F0ZWdvcnkpICsgXCIgXCIgKyB0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrLnJlZmVyZW5jZSArIFwiKVwiO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjdGl2aXR5TmFtZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHVzZXJJc1Rhc2tSZXBvcnRlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lZGl0QWN0aXZpdHkgJiZcclxuICAgICAgICAgICAgKCh0aGlzLmVkaXRBY3Rpdml0eS50YXNrLnJlcG9ydGVyVXNlckdyb3VwSWQgJiYgdGhpcy5lZGl0QWN0aXZpdHkudGFzay5yZXBvcnRlclVzZXJHcm91cElkID09PSB0aGlzLnVzZXJHcm91cElkKSB8fFxyXG4gICAgICAgICAgICAgICAgKHRoaXMuZWRpdEFjdGl2aXR5LnRhc2sucmVwb3J0ZXIgJiYgdGhpcy5lZGl0QWN0aXZpdHkudGFzay5yZXBvcnRlci5yZWxhdGlvbklkID09PSB0aGlzLnJlbGF0aW9uSWQpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2hvd0FmdGVySW5zZXJ0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2hvd05ld0Zvcm06IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaG93TW9kaWZpY2F0aW9uRm9ybTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGN1cnJlbnRBY3Rpdml0eTogQWN0aXZpdHk7XHJcbiAgICBwdWJsaWMgZWRpdEFjdGl2aXR5OiBBY3Rpdml0eTtcclxuXHJcbiAgICBwdWJsaWMgdGFza0VkaXR0aW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogQ29yZURpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnksXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGljb25TZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBzaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlU2F2ZUZvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tYWluRm9ybS5zdWJtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb25WYWxpZCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAodGhpcy5lZGl0QWN0aXZpdHkpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3QWN0aXZpdHk6IGJvb2xlYW4gPSB0aGlzLmVkaXRBY3Rpdml0eS5pc05ldztcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLnVwZGF0ZUFjdGl2aXR5KHRoaXMuZWRpdEFjdGl2aXR5KTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpdml0eVNhdmVkLm5leHQodGhpcy5lZGl0QWN0aXZpdHkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0aW5nQ29tcGxldGUubmV4dCh0aGlzLmVkaXRBY3Rpdml0eSk7XHJcbiAgICAgICAgICAgICAgICBpZiAobmV3QWN0aXZpdHkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhc2tDcmVhdGVkLm5leHQodGhpcy5lZGl0QWN0aXZpdHkudGFzaylcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YXNrTW9kaWZpZWQubmV4dCh0aGlzLmVkaXRBY3Rpdml0eS50YXNrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNob3dBZnRlckluc2VydCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRNb2RpZnlpbmdUYXNrKHRoaXMuZWRpdEFjdGl2aXR5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVDYW5jZWxGb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZUNsb25lKCk7XHJcbiAgICAgICAgLy9UT0RPOiBpcyB0aGlzIG5lZWRlZD9cclxuICAgICAgICAvL3RoaXMubW9kdWxlU2VydmljZS5jYW5jZWxFZGl0KCk7XHJcbiAgICAgICAgdGhpcy5jbG9zZWRXaXRob3V0Q29tcGxldGUubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Qb3B1cENsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9yY2VSZWFkb25seSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VkV2l0aG91dENvbXBsZXRlLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9UT0RPIGZpZ3VyZSBvdXQgcm91dGluZyBmcm9tIGV4dGVybmFsIGNvbXBvbmVudFxyXG4gICAgLypwdWJsaWMgb3BlblJlZmVyZW5jZUluTW9kdWxlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRBY3Rpdml0eSAmJiB0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRBY3Rpdml0eS50YXNrLndvcmtmbG93Q2F0ZWdvcnkgPT09IFdvcmtmbG93Q2F0ZWdvcnlUeXBlLkFic2VuY2VGaWxlIHx8IHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2sud29ya2Zsb3dDYXRlZ29yeSA9PT0gV29ya2Zsb3dDYXRlZ29yeVR5cGUuUHJldmVudGl2ZUFic2VuY2VGaWxlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBOYXZpZ2F0b3IubmF2aWdhdGVUb0lPbmVNb2R1bGUoSU9uZU1vZHVsZU5hbWUuQWJzZW5jZUZpbGUsIHRoaXMuY3VycmVudEFjdGl2aXR5LnRhc2sucmVmZXJlbmNlSWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0qL1xyXG5cclxuICAgIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd05ld0Zvcm0gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNob3dNb2RpZmljYXRpb25Gb3JtID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGRlbGV0ZVRhc2soKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgY29uc3QgZG9EZWxldGU6IERpYWxvZ1Jlc3BvbnNlSW50ZXJmYWNlID0gYXdhaXQgdGhpcy5fZGlhbG9nU2VydmljZS5zaG93WWVzTm8oXCJERUxFVEVfVEFTS1wiLFwiREVMRVRFX1RBU0tcIixmYWxzZSk7XHJcbiAgICAgICAgaWYgKGRvRGVsZXRlLmJ1dHRvbiA9PT0gQXBwUG9wdXBCdXR0b25UeXBlLlllcykge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuZGVsZXRlQWN0aXZpdHkodGhpcy5lZGl0QWN0aXZpdHkpO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2aXR5RGVsZXRlZC5uZXh0KHRoaXMuZWRpdEFjdGl2aXR5KTtcclxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBjcmVhdGVOZXdUYXNrKHN0YW5kYWxvbmU6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zaG93QWZ0ZXJJbnNlcnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRBY3Rpdml0eSA9IGF3YWl0IHRoaXMuY3JlYXRlVGFza09wZXJhdGlvbih7c3RhbmRhbG9uZTogc3RhbmRhbG9uZSwgd29ya2Zsb3dDYXRlZ29yeTogdGhpcy53b3JrZmxvd0NhdGVnb3J5LCByZWZlcmVuY2U6IHRoaXMucmVmZXJlbmNlLCByZWZlcmVuY2VJZDogdGhpcy5yZWZlcmVuY2VJZH0pO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZUNsb25lKCk7XHJcbiAgICAgICAgdGhpcy5zaG93TmV3Rm9ybSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIHN0YXJ0TW9kaWZ5aW5nVGFzayhhY3Rpdml0eTogQWN0aXZpdHkpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAodGhpcy5zaG93Rm9ybSB8fCAhYWN0aXZpdHkuSXNUYXNrKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd0FmdGVySW5zZXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmxvY2tUYXNrKGFjdGl2aXR5LnRhc2sudGFza0lkKTtcclxuICAgICAgICBhY3Rpdml0eS50YXNrID0gYWN0aXZpdHkudGFzaztcclxuICAgICAgICB0aGlzLmN1cnJlbnRBY3Rpdml0eSA9IGFjdGl2aXR5O1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZUNsb25lKCk7XHJcbiAgICAgICAgdGhpcy5zaG93TW9kaWZpY2F0aW9uRm9ybSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIHN0YXJ0TW9kaWZ5aW5nVGFza0FuZFdvcmtMb2coYWN0aXZpdHk6IEFjdGl2aXR5KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zdGFydE1vZGlmeWluZ1Rhc2soYWN0aXZpdHkpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvKmlmICh0aGlzLm1vZGlmeVRhc2tGb3JtKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGlmeVRhc2tGb3JtLmhhbmRsZVJlZ2lzdGVyV29yaygpO1xyXG4gICAgICAgICAgICB9Ki9cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgX2NyZWF0ZUNsb25lKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWRpdEFjdGl2aXR5ID0gdGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQWN0aXZpdHksIHRoaXMuY3VycmVudEFjdGl2aXR5KWFzIEFjdGl2aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkb0hhbmRsZVN0YXR1c0NoYW5nZShlZGl0dGluZzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFza0VkaXR0aW5nID0gZWRpdHRpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZUVkaXRBY3Rpdml0eShhY3Rpdml0eTogQWN0aXZpdHkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVkaXRBY3Rpdml0eSA9IHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEFjdGl2aXR5LCBhY3Rpdml0eSkgYXMgQWN0aXZpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZVRyaWdnZXJGaXJlZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRyaWdnZXJGaXJlZC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gIHByb3RlY3RlZCByZWFkb25seSBJY29uID0gSWNvbjtcclxufVxyXG4iXX0=
|
|
@@ -12070,6 +12070,7 @@ class ModifyTaskFormComponent {
|
|
|
12070
12070
|
this.activityChange = new EventEmitter();
|
|
12071
12071
|
this.statusChange = new EventEmitter();
|
|
12072
12072
|
this.showWorkLog = new EventEmitter();
|
|
12073
|
+
this.triggerFired = new EventEmitter();
|
|
12073
12074
|
this.selectedMenu = 'content-menu1';
|
|
12074
12075
|
this.activities = [];
|
|
12075
12076
|
this.table = TableName$1.Tasks;
|
|
@@ -12149,6 +12150,9 @@ class ModifyTaskFormComponent {
|
|
|
12149
12150
|
handleSaveTags(tags) {
|
|
12150
12151
|
this.activity.task.tags = tags;
|
|
12151
12152
|
}
|
|
12153
|
+
handleTriggerFired() {
|
|
12154
|
+
this.triggerFired.next();
|
|
12155
|
+
}
|
|
12152
12156
|
_updateTaskObject(activity, prop) {
|
|
12153
12157
|
const cloneActivity = this._boFactory.makeWithRawBackendData(Activity, activity);
|
|
12154
12158
|
if (cloneActivity.isNew) {
|
|
@@ -12219,6 +12223,7 @@ ModifyTaskFormComponent.decorators = [
|
|
|
12219
12223
|
[(activity)]="activity"
|
|
12220
12224
|
(activityChange)="activityChange.emit($event)"
|
|
12221
12225
|
(showWorkLog)="handleShowWorkLow()"
|
|
12226
|
+
(triggerFired)="handleTriggerFired()"
|
|
12222
12227
|
noBorder
|
|
12223
12228
|
></co-task-details>
|
|
12224
12229
|
<div class="task-column">
|
|
@@ -12327,7 +12332,8 @@ ModifyTaskFormComponent.propDecorators = {
|
|
|
12327
12332
|
hidden: [{ type: HostBinding, args: ["class.hidden",] }],
|
|
12328
12333
|
activityChange: [{ type: Output }],
|
|
12329
12334
|
statusChange: [{ type: Output }],
|
|
12330
|
-
showWorkLog: [{ type: Output }]
|
|
12335
|
+
showWorkLog: [{ type: Output }],
|
|
12336
|
+
triggerFired: [{ type: Output }]
|
|
12331
12337
|
};
|
|
12332
12338
|
__decorate([
|
|
12333
12339
|
InputBoolean()
|
|
@@ -12348,6 +12354,7 @@ class TaskModifierComponent {
|
|
|
12348
12354
|
this.showWorkLog = new EventEmitter();
|
|
12349
12355
|
this.taskCreated = new EventEmitter();
|
|
12350
12356
|
this.taskModified = new EventEmitter();
|
|
12357
|
+
this.triggerFired = new EventEmitter();
|
|
12351
12358
|
this.showAfterInsert = false;
|
|
12352
12359
|
this.showNewForm = false;
|
|
12353
12360
|
this.showModificationForm = false;
|
|
@@ -12500,6 +12507,9 @@ class TaskModifierComponent {
|
|
|
12500
12507
|
updateEditActivity(activity) {
|
|
12501
12508
|
this.editActivity = this._boFactory.makeWithRawBackendData(Activity, activity);
|
|
12502
12509
|
}
|
|
12510
|
+
handleTriggerFired() {
|
|
12511
|
+
this.triggerFired.next();
|
|
12512
|
+
}
|
|
12503
12513
|
}
|
|
12504
12514
|
TaskModifierComponent.decorators = [
|
|
12505
12515
|
{ type: Component, args: [{
|
|
@@ -12540,6 +12550,7 @@ TaskModifierComponent.decorators = [
|
|
|
12540
12550
|
(statusChange)="doHandleStatusChange($event)"
|
|
12541
12551
|
(showWorkLog)="showWorkLog.emit()"
|
|
12542
12552
|
(activityChange)="updateEditActivity($event)"
|
|
12553
|
+
(triggerFired)="handleTriggerFired()"
|
|
12543
12554
|
></co-modify-task-form>
|
|
12544
12555
|
</co-form>
|
|
12545
12556
|
</div>
|
|
@@ -12591,6 +12602,7 @@ TaskModifierComponent.propDecorators = {
|
|
|
12591
12602
|
showWorkLog: [{ type: Output }],
|
|
12592
12603
|
taskCreated: [{ type: Output }],
|
|
12593
12604
|
taskModified: [{ type: Output }],
|
|
12605
|
+
triggerFired: [{ type: Output }],
|
|
12594
12606
|
showClass: [{ type: HostBinding, args: ["class.co-task-modifier",] }]
|
|
12595
12607
|
};
|
|
12596
12608
|
__decorate([
|
|
@@ -12627,6 +12639,7 @@ class BaseActivityOverviewComponent {
|
|
|
12627
12639
|
this.triggerFired = new EventEmitter();
|
|
12628
12640
|
this.genericTriggerFired = new EventEmitter();
|
|
12629
12641
|
this.formCreated = new EventEmitter();
|
|
12642
|
+
this.formTriggerFired = new EventEmitter();
|
|
12630
12643
|
this.openLink = new EventEmitter();
|
|
12631
12644
|
this.linkClicked = new EventEmitter();
|
|
12632
12645
|
this.overDue = false;
|
|
@@ -12758,6 +12771,9 @@ class BaseActivityOverviewComponent {
|
|
|
12758
12771
|
//this.taskModifier.startModifyingTaskAndWorkLog(this.activity);
|
|
12759
12772
|
}
|
|
12760
12773
|
}
|
|
12774
|
+
handleFormTriggerFired() {
|
|
12775
|
+
this.formTriggerFired.next();
|
|
12776
|
+
}
|
|
12761
12777
|
onSaveActivity(activity) {
|
|
12762
12778
|
this.activity = activity;
|
|
12763
12779
|
this.activityChange.next(this.activity);
|
|
@@ -12853,6 +12869,7 @@ BaseActivityOverviewComponent.propDecorators = {
|
|
|
12853
12869
|
triggerFired: [{ type: Output }],
|
|
12854
12870
|
genericTriggerFired: [{ type: Output }],
|
|
12855
12871
|
formCreated: [{ type: Output }],
|
|
12872
|
+
formTriggerFired: [{ type: Output }],
|
|
12856
12873
|
openLink: [{ type: Output }],
|
|
12857
12874
|
linkClicked: [{ type: Output }]
|
|
12858
12875
|
};
|
|
@@ -13012,6 +13029,10 @@ class ComponentActivityListComponent extends BaseActivityListComponent {
|
|
|
13012
13029
|
this.getTheActivities();
|
|
13013
13030
|
this.refreshRequested.emit();
|
|
13014
13031
|
}
|
|
13032
|
+
handleFormTriggerFired() {
|
|
13033
|
+
this.getTheActivities();
|
|
13034
|
+
this.refreshRequested.emit();
|
|
13035
|
+
}
|
|
13015
13036
|
handleFormCreation() {
|
|
13016
13037
|
this.formCreated.next();
|
|
13017
13038
|
}
|
|
@@ -13093,9 +13114,11 @@ ComponentActivityListComponent.decorators = [
|
|
|
13093
13114
|
(activityChange)="handleChangedActivity(index, $event)"
|
|
13094
13115
|
(activityDeleted)="deleteActivity($event)"
|
|
13095
13116
|
(genericTriggerFired)="handleGenericTriggerFired($event)"
|
|
13117
|
+
(formTriggerFired)="handleFormTriggerFired()"
|
|
13096
13118
|
(triggerFired)="handleTriggerFired($event)"
|
|
13097
13119
|
(linkClicked)="linkClicked.emit($event)"
|
|
13098
|
-
(formCreated)="handleFormCreation()"
|
|
13120
|
+
(formCreated)="handleFormCreation()"
|
|
13121
|
+
[class.bottom-task]="activityViewModel.activity.IsTask"></co-component-activity-overview>
|
|
13099
13122
|
</ng-container>
|
|
13100
13123
|
</co-collapsible>
|
|
13101
13124
|
</ng-container>
|
|
@@ -13113,9 +13136,11 @@ ComponentActivityListComponent.decorators = [
|
|
|
13113
13136
|
(activityChange)="handleChangedActivity(index, $event)"
|
|
13114
13137
|
(activityDeleted)="deleteActivity($event)"
|
|
13115
13138
|
(genericTriggerFired)="handleGenericTriggerFired($event)"
|
|
13139
|
+
(formTriggerFired)="handleFormTriggerFired()"
|
|
13116
13140
|
(triggerFired)="handleTriggerFired($event)"
|
|
13117
13141
|
(linkClicked)="linkClicked.emit($event)"
|
|
13118
|
-
(formCreated)="handleFormCreation()"
|
|
13142
|
+
(formCreated)="handleFormCreation()"
|
|
13143
|
+
[class.bottom-task]="activityViewModel.activity.IsTask"></co-component-activity-overview>
|
|
13119
13144
|
</ng-container>
|
|
13120
13145
|
</co-collapsible>
|
|
13121
13146
|
</ng-container>
|
|
@@ -13224,7 +13249,8 @@ ComponentActivityOverviewComponent.decorators = [
|
|
|
13224
13249
|
{ type: Component, args: [{
|
|
13225
13250
|
selector: "co-component-activity-overview",
|
|
13226
13251
|
template: `
|
|
13227
|
-
|
|
13252
|
+
<div class="activity-task-wrapper">
|
|
13253
|
+
<div class="overview-wrapper" *ngIf="!isTask">
|
|
13228
13254
|
<div class="overview-current">
|
|
13229
13255
|
<div class="overview-wrapper-icons">
|
|
13230
13256
|
<co-icon *ngIf="userIsSupervisor && (!isTask || firstTriggerToCloseWF === undefined)" icon="supervisor"
|
|
@@ -13256,16 +13282,6 @@ ComponentActivityOverviewComponent.decorators = [
|
|
|
13256
13282
|
</div>
|
|
13257
13283
|
</div>
|
|
13258
13284
|
</div>
|
|
13259
|
-
|
|
13260
|
-
<ng-container *ngIf="isTask && firstTriggerToCloseWF !== undefined">
|
|
13261
|
-
<co-button class="trans-green custom-text button-trigger no-margin" [label]="firstTriggerToCloseWF.description"
|
|
13262
|
-
(click)="handleButtonEndClick()"></co-button>
|
|
13263
|
-
</ng-container>
|
|
13264
|
-
<ng-container *ngIf="openButtonLabel">
|
|
13265
|
-
<co-button class="trans-green default-bg custom-text button-trigger-icon action-hover no-margin"
|
|
13266
|
-
iconClass="custom small" [iconData]="iconCacheService.getIcon(icon.DetailView)" [label]="openButtonLabel | localize"
|
|
13267
|
-
(click)="handleOpenLink($event)"></co-button>
|
|
13268
|
-
</ng-container>
|
|
13269
13285
|
<!--TODO reinstate this when we figure out how to trigger a screen change. -->
|
|
13270
13286
|
<!--<ng-container *ngIf="urls && urls.length > 0">
|
|
13271
13287
|
<button-colijn *ngFor="let url of urls"
|
|
@@ -13275,6 +13291,7 @@ ComponentActivityOverviewComponent.decorators = [
|
|
|
13275
13291
|
iconClass="custom small"
|
|
13276
13292
|
(click)="handleOpenLink($event, url)"></button-colijn>
|
|
13277
13293
|
</ng-container>-->
|
|
13294
|
+
<div class="activity-buttons">
|
|
13278
13295
|
<ng-container *ngIf="!isTask && hasTriggers">
|
|
13279
13296
|
<co-button class="trans-green custom-text action-hover button-trigger no-margin" *ngFor="let trigger of workFlow.manualGenericTriggers"
|
|
13280
13297
|
[class.button-trigger-icon]="trigger.isTaskTrigger"
|
|
@@ -13292,8 +13309,39 @@ ComponentActivityOverviewComponent.decorators = [
|
|
|
13292
13309
|
(click)="handleTriggerClick(trigger)"
|
|
13293
13310
|
></co-button>
|
|
13294
13311
|
</ng-container>
|
|
13312
|
+
</div>
|
|
13313
|
+
</div>
|
|
13314
|
+
</div>
|
|
13315
|
+
<div class="overview-task-wrapper" *ngIf="isTask" (click)="handleOpenLink($event)">
|
|
13316
|
+
<div class="task-box">
|
|
13317
|
+
<div class="task-current-state">
|
|
13318
|
+
<div class="activity-title" [textContent]="activityTitle"></div>
|
|
13319
|
+
<!--seems unessecary for current usecases, but left in case this needs an input to switch on or off-->
|
|
13320
|
+
<!--<div class="activity-context-title" [textContent]="activityContextTitle"></div>-->
|
|
13321
|
+
</div>
|
|
13322
|
+
<div class="overview-wrapper-date">
|
|
13323
|
+
<div class="date-wrapper" [class.overdue]="overDue">
|
|
13324
|
+
<ng-container *ngIf="!sameDates">
|
|
13325
|
+
<div class="date" [textContent]="targetDate | date:'dd-MM-YYYY'"></div>
|
|
13326
|
+
<div class="date-divider" [textContent]="'-'"></div>
|
|
13327
|
+
</ng-container>
|
|
13328
|
+
<div class="date" [textContent]="deadlineDate | date:'dd-MM-YYYY'"></div>
|
|
13329
|
+
<co-icon class="activity-type-icon"[iconData]="iconCacheService.getIcon(icon.ListUlRegular)"></co-icon>
|
|
13330
|
+
</div>
|
|
13331
|
+
</div>
|
|
13332
|
+
<ng-container *ngIf="isTask && firstTriggerToCloseWF !== undefined">
|
|
13333
|
+
<co-button class="trans-green custom-text button-trigger no-margin" [label]="firstTriggerToCloseWF.description"
|
|
13334
|
+
(click)="handleButtonEndClick()"></co-button>
|
|
13335
|
+
</ng-container>
|
|
13336
|
+
<!--ng-container *ngIf="openButtonLabel">
|
|
13337
|
+
<co-button class="trans-green default-bg custom-text button-trigger-icon action-hover no-margin"
|
|
13338
|
+
iconClass="custom small" [iconData]="iconCacheService.getIcon(icon.DetailView)" [label]="openButtonLabel | localize"
|
|
13339
|
+
(click)="handleOpenLink($event)"></co-button>
|
|
13340
|
+
</ng-container-->
|
|
13295
13341
|
</div>
|
|
13342
|
+
|
|
13296
13343
|
</div>
|
|
13344
|
+
</div>
|
|
13297
13345
|
<!--TODO reinstate this when we figure out how to trigger a screen change. -->
|
|
13298
13346
|
<!-- <formbuilder-user-form *ngIf="showCreateForm"
|
|
13299
13347
|
[showPopup]="showCreateForm"
|
|
@@ -13309,6 +13357,7 @@ ComponentActivityOverviewComponent.decorators = [
|
|
|
13309
13357
|
(editingComplete)="onSaveActivity($event)"
|
|
13310
13358
|
(activityDeleted)="onDeleteActivity($event)"
|
|
13311
13359
|
(showWorkLog)="showTaskFormAndWorkLog()"
|
|
13360
|
+
(triggerFired)="handleFormTriggerFired()"
|
|
13312
13361
|
></co-task-modifier>
|
|
13313
13362
|
|
|
13314
13363
|
`,
|