@alfresco/adf-process-services 8.1.0-14701637708 → 8.1.0-14714093103
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/esm2022/lib/app-list/apps-list.component.mjs +4 -4
- package/esm2022/lib/app-list/select-apps-dialog/select-apps-dialog.component.mjs +4 -4
- package/esm2022/lib/attachment/create-process-attachment/create-process-attachment.component.mjs +4 -4
- package/esm2022/lib/attachment/create-task-attachment/create-task-attachment.component.mjs +4 -4
- package/esm2022/lib/attachment/process-attachment-list/process-attachment-list.component.mjs +4 -4
- package/esm2022/lib/attachment/task-attachment-list/task-attachment-list.component.mjs +4 -4
- package/esm2022/lib/form/form-custom-outcomes.component.mjs +4 -4
- package/esm2022/lib/form/form-list/form-list.component.mjs +4 -4
- package/esm2022/lib/form/form.component.mjs +4 -4
- package/esm2022/lib/form/process-form-rendering.service.mjs +4 -4
- package/esm2022/lib/form/services/activiti-alfresco.service.mjs +4 -4
- package/esm2022/lib/form/services/ecm-model.service.mjs +4 -4
- package/esm2022/lib/form/services/editor.service.mjs +4 -4
- package/esm2022/lib/form/services/external-alfresco-api.service.mjs +4 -4
- package/esm2022/lib/form/services/model.service.mjs +4 -4
- package/esm2022/lib/form/services/process-content.service.mjs +4 -4
- package/esm2022/lib/form/services/process-definition.service.mjs +4 -4
- package/esm2022/lib/form/services/task-form.service.mjs +4 -4
- package/esm2022/lib/form/services/task.service.mjs +4 -4
- package/esm2022/lib/form/start-form/start-form.component.mjs +4 -4
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog.component.mjs +4 -4
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog.service.mjs +4 -4
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget.component.mjs +4 -4
- package/esm2022/lib/form/widgets/content-widget/attach-folder-widget.component.mjs +4 -4
- package/esm2022/lib/form/widgets/document/content.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/document/document.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/dropdown/dropdown.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/dynamic-table.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/amount/amount.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/boolean/boolean.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/date/date.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/datetime/datetime.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/dropdown/dropdown.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/row-editor/row.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/dynamic-table/editors/text/text.editor.mjs +4 -4
- package/esm2022/lib/form/widgets/file-viewer/file-viewer.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/functional-group/functional-group.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/people/people.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/radio-buttons/radio-buttons.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/typeahead/typeahead.widget.mjs +4 -4
- package/esm2022/lib/form/widgets/upload/upload.widget.mjs +4 -4
- package/esm2022/lib/people/components/people/people.component.mjs +4 -4
- package/esm2022/lib/people/components/people-list/people-list.component.mjs +4 -4
- package/esm2022/lib/people/components/people-search/people-search.component.mjs +4 -4
- package/esm2022/lib/people/components/people-search-field/people-search-field.component.mjs +4 -4
- package/esm2022/lib/people/components/people-selector/people-selector.component.mjs +4 -4
- package/esm2022/lib/process-comments/process-comments.component.mjs +4 -4
- package/esm2022/lib/process-comments/services/comment-process.service.mjs +4 -4
- package/esm2022/lib/process-list/components/process-audit/process-audit.directive.mjs +4 -4
- package/esm2022/lib/process-list/components/process-filters/process-filters.component.mjs +4 -4
- package/esm2022/lib/process-list/components/process-instance-details/process-instance-details.component.mjs +4 -4
- package/esm2022/lib/process-list/components/process-instance-header/process-instance-header.component.mjs +4 -4
- package/esm2022/lib/process-list/components/process-instance-tasks/process-instance-tasks.component.mjs +4 -4
- package/esm2022/lib/process-list/components/process-list/process-list.component.mjs +4 -4
- package/esm2022/lib/process-list/components/start-process/start-process.component.mjs +5 -5
- package/esm2022/lib/process-list/services/process-filter.service.mjs +4 -4
- package/esm2022/lib/process-list/services/process.service.mjs +4 -4
- package/esm2022/lib/process.module.mjs +5 -5
- package/esm2022/lib/services/apps-process.service.mjs +4 -4
- package/esm2022/lib/services/people-process.service.mjs +4 -4
- package/esm2022/lib/services/task-comments.service.mjs +4 -4
- package/esm2022/lib/task-comments/task-comments.component.mjs +4 -4
- package/esm2022/lib/task-list/components/attach-form/attach-form.component.mjs +4 -4
- package/esm2022/lib/task-list/components/checklist/checklist.component.mjs +4 -4
- package/esm2022/lib/task-list/components/start-task/start-task.component.mjs +4 -4
- package/esm2022/lib/task-list/components/task-details/task-details.component.mjs +4 -4
- package/esm2022/lib/task-list/components/task-filters/task-filters.component.mjs +4 -4
- package/esm2022/lib/task-list/components/task-form/claim-task.directive.mjs +4 -4
- package/esm2022/lib/task-list/components/task-form/task-form.component.mjs +4 -4
- package/esm2022/lib/task-list/components/task-form/unclaim-task.directive.mjs +4 -4
- package/esm2022/lib/task-list/components/task-header/task-header.component.mjs +4 -4
- package/esm2022/lib/task-list/components/task-list/task-list.component.mjs +4 -4
- package/esm2022/lib/task-list/components/task-standalone/task-standalone.component.mjs +4 -4
- package/esm2022/lib/task-list/services/process-upload.service.mjs +4 -4
- package/esm2022/lib/task-list/services/task-filter.service.mjs +4 -4
- package/esm2022/lib/task-list/services/task-upload.service.mjs +4 -4
- package/esm2022/lib/task-list/services/tasklist.service.mjs +4 -4
- package/fesm2022/adf-process-services.mjs +237 -237
- package/fesm2022/adf-process-services.mjs.map +1 -1
- package/lib/app-list/apps-list.component.scss +51 -23
- package/lib/attachment/process-attachment-list/process-attachment-list.component.scss +2 -2
- package/lib/attachment/task-attachment-list/task-attachment-list.component.scss +3 -3
- package/lib/form/start-form/start-form.component.scss +59 -60
- package/lib/form/widgets/content-widget/attach-file-widget-dialog.component.scss +3 -4
- package/lib/form/widgets/content-widget/attach-folder-widget.component.scss +3 -3
- package/lib/form/widgets/dropdown/dropdown.widget.scss +2 -2
- package/lib/form/widgets/people/people.widget.scss +2 -2
- package/lib/form/widgets/upload/upload.widget.scss +2 -2
- package/lib/people/components/people/people.component.scss +2 -2
- package/lib/process-list/components/start-process/start-process.component.scss +12 -12
- package/lib/styles/flex.scss +81 -0
- package/lib/styles/mat-selectors.scss +25 -0
- package/lib/task-list/components/attach-form/attach-form.component.scss +2 -2
- package/lib/task-list/components/checklist/checklist.component.scss +2 -2
- package/lib/task-list/components/start-task/start-task.component.scss +11 -11
- package/lib/task-list/components/task-details/task-details.component.scss +5 -5
- package/lib/task-list/components/task-form/task-form.component.scss +3 -3
- package/lib/task-list/components/task-header/task-header.component.scss +2 -2
- package/lib/task-list/components/task-standalone/task-standalone.component.scss +2 -2
- package/package.json +4 -4
|
@@ -237,13 +237,13 @@ export class TaskFilterService {
|
|
|
237
237
|
index
|
|
238
238
|
});
|
|
239
239
|
}
|
|
240
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
241
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
240
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskFilterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
241
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskFilterService, providedIn: 'root' }); }
|
|
242
242
|
}
|
|
243
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskFilterService, decorators: [{
|
|
244
244
|
type: Injectable,
|
|
245
245
|
args: [{
|
|
246
246
|
providedIn: 'root'
|
|
247
247
|
}]
|
|
248
248
|
}] });
|
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1maWx0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvdGFzay1saXN0L3NlcnZpY2VzL3Rhc2stZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBS3BFLE1BQU0sT0FBTyxpQkFBaUI7SUFIOUI7UUFJYyxlQUFVLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0E4T3JEO0lBM09HLElBQUksY0FBYztRQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDakcsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLG9CQUFvQixDQUFDLEtBQWE7UUFDckMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFdkQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTdELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RSxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUVuRSxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFaEUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQy9CLFFBQVEsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDeEcsTUFBTSxPQUFPLEdBQW1DLEVBQUUsQ0FBQztnQkFDbkQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDdEQsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDOzRCQUMxQyxPQUFPLENBQUMsSUFBSSxDQUNSLElBQUksNEJBQTRCLENBQUM7Z0NBQzdCLEdBQUcsTUFBTTtnQ0FDVCxNQUFNLEVBQUUsa0JBQWtCLENBQUMsTUFBTTtnQ0FDakMsS0FBSzs2QkFDUixDQUFDLENBQ0wsQ0FBQzt3QkFDTixDQUFDOzZCQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7NEJBQzVDLE9BQU8sQ0FBQyxJQUFJLENBQ1IsSUFBSSw0QkFBNEIsQ0FBQztnQ0FDN0IsR0FBRyxNQUFNO2dDQUNULE1BQU0sRUFBRSxhQUFhLENBQUMsTUFBTTtnQ0FDNUIsS0FBSzs2QkFDUixDQUFDLENBQ0wsQ0FBQzt3QkFDTixDQUFDOzZCQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQzs0QkFDcEQsT0FBTyxDQUFDLElBQUksQ0FDUixJQUFJLDRCQUE0QixDQUFDO2dDQUM3QixHQUFHLE1BQU07Z0NBQ1QsTUFBTSxFQUFFLHFCQUFxQixDQUFDLE1BQU07Z0NBQ3BDLEtBQUs7NkJBQ1IsQ0FBQyxDQUNMLENBQUM7d0JBQ04sQ0FBQzs2QkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7NEJBQ25ELE9BQU8sQ0FBQyxJQUFJLENBQ1IsSUFBSSw0QkFBNEIsQ0FBQztnQ0FDN0IsR0FBRyxNQUFNO2dDQUNULE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxNQUFNO2dDQUNuQyxLQUFLOzZCQUNSLENBQUMsQ0FDTCxDQUFDO3dCQUNOLENBQUM7b0JBQ0wsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUFDLEtBQWM7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1QyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLE1BQU0sT0FBTyxHQUFtQyxFQUFFLENBQUM7WUFDbkQsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFvQyxFQUFFLEVBQUU7Z0JBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUN0RCxNQUFNLFdBQVcsR0FBRyxJQUFJLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM3RCxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM5QixDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHVCQUF1QixDQUFDLE9BQXVDLEVBQUUsVUFBa0I7UUFDL0UsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxpQkFBaUIsQ0FBQyxRQUFnQixFQUFFLEtBQWM7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hJLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxtQkFBbUIsQ0FBQyxRQUFnQixFQUFFLEtBQWM7UUFDaEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xJLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxNQUFvQztRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGdCQUFnQixDQUFDLFFBQWdCLEVBQUUsYUFBMkM7UUFDMUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxrQkFBa0IsQ0FBQyxLQUFjO1FBQzdCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzdELENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDcEQsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCx3QkFBd0IsQ0FBQyxLQUFhLEVBQUUsS0FBYztRQUNsRCxPQUFPLElBQUksNEJBQTRCLENBQUM7WUFDcEMsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSztZQUNMLE1BQU0sRUFBRSxLQUFLO1lBQ2IsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixNQUFNLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLElBQUksRUFBRSxFQUFFO2dCQUNSLEtBQUssRUFBRSxNQUFNO2dCQUNiLFVBQVUsRUFBRSxVQUFVO2FBQ3pCO1lBQ0QsS0FBSztTQUNSLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCw2QkFBNkIsQ0FBQyxLQUFhLEVBQUUsS0FBYztRQUN2RCxPQUFPLElBQUksNEJBQTRCLENBQUM7WUFDcEMsSUFBSSxFQUFFLGVBQWU7WUFDckIsS0FBSztZQUNMLE1BQU0sRUFBRSxLQUFLO1lBQ2IsSUFBSSxFQUFFLHNCQUFzQjtZQUM1QixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFO1lBQ2pGLEtBQUs7U0FDUixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZ0NBQWdDLENBQUMsS0FBYSxFQUFFLEtBQWM7UUFDMUQsT0FBTyxJQUFJLDRCQUE0QixDQUFDO1lBQ3BDLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsS0FBSztZQUNMLE1BQU0sRUFBRSxLQUFLO1lBQ2IsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFO1lBQ2xGLEtBQUs7U0FDUixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsK0JBQStCLENBQUMsS0FBYSxFQUFFLEtBQWM7UUFDekQsT0FBTyxJQUFJLDRCQUE0QixDQUFDO1lBQ3BDLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsS0FBSztZQUNMLE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFO1lBQ3RGLEtBQUs7U0FDUixDQUFDLENBQUM7SUFDUCxDQUFDOytHQTlPUSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZkLE1BQU07OzRGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFVzZXJGaWx0ZXJzQXBpLCBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tGaWx0ZXJTZXJ2aWNlIHtcbiAgICBwcm90ZWN0ZWQgYXBpU2VydmljZSA9IGluamVjdChBbGZyZXNjb0FwaVNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSBfdXNlckZpbHRlcnNBcGk6IFVzZXJGaWx0ZXJzQXBpO1xuICAgIGdldCB1c2VyRmlsdGVyc0FwaSgpOiBVc2VyRmlsdGVyc0FwaSB7XG4gICAgICAgIHRoaXMuX3VzZXJGaWx0ZXJzQXBpID0gdGhpcy5fdXNlckZpbHRlcnNBcGkgPz8gbmV3IFVzZXJGaWx0ZXJzQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJGaWx0ZXJzQXBpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgdGhlIGRlZmF1bHQgZmlsdGVycyBmb3IgYSBwcm9jZXNzIGFwcC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBJZCBJRCBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIGRlZmF1bHQgZmlsdGVycyBqdXN0IGNyZWF0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlRGVmYXVsdEZpbHRlcnMoYXBwSWQ6IG51bWJlcik6IE9ic2VydmFibGU8VXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbltdPiB7XG4gICAgICAgIGNvbnN0IG15VGFza3NGaWx0ZXIgPSB0aGlzLmdldE15VGFza3NGaWx0ZXJJbnN0YW5jZShhcHBJZCwgMCk7XG4gICAgICAgIGNvbnN0IG15VGFza09ic2VydmFibGUgPSB0aGlzLmFkZEZpbHRlcihteVRhc2tzRmlsdGVyKTtcblxuICAgICAgICBjb25zdCBvdmVyZHVlVGFza3NGaWx0ZXIgPSB0aGlzLmdldE92ZXJkdWVUYXNrc0ZpbHRlckluc3RhbmNlKGFwcElkLCAxKTtcbiAgICAgICAgY29uc3Qgb3ZlcmR1ZU9ic2VydmFibGUgPSB0aGlzLmFkZEZpbHRlcihvdmVyZHVlVGFza3NGaWx0ZXIpO1xuXG4gICAgICAgIGNvbnN0IHVuYXNzaWduZWRUYXNrc0ZpbHRlciA9IHRoaXMuZ2V0VW5hc3NpZ25lZFRhc2tzRmlsdGVySW5zdGFuY2UoYXBwSWQsIDIpO1xuICAgICAgICBjb25zdCB1bmFzc2lnbmVkT2JzZXJ2YWJsZSA9IHRoaXMuYWRkRmlsdGVyKHVuYXNzaWduZWRUYXNrc0ZpbHRlcik7XG5cbiAgICAgICAgY29uc3QgY29tcGxldGVkVGFza3NGaWx0ZXIgPSB0aGlzLmdldENvbXBsZXRlZFRhc2tzRmlsdGVySW5zdGFuY2UoYXBwSWQsIDMpO1xuICAgICAgICBjb25zdCBjb21wbGV0ZU9ic2VydmFibGUgPSB0aGlzLmFkZEZpbHRlcihjb21wbGV0ZWRUYXNrc0ZpbHRlcik7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgZm9ya0pvaW4oW215VGFza09ic2VydmFibGUsIG92ZXJkdWVPYnNlcnZhYmxlLCB1bmFzc2lnbmVkT2JzZXJ2YWJsZSwgY29tcGxldGVPYnNlcnZhYmxlXSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJzOiBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uW10gPSBbXTtcbiAgICAgICAgICAgICAgICByZXMuZm9yRWFjaCgoZmlsdGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0ZpbHRlckFscmVhZHlFeGlzdGluZyhmaWx0ZXJzLCBmaWx0ZXIubmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXIubmFtZSA9PT0gb3ZlcmR1ZVRhc2tzRmlsdGVyLm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogb3ZlcmR1ZVRhc2tzRmlsdGVyLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLm5hbWUgPT09IG15VGFza3NGaWx0ZXIubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiBteVRhc2tzRmlsdGVyLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLm5hbWUgPT09IHVuYXNzaWduZWRUYXNrc0ZpbHRlci5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVycy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IHVuYXNzaWduZWRUYXNrc0ZpbHRlci5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci5uYW1lID09PSBjb21wbGV0ZWRUYXNrc0ZpbHRlci5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVycy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IGNvbXBsZXRlZFRhc2tzRmlsdGVyLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZmlsdGVycyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCB0YXNrIGZpbHRlcnMgZm9yIGEgcHJvY2VzcyBhcHAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwSWQgT3B0aW9uYWwgSUQgZm9yIGEgc3BlY2lmaWMgYXBwXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgdGFzayBmaWx0ZXIgZGV0YWlsc1xuICAgICAqL1xuICAgIGdldFRhc2tMaXN0RmlsdGVycyhhcHBJZD86IG51bWJlcik6IE9ic2VydmFibGU8VXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbltdPiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuY2FsbEFwaVRhc2tGaWx0ZXJzKGFwcElkKSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJzOiBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uW10gPSBbXTtcbiAgICAgICAgICAgICAgICByZXNwb25zZS5kYXRhLmZvckVhY2goKGZpbHRlcjogVXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNGaWx0ZXJBbHJlYWR5RXhpc3RpbmcoZmlsdGVycywgZmlsdGVyLm5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJNb2RlbCA9IG5ldyBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uKGZpbHRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goZmlsdGVyTW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcnM7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhIGZpbHRlciB3aXRoIHRoZSBnaXZlbiBuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsaXN0IG9mIGZpbHRlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsdGVycyAtIEFuIGFycmF5IG9mIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBleGlzdGluZyBmaWx0ZXJzLlxuICAgICAqIEBwYXJhbSBmaWx0ZXJOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGZpbHRlciB0byBjaGVjayBmb3IgZXhpc3RlbmNlLlxuICAgICAqIEByZXR1cm5zIC0gVHJ1ZSBpZiBhIGZpbHRlciB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSBhbHJlYWR5IGV4aXN0cywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIGlzRmlsdGVyQWxyZWFkeUV4aXN0aW5nKGZpbHRlcnM6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb25bXSwgZmlsdGVyTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmaWx0ZXJzLnNvbWUoKGV4aXN0aW5nRmlsdGVyKSA9PiBleGlzdGluZ0ZpbHRlci5uYW1lID09PSBmaWx0ZXJOYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgdGFzayBmaWx0ZXIgYnkgSUQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsdGVySWQgSUQgb2YgdGhlIGZpbHRlclxuICAgICAqIEBwYXJhbSBhcHBJZCBJRCBvZiB0aGUgYXBwIGZvciB0aGUgZmlsdGVyXG4gICAgICogQHJldHVybnMgRGV0YWlscyBvZiB0YXNrIGZpbHRlclxuICAgICAqL1xuICAgIGdldFRhc2tGaWx0ZXJCeUlkKGZpbHRlcklkOiBudW1iZXIsIGFwcElkPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuY2FsbEFwaVRhc2tGaWx0ZXJzKGFwcElkKSkucGlwZShtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5kYXRhLmZpbmQoKGZpbHRlcikgPT4gZmlsdGVyLmlkID09PSBmaWx0ZXJJZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgdGFzayBmaWx0ZXIgYnkgbmFtZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrTmFtZSBOYW1lIG9mIHRoZSBmaWx0ZXJcbiAgICAgKiBAcGFyYW0gYXBwSWQgSUQgb2YgdGhlIGFwcCBmb3IgdGhlIGZpbHRlclxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGFzayBmaWx0ZXJcbiAgICAgKi9cbiAgICBnZXRUYXNrRmlsdGVyQnlOYW1lKHRhc2tOYW1lOiBzdHJpbmcsIGFwcElkPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuY2FsbEFwaVRhc2tGaWx0ZXJzKGFwcElkKSkucGlwZShtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5kYXRhLmZpbmQoKGZpbHRlcikgPT4gZmlsdGVyLm5hbWUgPT09IHRhc2tOYW1lKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBuZXcgdGFzayBmaWx0ZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWx0ZXIgVGhlIG5ldyBmaWx0ZXIgdG8gYWRkXG4gICAgICogQHJldHVybnMgRGV0YWlscyBvZiB0YXNrIGZpbHRlciBqdXN0IGFkZGVkXG4gICAgICovXG4gICAgYWRkRmlsdGVyKGZpbHRlcjogVXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbik6IE9ic2VydmFibGU8VXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbj4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnVzZXJGaWx0ZXJzQXBpLmNyZWF0ZVVzZXJUYXNrRmlsdGVyKGZpbHRlcikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBhIHRhc2sgZmlsdGVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsdGVySWQgZXhpc3RpbmcgZmlsdGVyIGlkXG4gICAgICogQHBhcmFtIHVwZGF0ZWRGaWx0ZXIgdXBkYXRlZCBmaWx0ZXIgYm9keVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8VXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbj5cbiAgICAgKi9cbiAgICB1cGRhdGVUYXNrRmlsdGVyKGZpbHRlcklkOiBudW1iZXIsIHVwZGF0ZWRGaWx0ZXI6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24pOiBPYnNlcnZhYmxlPFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy51c2VyRmlsdGVyc0FwaS51cGRhdGVVc2VyVGFza0ZpbHRlcihmaWx0ZXJJZCwgdXBkYXRlZEZpbHRlcikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxzIGBnZXRVc2VyVGFza0ZpbHRlcnNgIGZyb20gdGhlIEFsZnJlc2NvIEpTIEFQSS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBJZCBJRCBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIExpc3Qgb2YgdGFzayBmaWx0ZXJzXG4gICAgICovXG4gICAgY2FsbEFwaVRhc2tGaWx0ZXJzKGFwcElkPzogbnVtYmVyKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgaWYgKGFwcElkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyRmlsdGVyc0FwaS5nZXRVc2VyVGFza0ZpbHRlcnMoeyBhcHBJZCB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXJGaWx0ZXJzQXBpLmdldFVzZXJUYXNrRmlsdGVycygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGZpbHRlciBmb3IgXCJNeSBUYXNrc1wiIHRhc2sgaW5zdGFuY2VzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcElkIElEIG9mIHRoZSB0YXJnZXQgYXBwXG4gICAgICogQHBhcmFtIGluZGV4IG9mIHRoZSBmaWx0ZXIgKG9wdGlvbmFsKVxuICAgICAqIEByZXR1cm5zIFRoZSBuZXdseSBjcmVhdGVkIGZpbHRlclxuICAgICAqL1xuICAgIGdldE15VGFza3NGaWx0ZXJJbnN0YW5jZShhcHBJZDogbnVtYmVyLCBpbmRleD86IG51bWJlcik6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgbmFtZTogJ015IFRhc2tzJyxcbiAgICAgICAgICAgIGFwcElkLFxuICAgICAgICAgICAgcmVjZW50OiBmYWxzZSxcbiAgICAgICAgICAgIGljb246ICdnbHlwaGljb24taW5ib3gnLFxuICAgICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAgICAgc29ydDogJ2NyZWF0ZWQtZGVzYycsXG4gICAgICAgICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdvcGVuJyxcbiAgICAgICAgICAgICAgICBhc3NpZ25tZW50OiAnYXNzaWduZWUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW5kZXhcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGZpbHRlciBmb3IgXCJPdmVyZHVlXCIgdGFzayBpbnN0YW5jZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwSWQgSUQgb2YgdGhlIHRhcmdldCBhcHBcbiAgICAgKiBAcGFyYW0gaW5kZXggb2YgdGhlIGZpbHRlciAob3B0aW9uYWwpXG4gICAgICogQHJldHVybnMgVGhlIG5ld2x5IGNyZWF0ZWQgZmlsdGVyXG4gICAgICovXG4gICAgZ2V0T3ZlcmR1ZVRhc2tzRmlsdGVySW5zdGFuY2UoYXBwSWQ6IG51bWJlciwgaW5kZXg/OiBudW1iZXIpOiBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uIHtcbiAgICAgICAgcmV0dXJuIG5ldyBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uKHtcbiAgICAgICAgICAgIG5hbWU6ICdPdmVyZHVlIFRhc2tzJyxcbiAgICAgICAgICAgIGFwcElkLFxuICAgICAgICAgICAgcmVjZW50OiBmYWxzZSxcbiAgICAgICAgICAgIGljb246ICdnbHlwaGljb24tYWxpZ24tbGVmdCcsXG4gICAgICAgICAgICBmaWx0ZXI6IHsgc29ydDogJ2NyZWF0ZWQtZGVzYycsIG5hbWU6ICcnLCBzdGF0ZTogJ29wZW4nLCBhc3NpZ25tZW50OiAnYXNzaWduZWUnIH0sXG4gICAgICAgICAgICBpbmRleFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuZCByZXR1cm5zIGEgZmlsdGVyIGZvciBcIlVuYXNzaWduZWQgVGFza3NcIiB0YXNrIGluc3RhbmNlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBJZCBJRCBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEBwYXJhbSBpbmRleCBvZiB0aGUgZmlsdGVyIChvcHRpb25hbClcbiAgICAgKiBAcmV0dXJucyBUaGUgbmV3bHkgY3JlYXRlZCBmaWx0ZXJcbiAgICAgKi9cbiAgICBnZXRVbmFzc2lnbmVkVGFza3NGaWx0ZXJJbnN0YW5jZShhcHBJZDogbnVtYmVyLCBpbmRleD86IG51bWJlcik6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgbmFtZTogJ1VuYXNzaWduZWQgVGFza3MnLFxuICAgICAgICAgICAgYXBwSWQsXG4gICAgICAgICAgICByZWNlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgaWNvbjogJ2dseXBoaWNvbi1yZWNvcmQnLFxuICAgICAgICAgICAgZmlsdGVyOiB7IHNvcnQ6ICdjcmVhdGVkLWRlc2MnLCBuYW1lOiAnJywgc3RhdGU6ICdvcGVuJywgYXNzaWdubWVudDogJ2NhbmRpZGF0ZScgfSxcbiAgICAgICAgICAgIGluZGV4XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBmaWx0ZXIgZm9yIFwiQ29tcGxldGVkXCIgdGFzayBpbnN0YW5jZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwSWQgSUQgb2YgdGhlIHRhcmdldCBhcHBcbiAgICAgKiBAcGFyYW0gaW5kZXggb2YgdGhlIGZpbHRlciAob3B0aW9uYWwpXG4gICAgICogQHJldHVybnMgVGhlIG5ld2x5IGNyZWF0ZWQgZmlsdGVyXG4gICAgICovXG4gICAgZ2V0Q29tcGxldGVkVGFza3NGaWx0ZXJJbnN0YW5jZShhcHBJZDogbnVtYmVyLCBpbmRleD86IG51bWJlcik6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgbmFtZTogJ0NvbXBsZXRlZCBUYXNrcycsXG4gICAgICAgICAgICBhcHBJZCxcbiAgICAgICAgICAgIHJlY2VudDogdHJ1ZSxcbiAgICAgICAgICAgIGljb246ICdnbHlwaGljb24tb2stc2lnbicsXG4gICAgICAgICAgICBmaWx0ZXI6IHsgc29ydDogJ2NyZWF0ZWQtZGVzYycsIG5hbWU6ICcnLCBzdGF0ZTogJ2NvbXBsZXRlZCcsIGFzc2lnbm1lbnQ6ICdpbnZvbHZlZCcgfSxcbiAgICAgICAgICAgIGluZGV4XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1maWx0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvdGFzay1saXN0L3NlcnZpY2VzL3Rhc2stZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBS3BFLE1BQU0sT0FBTyxpQkFBaUI7SUFIOUI7UUFJYyxlQUFVLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0E4T3JEO0lBM09HLElBQUksY0FBYztRQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDakcsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLG9CQUFvQixDQUFDLEtBQWE7UUFDckMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFdkQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMs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QUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFVzZXJGaWx0ZXJzQXBpLCBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tGaWx0ZXJTZXJ2aWNlIHtcbiAgICBwcm90ZWN0ZWQgYXBpU2VydmljZSA9IGluamVjdChBbGZyZXNjb0FwaVNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSBfdXNlckZpbHRlcnNBcGk6IFVzZXJGaWx0ZXJzQXBpO1xuICAgIGdldCB1c2VyRmlsdGVyc0FwaSgpOiBVc2VyRmlsdGVyc0FwaSB7XG4gICAgICAgIHRoaXMuX3VzZXJGaWx0ZXJzQXBpID0gdGhpcy5fdXNlckZpbHRlcnNBcGkgPz8gbmV3IFVzZXJGaWx0ZXJzQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJGaWx0ZXJzQXBpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgdGhlIGRlZmF1bHQgZmlsdGVycyBmb3IgYSBwcm9jZXNzIGFwcC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBJZCBJRCBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIGRlZmF1bHQgZmlsdGVycyBqdXN0IGNyZWF0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlRGVmYXVsdEZpbHRlcnMoYXBwSWQ6IG51bWJlcik6IE9ic2VydmFibGU8VXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbltdPiB7XG4gICAgICAgIGNvbnN0IG15VGFza3NGaWx0ZXIgPSB0aGlzLmdldE15VGFza3NGaWx0ZXJJbnN0YW5jZShhcHBJZCwgMCk7XG4gICAgICAgIGNvbnN0IG15VGFza09ic2VydmFibGUgPSB0aGlzLmFkZEZpbHRlcihteVRhc2tzRmlsdGVyKTtcblxuICAgICAgICBjb25zdCBvdmVyZHVlVGFza3NGaWx0ZXIgPSB0aGlzLmdldE92ZXJkdWVUYXNrc0ZpbHRlckluc3RhbmNlKGFwcElkLCAxKTtcbiAgICAgICAgY29uc3Qgb3ZlcmR1ZU9ic2VydmFibGUgPSB0aGlzLmFkZEZpbHRlcihvdmVyZHVlVGFza3NGaWx0ZXIpO1xuXG4gICAgICAgIGNvbnN0IHVuYXNzaWduZWRUYXNrc0ZpbHRlciA9IHRoaXMuZ2V0VW5hc3NpZ25lZFRhc2tzRmlsdGVySW5zdGFuY2UoYXBwSWQsIDIpO1xuICAgICAgICBjb25zdCB1bmFzc2lnbmVkT2JzZXJ2YWJsZSA9IHRoaXMuYWRkRmlsdGVyKHVuYXNzaWduZWRUYXNrc0ZpbHRlcik7XG5cbiAgICAgICAgY29uc3QgY29tcGxldGVkVGFza3NGaWx0ZXIgPSB0aGlzLmdldENvbXBsZXRlZFRhc2tzRmlsdGVySW5zdGFuY2UoYXBwSWQsIDMpO1xuICAgICAgICBjb25zdCBjb21wbGV0ZU9ic2VydmFibGUgPSB0aGlzLmFkZEZpbHRlcihjb21wbGV0ZWRUYXNrc0ZpbHRlcik7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgZm9ya0pvaW4oW215VGFza09ic2VydmFibGUsIG92ZXJkdWVPYnNlcnZhYmxlLCB1bmFzc2lnbmVkT2JzZXJ2YWJsZSwgY29tcGxldGVPYnNlcnZhYmxlXSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJzOiBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uW10gPSBbXTtcbiAgICAgICAgICAgICAgICByZXMuZm9yRWFjaCgoZmlsdGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0ZpbHRlckFscmVhZHlFeGlzdGluZyhmaWx0ZXJzLCBmaWx0ZXIubmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXIubmFtZSA9PT0gb3ZlcmR1ZVRhc2tzRmlsdGVyLm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogb3ZlcmR1ZVRhc2tzRmlsdGVyLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLm5hbWUgPT09IG15VGFza3NGaWx0ZXIubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiBteVRhc2tzRmlsdGVyLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLm5hbWUgPT09IHVuYXNzaWduZWRUYXNrc0ZpbHRlci5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVycy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IHVuYXNzaWduZWRUYXNrc0ZpbHRlci5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci5uYW1lID09PSBjb21wbGV0ZWRUYXNrc0ZpbHRlci5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVycy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IGNvbXBsZXRlZFRhc2tzRmlsdGVyLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZmlsdGVycyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCB0YXNrIGZpbHRlcnMgZm9yIGEgcHJvY2VzcyBhcHAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwSWQgT3B0aW9uYWwgSUQgZm9yIGEgc3BlY2lmaWMgYXBwXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgdGFzayBmaWx0ZXIgZGV0YWlsc1xuICAgICAqL1xuICAgIGdldFRhc2tMaXN0RmlsdGVycyhhcHBJZD86IG51bWJlcik6IE9ic2VydmFibGU8VXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbltdPiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuY2FsbEFwaVRhc2tGaWx0ZXJzKGFwcElkKSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJzOiBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uW10gPSBbXTtcbiAgICAgICAgICAgICAgICByZXNwb25zZS5kYXRhLmZvckVhY2goKGZpbHRlcjogVXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNGaWx0ZXJBbHJlYWR5RXhpc3RpbmcoZmlsdGVycywgZmlsdGVyLm5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJNb2RlbCA9IG5ldyBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uKGZpbHRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goZmlsdGVyTW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcnM7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhIGZpbHRlciB3aXRoIHRoZSBnaXZlbiBuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBsaXN0IG9mIGZpbHRlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsdGVycyAtIEFuIGFycmF5IG9mIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBleGlzdGluZyBmaWx0ZXJzLlxuICAgICAqIEBwYXJhbSBmaWx0ZXJOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGZpbHRlciB0byBjaGVjayBmb3IgZXhpc3RlbmNlLlxuICAgICAqIEByZXR1cm5zIC0gVHJ1ZSBpZiBhIGZpbHRlciB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSBhbHJlYWR5IGV4aXN0cywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIGlzRmlsdGVyQWxyZWFkeUV4aXN0aW5nKGZpbHRlcnM6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb25bXSwgZmlsdGVyTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmaWx0ZXJzLnNvbWUoKGV4aXN0aW5nRmlsdGVyKSA9PiBleGlzdGluZ0ZpbHRlci5uYW1lID09PSBmaWx0ZXJOYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgdGFzayBmaWx0ZXIgYnkgSUQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsdGVySWQgSUQgb2YgdGhlIGZpbHRlclxuICAgICAqIEBwYXJhbSBhcHBJZCBJRCBvZiB0aGUgYXBwIGZvciB0aGUgZmlsdGVyXG4gICAgICogQHJldHVybnMgRGV0YWlscyBvZiB0YXNrIGZpbHRlclxuICAgICAqL1xuICAgIGdldFRhc2tGaWx0ZXJCeUlkKGZpbHRlcklkOiBudW1iZXIsIGFwcElkPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuY2FsbEFwaVRhc2tGaWx0ZXJzKGFwcElkKSkucGlwZShtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5kYXRhLmZpbmQoKGZpbHRlcikgPT4gZmlsdGVyLmlkID09PSBmaWx0ZXJJZCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgdGFzayBmaWx0ZXIgYnkgbmFtZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrTmFtZSBOYW1lIG9mIHRoZSBmaWx0ZXJcbiAgICAgKiBAcGFyYW0gYXBwSWQgSUQgb2YgdGhlIGFwcCBmb3IgdGhlIGZpbHRlclxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGFzayBmaWx0ZXJcbiAgICAgKi9cbiAgICBnZXRUYXNrRmlsdGVyQnlOYW1lKHRhc2tOYW1lOiBzdHJpbmcsIGFwcElkPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuY2FsbEFwaVRhc2tGaWx0ZXJzKGFwcElkKSkucGlwZShtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5kYXRhLmZpbmQoKGZpbHRlcikgPT4gZmlsdGVyLm5hbWUgPT09IHRhc2tOYW1lKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBuZXcgdGFzayBmaWx0ZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWx0ZXIgVGhlIG5ldyBmaWx0ZXIgdG8gYWRkXG4gICAgICogQHJldHVybnMgRGV0YWlscyBvZiB0YXNrIGZpbHRlciBqdXN0IGFkZGVkXG4gICAgICovXG4gICAgYWRkRmlsdGVyKGZpbHRlcjogVXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbik6IE9ic2VydmFibGU8VXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbj4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnVzZXJGaWx0ZXJzQXBpLmNyZWF0ZVVzZXJUYXNrRmlsdGVyKGZpbHRlcikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBhIHRhc2sgZmlsdGVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsdGVySWQgZXhpc3RpbmcgZmlsdGVyIGlkXG4gICAgICogQHBhcmFtIHVwZGF0ZWRGaWx0ZXIgdXBkYXRlZCBmaWx0ZXIgYm9keVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8VXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbj5cbiAgICAgKi9cbiAgICB1cGRhdGVUYXNrRmlsdGVyKGZpbHRlcklkOiBudW1iZXIsIHVwZGF0ZWRGaWx0ZXI6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24pOiBPYnNlcnZhYmxlPFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy51c2VyRmlsdGVyc0FwaS51cGRhdGVVc2VyVGFza0ZpbHRlcihmaWx0ZXJJZCwgdXBkYXRlZEZpbHRlcikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxzIGBnZXRVc2VyVGFza0ZpbHRlcnNgIGZyb20gdGhlIEFsZnJlc2NvIEpTIEFQSS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBJZCBJRCBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIExpc3Qgb2YgdGFzayBmaWx0ZXJzXG4gICAgICovXG4gICAgY2FsbEFwaVRhc2tGaWx0ZXJzKGFwcElkPzogbnVtYmVyKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgaWYgKGFwcElkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyRmlsdGVyc0FwaS5nZXRVc2VyVGFza0ZpbHRlcnMoeyBhcHBJZCB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXJGaWx0ZXJzQXBpLmdldFVzZXJUYXNrRmlsdGVycygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGZpbHRlciBmb3IgXCJNeSBUYXNrc1wiIHRhc2sgaW5zdGFuY2VzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcElkIElEIG9mIHRoZSB0YXJnZXQgYXBwXG4gICAgICogQHBhcmFtIGluZGV4IG9mIHRoZSBmaWx0ZXIgKG9wdGlvbmFsKVxuICAgICAqIEByZXR1cm5zIFRoZSBuZXdseSBjcmVhdGVkIGZpbHRlclxuICAgICAqL1xuICAgIGdldE15VGFza3NGaWx0ZXJJbnN0YW5jZShhcHBJZDogbnVtYmVyLCBpbmRleD86IG51bWJlcik6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgbmFtZTogJ015IFRhc2tzJyxcbiAgICAgICAgICAgIGFwcElkLFxuICAgICAgICAgICAgcmVjZW50OiBmYWxzZSxcbiAgICAgICAgICAgIGljb246ICdnbHlwaGljb24taW5ib3gnLFxuICAgICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAgICAgc29ydDogJ2NyZWF0ZWQtZGVzYycsXG4gICAgICAgICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdvcGVuJyxcbiAgICAgICAgICAgICAgICBhc3NpZ25tZW50OiAnYXNzaWduZWUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW5kZXhcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGZpbHRlciBmb3IgXCJPdmVyZHVlXCIgdGFzayBpbnN0YW5jZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwSWQgSUQgb2YgdGhlIHRhcmdldCBhcHBcbiAgICAgKiBAcGFyYW0gaW5kZXggb2YgdGhlIGZpbHRlciAob3B0aW9uYWwpXG4gICAgICogQHJldHVybnMgVGhlIG5ld2x5IGNyZWF0ZWQgZmlsdGVyXG4gICAgICovXG4gICAgZ2V0T3ZlcmR1ZVRhc2tzRmlsdGVySW5zdGFuY2UoYXBwSWQ6IG51bWJlciwgaW5kZXg/OiBudW1iZXIpOiBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uIHtcbiAgICAgICAgcmV0dXJuIG5ldyBVc2VyVGFza0ZpbHRlclJlcHJlc2VudGF0aW9uKHtcbiAgICAgICAgICAgIG5hbWU6ICdPdmVyZHVlIFRhc2tzJyxcbiAgICAgICAgICAgIGFwcElkLFxuICAgICAgICAgICAgcmVjZW50OiBmYWxzZSxcbiAgICAgICAgICAgIGljb246ICdnbHlwaGljb24tYWxpZ24tbGVmdCcsXG4gICAgICAgICAgICBmaWx0ZXI6IHsgc29ydDogJ2NyZWF0ZWQtZGVzYycsIG5hbWU6ICcnLCBzdGF0ZTogJ29wZW4nLCBhc3NpZ25tZW50OiAnYXNzaWduZWUnIH0sXG4gICAgICAgICAgICBpbmRleFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuZCByZXR1cm5zIGEgZmlsdGVyIGZvciBcIlVuYXNzaWduZWQgVGFza3NcIiB0YXNrIGluc3RhbmNlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBJZCBJRCBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEBwYXJhbSBpbmRleCBvZiB0aGUgZmlsdGVyIChvcHRpb25hbClcbiAgICAgKiBAcmV0dXJucyBUaGUgbmV3bHkgY3JlYXRlZCBmaWx0ZXJcbiAgICAgKi9cbiAgICBnZXRVbmFzc2lnbmVkVGFza3NGaWx0ZXJJbnN0YW5jZShhcHBJZDogbnVtYmVyLCBpbmRleD86IG51bWJlcik6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgbmFtZTogJ1VuYXNzaWduZWQgVGFza3MnLFxuICAgICAgICAgICAgYXBwSWQsXG4gICAgICAgICAgICByZWNlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgaWNvbjogJ2dseXBoaWNvbi1yZWNvcmQnLFxuICAgICAgICAgICAgZmlsdGVyOiB7IHNvcnQ6ICdjcmVhdGVkLWRlc2MnLCBuYW1lOiAnJywgc3RhdGU6ICdvcGVuJywgYXNzaWdubWVudDogJ2NhbmRpZGF0ZScgfSxcbiAgICAgICAgICAgIGluZGV4XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBmaWx0ZXIgZm9yIFwiQ29tcGxldGVkXCIgdGFzayBpbnN0YW5jZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwSWQgSUQgb2YgdGhlIHRhcmdldCBhcHBcbiAgICAgKiBAcGFyYW0gaW5kZXggb2YgdGhlIGZpbHRlciAob3B0aW9uYWwpXG4gICAgICogQHJldHVybnMgVGhlIG5ld2x5IGNyZWF0ZWQgZmlsdGVyXG4gICAgICovXG4gICAgZ2V0Q29tcGxldGVkVGFza3NGaWx0ZXJJbnN0YW5jZShhcHBJZDogbnVtYmVyLCBpbmRleD86IG51bWJlcik6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgbmFtZTogJ0NvbXBsZXRlZCBUYXNrcycsXG4gICAgICAgICAgICBhcHBJZCxcbiAgICAgICAgICAgIHJlY2VudDogdHJ1ZSxcbiAgICAgICAgICAgIGljb246ICdnbHlwaGljb24tb2stc2lnbicsXG4gICAgICAgICAgICBmaWx0ZXI6IHsgc29ydDogJ2NyZWF0ZWQtZGVzYycsIG5hbWU6ICcnLCBzdGF0ZTogJ2NvbXBsZXRlZCcsIGFzc2lnbm1lbnQ6ICdpbnZvbHZlZCcgfSxcbiAgICAgICAgICAgIGluZGV4XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -30,13 +30,13 @@ export class TaskUploadService extends UploadService {
|
|
|
30
30
|
const taskId = file.options.parentId;
|
|
31
31
|
return this.contentApi.createRelatedContentOnTask(taskId, file.file, opts);
|
|
32
32
|
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
34
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskUploadService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskUploadService, providedIn: 'root' }); }
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskUploadService, decorators: [{
|
|
37
37
|
type: Injectable,
|
|
38
38
|
args: [{
|
|
39
39
|
providedIn: 'root'
|
|
40
40
|
}]
|
|
41
41
|
}] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvdGFzay1saXN0L3NlcnZpY2VzL3Rhc2stdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFnQyxNQUFNLGtCQUFrQixDQUFDOztBQUtwRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsYUFBYTtJQUVoRCxJQUFJLFVBQVU7UUFDVixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDN0YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFTO1FBQ3RCLE1BQU0sSUFBSSxHQUFHO1lBQ1QsZ0JBQWdCLEVBQUUsSUFBSTtTQUN6QixDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9FLENBQUM7OEdBYlEsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGZCxNQUFNOzsyRkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2aXRpQ29udGVudEFwaSwgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbiB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tVcGxvYWRTZXJ2aWNlIGV4dGVuZHMgVXBsb2FkU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfY29udGVudEFwaTogQWN0aXZpdGlDb250ZW50QXBpO1xuICAgIGdldCBjb250ZW50QXBpKCk6IEFjdGl2aXRpQ29udGVudEFwaSB7XG4gICAgICAgIHRoaXMuX2NvbnRlbnRBcGkgPSB0aGlzLl9jb250ZW50QXBpID8/IG5ldyBBY3Rpdml0aUNvbnRlbnRBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudEFwaTtcbiAgICB9XG5cbiAgICBnZXRVcGxvYWRQcm9taXNlKGZpbGU6IGFueSk6IFByb21pc2U8UmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbj4ge1xuICAgICAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICAgICAgaXNSZWxhdGVkQ29udGVudDogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0YXNrSWQgPSBmaWxlLm9wdGlvbnMucGFyZW50SWQ7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRBcGkuY3JlYXRlUmVsYXRlZENvbnRlbnRPblRhc2sodGFza0lkLCBmaWxlLmZpbGUsIG9wdHMpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -239,13 +239,13 @@ export class TaskListService {
|
|
|
239
239
|
fetchTaskAuditJsonById(taskId) {
|
|
240
240
|
return from(this.tasksApi.getTaskAuditLog(taskId));
|
|
241
241
|
}
|
|
242
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
243
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
242
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
243
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskListService, providedIn: 'root' }); }
|
|
244
244
|
}
|
|
245
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TaskListService, decorators: [{
|
|
246
246
|
type: Injectable,
|
|
247
247
|
args: [{
|
|
248
248
|
providedIn: 'root'
|
|
249
249
|
}]
|
|
250
250
|
}] });
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2xpc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvdGFzay1saXN0L3NlcnZpY2VzL3Rhc2tsaXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBRUgsU0FBUyxFQUNULGNBQWMsRUFDZCxRQUFRLEVBQ1IsYUFBYSxFQUNiLDhDQUE4QyxFQUM5Qyx1QkFBdUIsRUFHMUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFLcEUsTUFBTSxPQUFPLGVBQWU7SUFINUI7UUFJYyxlQUFVLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0EwUHJEO0lBdlBHLElBQUksU0FBUztRQUNULElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFHRCxJQUFJLFFBQVE7UUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxX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SUFDSCxVQUFVLENBQUMsTUFBYyxFQUFFLE9BQWlDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHFCQUFxQixDQUFDLE1BQWM7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxzQkFBc0IsQ0FBQyxNQUFjO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQzsrR0ExUFEsZUFBZTttSEFBZixlQUFlLGNBRlosTUFBTTs7NEZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgY2F0Y2hFcnJvciwgZmxhdE1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9ybSB9IGZyb20gJy4uL21vZGVscy9mb3JtLm1vZGVsJztcbmltcG9ydCB7XG4gICAgVGFza1VwZGF0ZVJlcHJlc2VudGF0aW9uLFxuICAgIE1vZGVsc0FwaSxcbiAgICBUYXNrQWN0aW9uc0FwaSxcbiAgICBUYXNrc0FwaSxcbiAgICBDaGVja2xpc3RzQXBpLFxuICAgIFJlc3VsdExpc3REYXRhUmVwcmVzZW50YXRpb25UYXNrUmVwcmVzZW50YXRpb24sXG4gICAgVGFza1F1ZXJ5UmVwcmVzZW50YXRpb24sXG4gICAgVXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbixcbiAgICBUYXNrUmVwcmVzZW50YXRpb25cbn0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tMaXN0U2VydmljZSB7XG4gICAgcHJvdGVjdGVkIGFwaVNlcnZpY2UgPSBpbmplY3QoQWxmcmVzY29BcGlTZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgX21vZGVsc0FwaTogTW9kZWxzQXBpO1xuICAgIGdldCBtb2RlbHNBcGkoKTogTW9kZWxzQXBpIHtcbiAgICAgICAgdGhpcy5fbW9kZWxzQXBpID0gdGhpcy5fbW9kZWxzQXBpID8/IG5ldyBNb2RlbHNBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWxzQXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Rhc2tzQXBpOiBUYXNrc0FwaTtcbiAgICBnZXQgdGFza3NBcGkoKTogVGFza3NBcGkge1xuICAgICAgICB0aGlzLl90YXNrc0FwaSA9IHRoaXMuX3Rhc2tzQXBpID8/IG5ldyBUYXNrc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXNrc0FwaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF90YXNrQWN0aW9uc0FwaTogVGFza0FjdGlvbnNBcGk7XG4gICAgZ2V0IHRhc2tBY3Rpb25zQXBpKCk6IFRhc2tBY3Rpb25zQXBpIHtcbiAgICAgICAgdGhpcy5fdGFza0FjdGlvbnNBcGkgPSB0aGlzLl90YXNrQWN0aW9uc0FwaSA/PyBuZXcgVGFza0FjdGlvbnNBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza0FjdGlvbnNBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hlY2tsaXN0c0FwaTogQ2hlY2tsaXN0c0FwaTtcbiAgICBnZXQgY2hlY2tsaXN0c0FwaSgpOiBDaGVja2xpc3RzQXBpIHtcbiAgICAgICAgdGhpcy5fY2hlY2tsaXN0c0FwaSA9IHRoaXMuX2NoZWNrbGlzdHNBcGkgPz8gbmV3IENoZWNrbGlzdHNBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fY2hlY2tsaXN0c0FwaTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCB0aGUgZmlsdGVycyBpbiB0aGUgbGlzdCB0aGF0IGJlbG9uZyB0byBhIHRhc2suXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFza0lkIElEIG9mIHRoZSB0YXJnZXQgdGFza1xuICAgICAqIEBwYXJhbSBmaWx0ZXJMaXN0IExpc3Qgb2YgZmlsdGVycyB0byBzZWFyY2ggdGhyb3VnaFxuICAgICAqIEByZXR1cm5zIEZpbHRlcnMgYmVsb25naW5nIHRvIHRoZSB0YXNrXG4gICAgICovXG4gICAgZ2V0RmlsdGVyRm9yVGFza0J5SWQodGFza0lkOiBzdHJpbmcsIGZpbHRlckxpc3Q6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb25bXSk6IE9ic2VydmFibGU8VXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbj4ge1xuICAgICAgICByZXR1cm4gZnJvbShmaWx0ZXJMaXN0KS5waXBlKFxuICAgICAgICAgICAgZmxhdE1hcCgoZGF0YSkgPT4gdGhpcy5pc1Rhc2tSZWxhdGVkVG9GaWx0ZXIodGFza0lkLCBkYXRhKSksXG4gICAgICAgICAgICBmaWx0ZXIoKGRhdGEpID0+IGRhdGEgIT0gbnVsbClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYSB0YXNrSWQgaXMgZmlsdGVyZWQgd2l0aCB0aGUgZ2l2ZW4gZmlsdGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFyZ2V0IHRhc2tcbiAgICAgKiBAcGFyYW0gZmlsdGVyTW9kZWwgVGhlIGZpbHRlciB5b3Ugd2FudCB0byBjaGVja1xuICAgICAqIEByZXR1cm5zIFRoZSBmaWx0ZXIgaWYgaXQgaXMgcmVsYXRlZCBvciBudWxsIG90aGVyd2lzZVxuICAgICAqL1xuICAgIGlzVGFza1JlbGF0ZWRUb0ZpbHRlcih0YXNrSWQ6IHN0cmluZywgZmlsdGVyTW9kZWw6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24pOiBPYnNlcnZhYmxlPFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdE5vZGVGb3JGaWx0ZXIgPSBuZXcgVGFza1F1ZXJ5UmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgYXBwRGVmaW5pdGlvbklkOiBmaWx0ZXJNb2RlbC5hcHBJZCxcbiAgICAgICAgICAgIGFzc2lnbm1lbnQ6IGZpbHRlck1vZGVsLmZpbHRlci5hc3NpZ25tZW50LFxuICAgICAgICAgICAgc3RhdGU6IGZpbHRlck1vZGVsLmZpbHRlci5zdGF0ZSxcbiAgICAgICAgICAgIHNvcnQ6IGZpbHRlck1vZGVsLmZpbHRlci5zb3J0XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnRhc2tzQXBpLmxpc3RUYXNrcyhyZXF1ZXN0Tm9kZUZvckZpbHRlcikpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlcykgPT4gKHJlcy5kYXRhLmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQuaWQgPT09IHRhc2tJZCkgPyBmaWx0ZXJNb2RlbCA6IG51bGwpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIHRoZSB0YXNrcyBtYXRjaGluZyB0aGUgc3VwcGxpZWQgcXVlcnkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE5vZGUgUXVlcnkgdG8gc2VhcmNoIGZvciB0YXNrc1xuICAgICAqIEByZXR1cm5zIExpc3Qgb2YgdGFza3NcbiAgICAgKi9cbiAgICBnZXRUYXNrcyhyZXF1ZXN0Tm9kZTogVGFza1F1ZXJ5UmVwcmVzZW50YXRpb24pOiBPYnNlcnZhYmxlPFJlc3VsdExpc3REYXRhUmVwcmVzZW50YXRpb25UYXNrUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50YXNrc0FwaS5saXN0VGFza3MocmVxdWVzdE5vZGUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRhc2tzIG1hdGNoaW5nIGEgcXVlcnkgYW5kIHN0YXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3ROb2RlIFF1ZXJ5IHRvIHNlYXJjaCBmb3IgdGFza3NcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIHRhc2tzXG4gICAgICovXG4gICAgZmluZFRhc2tzQnlTdGF0ZShyZXF1ZXN0Tm9kZTogVGFza1F1ZXJ5UmVwcmVzZW50YXRpb24pOiBPYnNlcnZhYmxlPFJlc3VsdExpc3REYXRhUmVwcmVzZW50YXRpb25UYXNrUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGFza3MocmVxdWVzdE5vZGUpLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZihuZXcgUmVzdWx0TGlzdERhdGFSZXByZXNlbnRhdGlvblRhc2tSZXByZXNlbnRhdGlvbih7IGRhdGE6IFtdIH0pKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgZGV0YWlscyBmb3IgYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFyZ2V0IHRhc2suXG4gICAgICogQHJldHVybnMgVGFzayBkZXRhaWxzXG4gICAgICovXG4gICAgZ2V0VGFza0RldGFpbHModGFza0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRhc2tSZXByZXNlbnRhdGlvbj4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnRhc2tzQXBpLmdldFRhc2sodGFza0lkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgY2hlY2tsaXN0IGZvciBhIHRhc2suXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIHRhcmdldCB0YXNrXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgY2hlY2tsaXN0IHRhc2sgZGV0YWlsc1xuICAgICAqL1xuICAgIGdldFRhc2tDaGVja2xpc3QoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1JlcHJlc2VudGF0aW9uW10+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5jaGVja2xpc3RzQXBpLmdldENoZWNrbGlzdChpZCkpLnBpcGUobWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuZGF0YSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIGF2YWlsYWJsZSByZXVzYWJsZSBmb3Jtcy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIGZvcm0gZGV0YWlsc1xuICAgICAqL1xuICAgIGdldEZvcm1MaXN0KCk6IE9ic2VydmFibGU8Rm9ybVtdPiB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgICBmaWx0ZXI6ICdteVJldXNhYmxlRm9ybXMnLCAvLyBTdHJpbmcgfCBmaWx0ZXJcbiAgICAgICAgICAgIHNvcnQ6ICdtb2RpZmllZERlc2MnLCAvLyBTdHJpbmcgfCBzb3J0XG4gICAgICAgICAgICBtb2RlbFR5cGU6IDIgLy8gSW50ZWdlciB8IG1vZGVsVHlwZVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMubW9kZWxzQXBpLmdldE1vZGVscyhvcHRzKSkucGlwZShtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5kYXRhLm1hcCgoZm9ybSkgPT4gbmV3IEZvcm0oZm9ybS5pZCwgZm9ybS5uYW1lKSkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBdHRhY2hlcyBhIGZvcm0gdG8gYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFyZ2V0IHRhc2tcbiAgICAgKiBAcGFyYW0gZm9ybUlkIElEIG9mIHRoZSBmb3JtIHRvIGFkZFxuICAgICAqIEByZXR1cm5zIE51bGwgcmVzcG9uc2Ugbm90aWZ5aW5nIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZVxuICAgICAqL1xuICAgIGF0dGFjaEZvcm1Ub0FUYXNrKHRhc2tJZDogc3RyaW5nLCBmb3JtSWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMudGFza0FjdGlvbnNBcGkuYXR0YWNoRm9ybSh0YXNrSWQsIHsgZm9ybUlkIH0pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgc3VidGFzayAoaWUsIGEgY2hlY2tsaXN0IHRhc2spIHRvIGEgcGFyZW50IHRhc2suXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFzayBUaGUgdGFzayB0byBhZGRcbiAgICAgKiBAcmV0dXJucyBUaGUgc3VidGFzayB0aGF0IHdhcyBhZGRlZFxuICAgICAqL1xuICAgIGFkZFRhc2sodGFzazogVGFza1JlcHJlc2VudGF0aW9uKTogT2JzZXJ2YWJsZTxUYXNrUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5jaGVja2xpc3RzQXBpLmFkZFN1YnRhc2sodGFzay5wYXJlbnRUYXNrSWQsIHRhc2spKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGEgc3VidGFzayAoaWUsIGEgY2hlY2tsaXN0IHRhc2spIGZyb20gYSBwYXJlbnQgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrSWQgVGhlIHRhc2sgdG8gZGVsZXRlXG4gICAgICogQHJldHVybnMgTnVsbCByZXNwb25zZSBub3RpZnlpbmcgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlXG4gICAgICovXG4gICAgZGVsZXRlVGFzayh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMudGFza3NBcGkuZGVsZXRlVGFzayh0YXNrSWQpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGEgZm9ybSBmcm9tIGEgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrSWQgVGFzayBpZCByZWxhdGVkIHRvIGZvcm1cbiAgICAgKiBAcmV0dXJucyBOdWxsIHJlc3BvbnNlIG5vdGlmeWluZyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAgICAgKi9cbiAgICBkZWxldGVGb3JtKHRhc2tJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50YXNrQWN0aW9uc0FwaS5yZW1vdmVGb3JtKHRhc2tJZCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdpdmVzIGNvbXBsZXRlZCBzdGF0dXMgdG8gYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFyZ2V0IHRhc2tcbiAgICAgKiBAcmV0dXJucyBOdWxsIHJlc3BvbnNlIG5vdGlmeWluZyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAgICAgKi9cbiAgICBjb21wbGV0ZVRhc2sodGFza0lkOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50YXNrQWN0aW9uc0FwaS5jb21wbGV0ZVRhc2sodGFza0lkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBzdGFuZGFsb25lIHRhc2suXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFzayBEZXRhaWxzIG9mIHRoZSBuZXcgdGFza1xuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgdGFza1xuICAgICAqL1xuICAgIGNyZWF0ZU5ld1Rhc2sodGFzazogVGFza1JlcHJlc2VudGF0aW9uKTogT2JzZXJ2YWJsZTxUYXNrUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50YXNrc0FwaS5jcmVhdGVOZXdUYXNrKHRhc2spKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBc3NpZ25zIGEgdGFzayB0byBhIHVzZXIgb3IgZ3JvdXAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFza0lkIFRoZSB0YXNrIHRvIGFzc2lnblxuICAgICAqIEBwYXJhbSByZXF1ZXN0Tm9kZSBVc2VyIG9yIGdyb3VwIHRvIGFzc2lnbiB0aGUgdGFzayB0b1xuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIGFzc2lnbmVkIHRhc2tcbiAgICAgKi9cbiAgICBhc3NpZ25UYXNrKHRhc2tJZDogc3RyaW5nLCByZXF1ZXN0Tm9kZTogYW55KTogT2JzZXJ2YWJsZTxUYXNrUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgY29uc3QgYXNzaWduZWUgPSB7IGFzc2lnbmVlOiByZXF1ZXN0Tm9kZS5pZCB9O1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnRhc2tBY3Rpb25zQXBpLmFzc2lnblRhc2sodGFza0lkLCBhc3NpZ25lZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFzc2lnbnMgYSB0YXNrIHRvIGEgdXNlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gYXNzaWduXG4gICAgICogQHBhcmFtIHVzZXJJZCBJRCBvZiB0aGUgdXNlciB0byBhc3NpZ24gdGhlIHRhc2sgdG9cbiAgICAgKiBAcmV0dXJucyBEZXRhaWxzIG9mIHRoZSBhc3NpZ25lZCB0YXNrXG4gICAgICovXG4gICAgYXNzaWduVGFza0J5VXNlcklkKHRhc2tJZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1JlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIGNvbnN0IGFzc2lnbmVlID0geyBhc3NpZ25lZTogdXNlcklkIH07XG5cbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50YXNrQWN0aW9uc0FwaS5hc3NpZ25UYXNrKHRhc2tJZCwgYXNzaWduZWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGFpbXMgYSB0YXNrIGZvciB0aGUgY3VycmVudCB1c2VyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFzayB0byBjbGFpbVxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIGNsYWltZWQgdGFza1xuICAgICAqL1xuICAgIGNsYWltVGFzayh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1JlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMudGFza0FjdGlvbnNBcGkuY2xhaW1UYXNrKHRhc2tJZCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVuLWNsYWltcyBhIHRhc2sgZm9yIHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFza0lkIElEIG9mIHRoZSB0YXNrIHRvIHVuY2xhaW1cbiAgICAgKiBAcmV0dXJucyBOdWxsIHJlc3BvbnNlIG5vdGlmeWluZyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAgICAgKi9cbiAgICB1bmNsYWltVGFzayh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1JlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMudGFza0FjdGlvbnNBcGkudW5jbGFpbVRhc2sodGFza0lkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgZGV0YWlscyAobmFtZSwgZGVzY3JpcHRpb24sIGR1ZSBkYXRlKSBmb3IgYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFzayB0byB1cGRhdGVcbiAgICAgKiBAcGFyYW0gdXBkYXRlZCBEYXRhIHRvIHVwZGF0ZSB0aGUgdGFzayAoYXMgYSBgVGFza1VwZGF0ZVJlcHJlc2VudGF0aW9uYCBpbnN0YW5jZSkuXG4gICAgICogQHJldHVybnMgVXBkYXRlZCB0YXNrIGRldGFpbHNcbiAgICAgKi9cbiAgICB1cGRhdGVUYXNrKHRhc2tJZDogc3RyaW5nLCB1cGRhdGVkOiBUYXNrVXBkYXRlUmVwcmVzZW50YXRpb24pOiBPYnNlcnZhYmxlPFRhc2tSZXByZXNlbnRhdGlvbj4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnRhc2tzQXBpLnVwZGF0ZVRhc2sodGFza0lkLCB1cGRhdGVkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmV0Y2hlcyB0aGUgVGFzayBBdWRpdCBpbmZvcm1hdGlvbiBpbiBQREYgZm9ybWF0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFyZ2V0IHRhc2tcbiAgICAgKiBAcmV0dXJucyBCaW5hcnkgUERGIGRhdGFcbiAgICAgKi9cbiAgICBmZXRjaFRhc2tBdWRpdFBkZkJ5SWQodGFza0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50YXNrc0FwaS5nZXRUYXNrQXVkaXRQZGYodGFza0lkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmV0Y2ggdGhlIFRhc2sgQXVkaXQgaW5mb3JtYXRpb24gaW4gSlNPTiBmb3JtYXRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhcmdldCB0YXNrXG4gICAgICogQHJldHVybnMgSlNPTiBkYXRhXG4gICAgICovXG4gICAgZmV0Y2hUYXNrQXVkaXRKc29uQnlJZCh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMudGFza3NBcGkuZ2V0VGFza0F1ZGl0TG9nKHRhc2tJZCkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2xpc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvdGFzay1saXN0L3NlcnZpY2VzL3Rhc2tsaXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBRUgsU0FBUyxFQUNULGNBQWMsRUFDZCxRQUFRLEVBQ1IsYUFBYSxFQUNiLDhDQUE4QyxFQUM5Qyx1QkFBdUIsRUFHMUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFLcEUsTUFBTSxPQUFPLGVBQWU7SUFINUI7UUFJYyxlQUFVLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0EwUHJEO0lBdlBHLElBQUksU0FBUztRQUNULElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFHRCxJQUFJLFFBQVE7UUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxX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SUFDSCxVQUFVLENBQUMsTUFBYyxFQUFFLE9BQWlDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHFCQUFxQixDQUFDLE1BQWM7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxzQkFBc0IsQ0FBQyxNQUFjO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs4R0ExUFEsZUFBZTtrSEFBZixlQUFlLGNBRlosTUFBTTs7MkZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgY2F0Y2hFcnJvciwgZmxhdE1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9ybSB9IGZyb20gJy4uL21vZGVscy9mb3JtLm1vZGVsJztcbmltcG9ydCB7XG4gICAgVGFza1VwZGF0ZVJlcHJlc2VudGF0aW9uLFxuICAgIE1vZGVsc0FwaSxcbiAgICBUYXNrQWN0aW9uc0FwaSxcbiAgICBUYXNrc0FwaSxcbiAgICBDaGVja2xpc3RzQXBpLFxuICAgIFJlc3VsdExpc3REYXRhUmVwcmVzZW50YXRpb25UYXNrUmVwcmVzZW50YXRpb24sXG4gICAgVGFza1F1ZXJ5UmVwcmVzZW50YXRpb24sXG4gICAgVXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbixcbiAgICBUYXNrUmVwcmVzZW50YXRpb25cbn0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tMaXN0U2VydmljZSB7XG4gICAgcHJvdGVjdGVkIGFwaVNlcnZpY2UgPSBpbmplY3QoQWxmcmVzY29BcGlTZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgX21vZGVsc0FwaTogTW9kZWxzQXBpO1xuICAgIGdldCBtb2RlbHNBcGkoKTogTW9kZWxzQXBpIHtcbiAgICAgICAgdGhpcy5fbW9kZWxzQXBpID0gdGhpcy5fbW9kZWxzQXBpID8/IG5ldyBNb2RlbHNBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWxzQXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Rhc2tzQXBpOiBUYXNrc0FwaTtcbiAgICBnZXQgdGFza3NBcGkoKTogVGFza3NBcGkge1xuICAgICAgICB0aGlzLl90YXNrc0FwaSA9IHRoaXMuX3Rhc2tzQXBpID8/IG5ldyBUYXNrc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXNrc0FwaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF90YXNrQWN0aW9uc0FwaTogVGFza0FjdGlvbnNBcGk7XG4gICAgZ2V0IHRhc2tBY3Rpb25zQXBpKCk6IFRhc2tBY3Rpb25zQXBpIHtcbiAgICAgICAgdGhpcy5fdGFza0FjdGlvbnNBcGkgPSB0aGlzLl90YXNrQWN0aW9uc0FwaSA/PyBuZXcgVGFza0FjdGlvbnNBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza0FjdGlvbnNBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hlY2tsaXN0c0FwaTogQ2hlY2tsaXN0c0FwaTtcbiAgICBnZXQgY2hlY2tsaXN0c0FwaSgpOiBDaGVja2xpc3RzQXBpIHtcbiAgICAgICAgdGhpcy5fY2hlY2tsaXN0c0FwaSA9IHRoaXMuX2NoZWNrbGlzdHNBcGkgPz8gbmV3IENoZWNrbGlzdHNBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fY2hlY2tsaXN0c0FwaTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCB0aGUgZmlsdGVycyBpbiB0aGUgbGlzdCB0aGF0IGJlbG9uZyB0byBhIHRhc2suXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFza0lkIElEIG9mIHRoZSB0YXJnZXQgdGFza1xuICAgICAqIEBwYXJhbSBmaWx0ZXJMaXN0IExpc3Qgb2YgZmlsdGVycyB0byBzZWFyY2ggdGhyb3VnaFxuICAgICAqIEByZXR1cm5zIEZpbHRlcnMgYmVsb25naW5nIHRvIHRoZSB0YXNrXG4gICAgICovXG4gICAgZ2V0RmlsdGVyRm9yVGFza0J5SWQodGFza0lkOiBzdHJpbmcsIGZpbHRlckxpc3Q6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb25bXSk6IE9ic2VydmFibGU8VXNlclRhc2tGaWx0ZXJSZXByZXNlbnRhdGlvbj4ge1xuICAgICAgICByZXR1cm4gZnJvbShmaWx0ZXJMaXN0KS5waXBlKFxuICAgICAgICAgICAgZmxhdE1hcCgoZGF0YSkgPT4gdGhpcy5pc1Rhc2tSZWxhdGVkVG9GaWx0ZXIodGFza0lkLCBkYXRhKSksXG4gICAgICAgICAgICBmaWx0ZXIoKGRhdGEpID0+IGRhdGEgIT0gbnVsbClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYSB0YXNrSWQgaXMgZmlsdGVyZWQgd2l0aCB0aGUgZ2l2ZW4gZmlsdGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFyZ2V0IHRhc2tcbiAgICAgKiBAcGFyYW0gZmlsdGVyTW9kZWwgVGhlIGZpbHRlciB5b3Ugd2FudCB0byBjaGVja1xuICAgICAqIEByZXR1cm5zIFRoZSBmaWx0ZXIgaWYgaXQgaXMgcmVsYXRlZCBvciBudWxsIG90aGVyd2lzZVxuICAgICAqL1xuICAgIGlzVGFza1JlbGF0ZWRUb0ZpbHRlcih0YXNrSWQ6IHN0cmluZywgZmlsdGVyTW9kZWw6IFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24pOiBPYnNlcnZhYmxlPFVzZXJUYXNrRmlsdGVyUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdE5vZGVGb3JGaWx0ZXIgPSBuZXcgVGFza1F1ZXJ5UmVwcmVzZW50YXRpb24oe1xuICAgICAgICAgICAgYXBwRGVmaW5pdGlvbklkOiBmaWx0ZXJNb2RlbC5hcHBJZCxcbiAgICAgICAgICAgIGFzc2lnbm1lbnQ6IGZpbHRlck1vZGVsLmZpbHRlci5hc3NpZ25tZW50LFxuICAgICAgICAgICAgc3RhdGU6IGZpbHRlck1vZGVsLmZpbHRlci5zdGF0ZSxcbiAgICAgICAgICAgIHNvcnQ6IGZpbHRlck1vZGVsLmZpbHRlci5zb3J0XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnRhc2tzQXBpLmxpc3RUYXNrcyhyZXF1ZXN0Tm9kZUZvckZpbHRlcikpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlcykgPT4gKHJlcy5kYXRhLmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQuaWQgPT09IHRhc2tJZCkgPyBmaWx0ZXJNb2RlbCA6IG51bGwpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIHRoZSB0YXNrcyBtYXRjaGluZyB0aGUgc3VwcGxpZWQgcXVlcnkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE5vZGUgUXVlcnkgdG8gc2VhcmNoIGZvciB0YXNrc1xuICAgICAqIEByZXR1cm5zIExpc3Qgb2YgdGFza3NcbiAgICAgKi9cbiAgICBnZXRUYXNrcyhyZXF1ZXN0Tm9kZTogVGFza1F1ZXJ5UmVwcmVzZW50YXRpb24pOiBPYnNlcnZhYmxlPFJlc3VsdExpc3REYXRhUmVwcmVzZW50YXRpb25UYXNrUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50YXNrc0FwaS5saXN0VGFza3MocmVxdWVzdE5vZGUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRhc2tzIG1hdGNoaW5nIGEgcXVlcnkgYW5kIHN0YXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3ROb2RlIFF1ZXJ5IHRvIHNlYXJjaCBmb3IgdGFza3NcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIHRhc2tzXG4gICAgICovXG4gICAgZmluZFRhc2tzQnlTdGF0ZShyZXF1ZXN0Tm9kZTogVGFza1F1ZXJ5UmVwcmVzZW50YXRpb24pOiBPYnNlcnZhYmxlPFJlc3VsdExpc3REYXRhUmVwcmVzZW50YXRpb25UYXNrUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGFza3MocmVxdWVzdE5vZGUpLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZihuZXcgUmVzdWx0TGlzdERhdGFSZXByZXNlbnRhdGlvblRhc2tSZXByZXNlbnRhdGlvbih7IGRhdGE6IFtdIH0pKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgZGV0YWlscyBmb3IgYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFyZ2V0IHRhc2suXG4gICAgICogQHJldHVybnMgVGFzayBkZXRhaWxzXG4gICAgICovXG4gICAgZ2V0VGFza0RldGFpbHModGFza0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRhc2tSZXByZXNlbnRhdGlvbj4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnRhc2tzQXBpLmdldFRhc2sodGFza0lkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgY2hlY2tsaXN0IGZvciBhIHRhc2suXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIHRhcmdldCB0YXNrXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgY2hlY2tsaXN0IHRhc2sgZGV0YWlsc1xuICAgICAqL1xuICAgIGdldFRhc2tDaGVja2xpc3QoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1JlcHJlc2VudGF0aW9uW10+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5jaGVja2xpc3RzQXBpLmdldENoZWNrbGlzdChpZCkpLnBpcGUobWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuZGF0YSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIGF2YWlsYWJsZSByZXVzYWJsZSBmb3Jtcy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIGZvcm0gZGV0YWlsc1xuICAgICAqL1xuICAgIGdldEZvcm1MaXN0KCk6IE9ic2VydmFibGU8Rm9ybVtdPiB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgICBmaWx0ZXI6ICdteVJldXNhYmxlRm9ybXMnLCAvLyBTdHJpbmcgfCBmaWx0ZXJcbiAgICAgICAgICAgIHNvcnQ6ICdtb2RpZmllZERlc2MnLCAvLyBTdHJpbmcgfCBzb3J0XG4gICAgICAgICAgICBtb2RlbFR5cGU6IDIgLy8gSW50ZWdlciB8IG1vZGVsVHlwZVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMubW9kZWxzQXBpLmdldE1vZGVscyhvcHRzKSkucGlwZShtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5kYXRhLm1hcCgoZm9ybSkgPT4gbmV3IEZvcm0oZm9ybS5pZCwgZm9ybS5uYW1lKSkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBdHRhY2hlcyBhIGZvcm0gdG8gYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFyZ2V0IHRhc2tcbiAgICAgKiBAcGFyYW0gZm9ybUlkIElEIG9mIHRoZSBmb3JtIHRvIGFkZFxuICAgICAqIEByZXR1cm5zIE51bGwgcmVzcG9uc2Ugbm90aWZ5aW5nIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZVxuICAgICAqL1xuICAgIGF0dGFjaEZvcm1Ub0FUYXNrKHRhc2tJZDogc3RyaW5nLCBmb3JtSWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMudGFza0FjdGlvbnNBcGkuYXR0YWNoRm9ybSh0YXNrSWQsIHsgZm9ybUlkIH0pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgc3VidGFzayAoaWUsIGEgY2hlY2tsaXN0IHRhc2spIHRvIGEgcGFyZW50IHRhc2suXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFzayBUaGUgdGFzayB0byBhZGRcbiAgICAgKiBAcmV0dXJucyBUaGUgc3VidGFzayB0aGF0IHdhcyBhZGRlZFxuICAgICAqL1xuICAgIGFkZFRhc2sodGFzazogVGFza1JlcHJlc2VudGF0aW9uKTogT2JzZXJ2YWJsZTxUYXNrUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5jaGVja2xpc3RzQXBpLmFkZFN1YnRhc2sodGFzay5wYXJlbnRUYXNrSWQsIHRhc2spKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGEgc3VidGFzayAoaWUsIGEgY2hlY2tsaXN0IHRhc2spIGZyb20gYSBwYXJlbnQgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrSWQgVGhlIHRhc2sgdG8gZGVsZXRlXG4gICAgICogQHJldHVybnMgTnVsbCByZXNwb25zZSBub3RpZnlpbmcgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlXG4gICAgICovXG4gICAgZGVsZXRlVGFzayh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMudGFza3NBcGkuZGVsZXRlVGFzayh0YXNrSWQpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGEgZm9ybSBmcm9tIGEgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrSWQgVGFzayBpZCByZWxhdGVkIHRvIGZvcm1cbiAgICAgKiBAcmV0dXJucyBOdWxsIHJlc3BvbnNlIG5vdGlmeWluZyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAgICAgKi9cbiAgICBkZWxldGVGb3JtKHRhc2tJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50YXNrQWN0aW9uc0FwaS5yZW1vdmVGb3JtKHRhc2tJZCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdpdmVzIGNvbXBsZXRlZCBzdGF0dXMgdG8gYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFyZ2V0IHRhc2tcbiAgICAgKiBAcmV0dXJucyBOdWxsIHJlc3BvbnNlIG5vdGlmeWluZyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAgICAgKi9cbiAgICBjb21wbGV0ZVRhc2sodGFza0lkOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50YXNrQWN0aW9uc0FwaS5jb21wbGV0ZVRhc2sodGFza0lkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBzdGFuZGFsb25lIHRhc2suXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFzayBEZXRhaWxzIG9mIHRoZSBuZXcgdGFza1xuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgdGFza1xuICAgICAqL1xuICAgIGNyZWF0ZU5ld1Rhc2sodGFzazogVGFza1JlcHJlc2VudGF0aW9uKTogT2JzZXJ2YWJsZTxUYXNrUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50YXNrc0FwaS5jcmVhdGVOZXdUYXNrKHRhc2spKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBc3NpZ25zIGEgdGFzayB0byBhIHVzZXIgb3IgZ3JvdXAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFza0lkIFRoZSB0YXNrIHRvIGFzc2lnblxuICAgICAqIEBwYXJhbSByZXF1ZXN0Tm9kZSBVc2VyIG9yIGdyb3VwIHRvIGFzc2lnbiB0aGUgdGFzayB0b1xuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIGFzc2lnbmVkIHRhc2tcbiAgICAgKi9cbiAgICBhc3NpZ25UYXNrKHRhc2tJZDogc3RyaW5nLCByZXF1ZXN0Tm9kZTogYW55KTogT2JzZXJ2YWJsZTxUYXNrUmVwcmVzZW50YXRpb24+IHtcbiAgICAgICAgY29uc3QgYXNzaWduZWUgPSB7IGFzc2lnbmVlOiByZXF1ZXN0Tm9kZS5pZCB9O1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnRhc2tBY3Rpb25zQXBpLmFzc2lnblRhc2sodGFza0lkLCBhc3NpZ25lZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFzc2lnbnMgYSB0YXNrIHRvIGEgdXNlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gYXNzaWduXG4gICAgICogQHBhcmFtIHVzZXJJZCBJRCBvZiB0aGUgdXNlciB0byBhc3NpZ24gdGhlIHRhc2sgdG9cbiAgICAgKiBAcmV0dXJucyBEZXRhaWxzIG9mIHRoZSBhc3NpZ25lZCB0YXNrXG4gICAgICovXG4gICAgYXNzaWduVGFza0J5VXNlcklkKHRhc2tJZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1JlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIGNvbnN0IGFzc2lnbmVlID0geyBhc3NpZ25lZTogdXNlcklkIH07XG5cbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50YXNrQWN0aW9uc0FwaS5hc3NpZ25UYXNrKHRhc2tJZCwgYXNzaWduZWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGFpbXMgYSB0YXNrIGZvciB0aGUgY3VycmVudCB1c2VyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFzayB0byBjbGFpbVxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIGNsYWltZWQgdGFza1xuICAgICAqL1xuICAgIGNsYWltVGFzayh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1JlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMudGFza0FjdGlvbnNBcGkuY2xhaW1UYXNrKHRhc2tJZCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVuLWNsYWltcyBhIHRhc2sgZm9yIHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFza0lkIElEIG9mIHRoZSB0YXNrIHRvIHVuY2xhaW1cbiAgICAgKiBAcmV0dXJucyBOdWxsIHJlc3BvbnNlIG5vdGlmeWluZyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAgICAgKi9cbiAgICB1bmNsYWltVGFzayh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1JlcHJlc2VudGF0aW9uPiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMudGFza0FjdGlvbnNBcGkudW5jbGFpbVRhc2sodGFza0lkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgZGV0YWlscyAobmFtZSwgZGVzY3JpcHRpb24sIGR1ZSBkYXRlKSBmb3IgYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFzayB0byB1cGRhdGVcbiAgICAgKiBAcGFyYW0gdXBkYXRlZCBEYXRhIHRvIHVwZGF0ZSB0aGUgdGFzayAoYXMgYSBgVGFza1VwZGF0ZVJlcHJlc2VudGF0aW9uYCBpbnN0YW5jZSkuXG4gICAgICogQHJldHVybnMgVXBkYXRlZCB0YXNrIGRldGFpbHNcbiAgICAgKi9cbiAgICB1cGRhdGVUYXNrKHRhc2tJZDogc3RyaW5nLCB1cGRhdGVkOiBUYXNrVXBkYXRlUmVwcmVzZW50YXRpb24pOiBPYnNlcnZhYmxlPFRhc2tSZXByZXNlbnRhdGlvbj4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLnRhc2tzQXBpLnVwZGF0ZVRhc2sodGFza0lkLCB1cGRhdGVkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmV0Y2hlcyB0aGUgVGFzayBBdWRpdCBpbmZvcm1hdGlvbiBpbiBQREYgZm9ybWF0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFyZ2V0IHRhc2tcbiAgICAgKiBAcmV0dXJucyBCaW5hcnkgUERGIGRhdGFcbiAgICAgKi9cbiAgICBmZXRjaFRhc2tBdWRpdFBkZkJ5SWQodGFza0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy50YXNrc0FwaS5nZXRUYXNrQXVkaXRQZGYodGFza0lkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmV0Y2ggdGhlIFRhc2sgQXVkaXQgaW5mb3JtYXRpb24gaW4gSlNPTiBmb3JtYXRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhcmdldCB0YXNrXG4gICAgICogQHJldHVybnMgSlNPTiBkYXRhXG4gICAgICovXG4gICAgZmV0Y2hUYXNrQXVkaXRKc29uQnlJZCh0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMudGFza3NBcGkuZ2V0VGFza0F1ZGl0TG9nKHRhc2tJZCkpO1xuICAgIH1cbn1cbiJdfQ==
|