@alfresco/adf-process-services-cloud 8.1.0-15280782128 → 8.1.0-15307049517
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/adf-process-services-cloud.mjs +5 -0
- package/esm2022/lib/app/app-list-cloud.module.mjs +20 -0
- package/esm2022/lib/app/components/app-details-cloud/app-details-cloud.component.mjs +67 -0
- package/esm2022/lib/app/components/app-list-cloud/app-list-cloud.component.mjs +126 -0
- package/esm2022/lib/app/models/application-instance.model.mjs +24 -0
- package/esm2022/lib/app/public-api.mjs +22 -0
- package/esm2022/lib/app/services/apps-process-cloud.service.mjs +97 -0
- package/esm2022/lib/common/date-range-filter/date-range-filter.component.mjs +164 -0
- package/esm2022/lib/common/date-range-filter/date-range-filter.service.mjs +97 -0
- package/esm2022/lib/common/index.mjs +18 -0
- package/esm2022/lib/common/interface/environment.interface.mjs +18 -0
- package/esm2022/lib/common/interface/index.mjs +18 -0
- package/esm2022/lib/common/interface/public-api.mjs +18 -0
- package/esm2022/lib/common/public-api.mjs +19 -0
- package/esm2022/lib/form/components/cloud-form-rendering.service.mjs +57 -0
- package/esm2022/lib/form/components/form-cloud-custom-outcomes.component.mjs +31 -0
- package/esm2022/lib/form/components/form-cloud.component.mjs +416 -0
- package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +54 -0
- package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +36 -0
- package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +250 -0
- package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +137 -0
- package/esm2022/lib/form/components/widgets/data-table/data-table-adapter.widget.mjs +107 -0
- package/esm2022/lib/form/components/widgets/data-table/data-table.widget.mjs +121 -0
- package/esm2022/lib/form/components/widgets/data-table/helpers/data-table-path-parser.helper.mjs +122 -0
- package/esm2022/lib/form/components/widgets/date/date-cloud.widget.mjs +190 -0
- package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +86 -0
- package/esm2022/lib/form/components/widgets/display-rich-text/display-rich-text.widget.mjs +80 -0
- package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +464 -0
- package/esm2022/lib/form/components/widgets/dropdown/validators.mjs +29 -0
- package/esm2022/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +47 -0
- package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +83 -0
- package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +92 -0
- package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.mjs +81 -0
- package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +54 -0
- package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.schema.mjs +86 -0
- package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +117 -0
- package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +188 -0
- package/esm2022/lib/form/form-cloud.module.mjs +103 -0
- package/esm2022/lib/form/models/form-cloud-representation.model.mjs +48 -0
- package/esm2022/lib/form/models/task-variable-cloud.model.mjs +28 -0
- package/esm2022/lib/form/public-api.mjs +44 -0
- package/esm2022/lib/form/services/content-cloud-node-selector.service.mjs +120 -0
- package/esm2022/lib/form/services/display-mode.service.mjs +146 -0
- package/esm2022/lib/form/services/form-cloud.service.interface.mjs +18 -0
- package/esm2022/lib/form/services/form-cloud.service.mjs +201 -0
- package/esm2022/lib/form/services/form-definition-selector-cloud.service.interface.mjs +18 -0
- package/esm2022/lib/form/services/form-definition-selector-cloud.service.mjs +51 -0
- package/esm2022/lib/form/services/form-utils.service.mjs +37 -0
- package/esm2022/lib/form/services/process-cloud-content.service.mjs +71 -0
- package/esm2022/lib/form/services/spinner/form-cloud-spinner.service.mjs +52 -0
- package/esm2022/lib/group/components/group-cloud.component.mjs +424 -0
- package/esm2022/lib/group/group-cloud.module.mjs +33 -0
- package/esm2022/lib/group/models/identity-group.model.mjs +18 -0
- package/esm2022/lib/group/public-api.mjs +21 -0
- package/esm2022/lib/group/services/identity-group.service.mjs +89 -0
- package/esm2022/lib/models/application-version.model.mjs +21 -0
- package/esm2022/lib/models/constant-values.type.mjs +18 -0
- package/esm2022/lib/models/data-column-custom-data.mjs +18 -0
- package/esm2022/lib/models/date-cloud-filter.model.mjs +31 -0
- package/esm2022/lib/models/date-format-cloud.model.mjs +18 -0
- package/esm2022/lib/models/engine-event-cloud.model.mjs +18 -0
- package/esm2022/lib/models/filter-cloud-model.mjs +128 -0
- package/esm2022/lib/models/process-definition-cloud.model.mjs +32 -0
- package/esm2022/lib/models/process-instance-variable.model.mjs +18 -0
- package/esm2022/lib/models/process-variable-filter.model.mjs +18 -0
- package/esm2022/lib/models/task-cloud.model.mjs +23 -0
- package/esm2022/lib/models/task-list-sorting.model.mjs +40 -0
- package/esm2022/lib/models/variable-definition.mjs +18 -0
- package/esm2022/lib/people/components/people-cloud.component.mjs +499 -0
- package/esm2022/lib/people/models/identity-user.model.mjs +18 -0
- package/esm2022/lib/people/people-cloud.module.mjs +33 -0
- package/esm2022/lib/people/public-api.mjs +21 -0
- package/esm2022/lib/people/services/identity-user.service.mjs +119 -0
- package/esm2022/lib/process/process-cloud.module.mjs +40 -0
- package/esm2022/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.mjs +802 -0
- package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +59 -0
- package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +290 -0
- package/esm2022/lib/process/process-filters/models/process-filter-cloud.model.mjs +169 -0
- package/esm2022/lib/process/process-filters/process-filters-cloud.module.mjs +44 -0
- package/esm2022/lib/process/process-filters/public-api.mjs +23 -0
- package/esm2022/lib/process/process-filters/services/process-filter-cloud.service.mjs +405 -0
- package/esm2022/lib/process/process-header/components/process-header-cloud.component.mjs +137 -0
- package/esm2022/lib/process/process-header/process-header-cloud.module.mjs +33 -0
- package/esm2022/lib/process/process-header/public-api.mjs +19 -0
- package/esm2022/lib/process/process-list/components/process-list-cloud.component.mjs +594 -0
- package/esm2022/lib/process/process-list/datatable/process-list-datatable-adapter.mjs +31 -0
- package/esm2022/lib/process/process-list/models/perocess-instance-cloud-view.model.mjs +18 -0
- package/esm2022/lib/process/process-list/models/process-cloud-preferences.mjs +24 -0
- package/esm2022/lib/process/process-list/models/process-cloud-preset.model.mjs +37 -0
- package/esm2022/lib/process/process-list/models/process-cloud-query-request.model.mjs +107 -0
- package/esm2022/lib/process/process-list/models/process-list-sorting.model.mjs +40 -0
- package/esm2022/lib/process/process-list/process-list-cloud.module.mjs +45 -0
- package/esm2022/lib/process/process-list/public-api.mjs +25 -0
- package/esm2022/lib/process/process-list/services/process-list-cloud.service.mjs +253 -0
- package/esm2022/lib/process/process-list/services/process-task-list-cloud.service.mjs +109 -0
- package/esm2022/lib/process/public-api.mjs +23 -0
- package/esm2022/lib/process/services/process-cloud.service.mjs +105 -0
- package/esm2022/lib/process/start-process/components/start-process-cloud.component.mjs +481 -0
- package/esm2022/lib/process/start-process/models/process-instance-cloud.model.mjs +18 -0
- package/esm2022/lib/process/start-process/models/process-payload-cloud.model.mjs +26 -0
- package/esm2022/lib/process/start-process/models/process-with-form-payload-cloud.model.mjs +26 -0
- package/esm2022/lib/process/start-process/public-api.mjs +21 -0
- package/esm2022/lib/process/start-process/services/start-process-cloud.service.mjs +125 -0
- package/esm2022/lib/process-services-cloud.module.mjs +91 -0
- package/esm2022/lib/rich-text-editor/editorjs-config.mjs +101 -0
- package/esm2022/lib/rich-text-editor/index.mjs +18 -0
- package/esm2022/lib/rich-text-editor/public-api.mjs +19 -0
- package/esm2022/lib/rich-text-editor/rich-text-editor.component.mjs +80 -0
- package/esm2022/lib/rich-text-editor/rich-text-editor.module.mjs +33 -0
- package/esm2022/lib/screen/components/screen-cloud/screen-cloud.component.mjs +186 -0
- package/esm2022/lib/screen/models/screen-cloud.model.mjs +18 -0
- package/esm2022/lib/screen/public-api.mjs +18 -0
- package/esm2022/lib/services/base-cloud.service.mjs +83 -0
- package/esm2022/lib/services/cloud-token.service.mjs +23 -0
- package/esm2022/lib/services/form-fields.interfaces.mjs +55 -0
- package/esm2022/lib/services/local-preference-cloud.service.mjs +122 -0
- package/esm2022/lib/services/notification-cloud.service.mjs +45 -0
- package/esm2022/lib/services/preference-cloud.interface.mjs +18 -0
- package/esm2022/lib/services/public-api.mjs +28 -0
- package/esm2022/lib/services/screen-rendering.service.mjs +30 -0
- package/esm2022/lib/services/task-list-cloud.service.interface.mjs +18 -0
- package/esm2022/lib/services/user-preference-cloud.service.mjs +105 -0
- package/esm2022/lib/services/variable-mapper.sevice.mjs +77 -0
- package/esm2022/lib/services/web-socket.service.mjs +146 -0
- package/esm2022/lib/task/models/start-task-cloud-request.model.mjs +32 -0
- package/esm2022/lib/task/models/task-details-cloud.model.mjs +26 -0
- package/esm2022/lib/task/models/task.model.mjs +23 -0
- package/esm2022/lib/task/public-api.mjs +26 -0
- package/esm2022/lib/task/services/task-cloud.service.mjs +272 -0
- package/esm2022/lib/task/task-cloud.module.mjs +45 -0
- package/esm2022/lib/task/task-filters/components/base-task-filters-cloud.component.mjs +59 -0
- package/esm2022/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.mjs +467 -0
- package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.mjs +206 -0
- package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +318 -0
- package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +147 -0
- package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +143 -0
- package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +73 -0
- package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +256 -0
- package/esm2022/lib/task/task-filters/models/filter-cloud.model.mjs +207 -0
- package/esm2022/lib/task/task-filters/public-api.mjs +27 -0
- package/esm2022/lib/task/task-filters/services/service-task-filter-cloud.service.mjs +283 -0
- package/esm2022/lib/task/task-filters/services/task-filter-cloud.service.mjs +392 -0
- package/esm2022/lib/task/task-filters/task-filters-cloud.module.mjs +56 -0
- package/esm2022/lib/task/task-form/components/task-form-cloud/task-form-cloud.component.mjs +214 -0
- package/esm2022/lib/task/task-form/components/user-task-cloud/complete-task/complete-task.directive.mjs +89 -0
- package/esm2022/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.mjs +284 -0
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/claim-task/claim-task-cloud.directive.mjs +101 -0
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/unclaim-task/unclaim-task-cloud.directive.mjs +87 -0
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/user-task-cloud-buttons.component.mjs +79 -0
- package/esm2022/lib/task/task-form/public-api.mjs +21 -0
- package/esm2022/lib/task/task-form/task-form.module.mjs +36 -0
- package/esm2022/lib/task/task-header/components/task-header-cloud.component.mjs +280 -0
- package/esm2022/lib/task/task-header/public-api.mjs +19 -0
- package/esm2022/lib/task/task-header/task-header-cloud.module.mjs +33 -0
- package/esm2022/lib/task/task-list/components/base-task-list-cloud.component.mjs +331 -0
- package/esm2022/lib/task/task-list/components/service-task-list/service-task-list-cloud.component.mjs +116 -0
- package/esm2022/lib/task/task-list/components/task-list/datatable/task-list-datatable-adapter.mjs +31 -0
- package/esm2022/lib/task/task-list/components/task-list/task-list-cloud.component.mjs +390 -0
- package/esm2022/lib/task/task-list/models/service-task-cloud.model.mjs +18 -0
- package/esm2022/lib/task/task-list/models/task-cloud-view.model.mjs +18 -0
- package/esm2022/lib/task/task-list/public-api.mjs +23 -0
- package/esm2022/lib/task/task-list/services/service-task-list-cloud.service.mjs +115 -0
- package/esm2022/lib/task/task-list/services/task-list-cloud.service.mjs +178 -0
- package/esm2022/lib/task/task-list/task-list-cloud.module.mjs +57 -0
- package/esm2022/lib/types.mjs +18 -0
- package/esm2022/public-api.mjs +40 -0
- package/fesm2022/adf-process-services-cloud.mjs +361 -354
- package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
- package/lib/group/components/group-cloud.component.d.ts +3 -1
- package/lib/people/components/people-cloud.component.d.ts +3 -1
- package/lib/task/task-filters/components/base-task-filters-cloud.component.d.ts +1 -1
- package/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.d.ts +1 -1
- package/lib/task/task-list/components/base-task-list-cloud.component.d.ts +1 -1
- package/package.json +6 -4
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { EmptyContentComponent } from '@alfresco/adf-core';
|
|
18
|
+
import { Component, DestroyRef, EventEmitter, inject, Input, Output, ViewChild } from '@angular/core';
|
|
19
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
20
|
+
import { TaskCloudService } from '../../../services/task-cloud.service';
|
|
21
|
+
import { TaskFormCloudComponent } from '../task-form-cloud/task-form-cloud.component';
|
|
22
|
+
import { CommonModule } from '@angular/common';
|
|
23
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
24
|
+
import { UserTaskCloudButtonsComponent } from '../user-task-cloud-buttons/user-task-cloud-buttons.component';
|
|
25
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
26
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
27
|
+
import { MatCardModule } from '@angular/material/card';
|
|
28
|
+
import { TaskScreenCloudComponent } from '../../../../screen/components/screen-cloud/screen-cloud.component';
|
|
29
|
+
import { CompleteTaskDirective } from './complete-task/complete-task.directive';
|
|
30
|
+
import { catchError, EMPTY, forkJoin } from 'rxjs';
|
|
31
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
32
|
+
import * as i0 from "@angular/core";
|
|
33
|
+
import * as i1 from "@angular/common";
|
|
34
|
+
import * as i2 from "@angular/material/progress-spinner";
|
|
35
|
+
import * as i3 from "@ngx-translate/core";
|
|
36
|
+
import * as i4 from "@angular/material/button";
|
|
37
|
+
import * as i5 from "@angular/material/card";
|
|
38
|
+
import * as i6 from "@angular/material/checkbox";
|
|
39
|
+
const TaskTypes = {
|
|
40
|
+
Form: 'form',
|
|
41
|
+
Screen: 'screen',
|
|
42
|
+
None: ''
|
|
43
|
+
};
|
|
44
|
+
export class UserTaskCloudComponent {
|
|
45
|
+
constructor() {
|
|
46
|
+
/** App id to fetch corresponding form and values. */
|
|
47
|
+
this.appName = '';
|
|
48
|
+
/** Toggle readonly state of the task. */
|
|
49
|
+
this.readOnly = false;
|
|
50
|
+
/** Toggle rendering of the `Cancel` button. */
|
|
51
|
+
this.showCancelButton = true;
|
|
52
|
+
/** Toggle rendering of the `Complete` button. */
|
|
53
|
+
this.showCompleteButton = true;
|
|
54
|
+
/** Toggle rendering of the `Open next task` checkbox. */
|
|
55
|
+
this.showNextTaskCheckbox = false;
|
|
56
|
+
/** Whether the `Open next task` checkbox is checked by default or not. */
|
|
57
|
+
this.isNextTaskCheckboxChecked = false;
|
|
58
|
+
/** Toggle rendering of the form title. */
|
|
59
|
+
this.showTitle = true;
|
|
60
|
+
/** Toggle rendering of the `Validation` icon. */
|
|
61
|
+
this.showValidationIcon = true;
|
|
62
|
+
/** Emitted when the cancel button is clicked. */
|
|
63
|
+
this.cancelClick = new EventEmitter();
|
|
64
|
+
/** Emitted when any error occurs. */
|
|
65
|
+
this.error = new EventEmitter();
|
|
66
|
+
/** Emitted when the `Open next task` checkbox was toggled. */
|
|
67
|
+
this.nextTaskCheckboxCheckedChanged = new EventEmitter();
|
|
68
|
+
/**
|
|
69
|
+
* Emitted when any outcome is executed. Default behaviour can be prevented
|
|
70
|
+
* via `event.preventDefault()`.
|
|
71
|
+
*/
|
|
72
|
+
this.executeOutcome = new EventEmitter();
|
|
73
|
+
/** Emitted when form content is clicked. */
|
|
74
|
+
this.formContentClicked = new EventEmitter();
|
|
75
|
+
/** Emitted when the form is saved. */
|
|
76
|
+
this.formSaved = new EventEmitter();
|
|
77
|
+
/**
|
|
78
|
+
* Emitted when a task is loaded`.
|
|
79
|
+
*/
|
|
80
|
+
this.onTaskLoaded = new EventEmitter(); /* eslint-disable-line */
|
|
81
|
+
/** Emitted when the task is claimed. */
|
|
82
|
+
this.taskClaimed = new EventEmitter();
|
|
83
|
+
/** Emitted when the task is unclaimed. */
|
|
84
|
+
this.taskUnclaimed = new EventEmitter();
|
|
85
|
+
/** Emitted when the task is completed. */
|
|
86
|
+
this.taskCompleted = new EventEmitter();
|
|
87
|
+
this.candidateUsers = [];
|
|
88
|
+
this.candidateGroups = [];
|
|
89
|
+
this.loading = false;
|
|
90
|
+
this.taskTypeEnum = TaskTypes;
|
|
91
|
+
/**
|
|
92
|
+
* The `Open next task` feature is currently disabled for forms only.
|
|
93
|
+
* See https://hyland.atlassian.net/browse/AAE-34514 for further details.
|
|
94
|
+
*/
|
|
95
|
+
this.nextTaskCheckboxForFormsActivated = false;
|
|
96
|
+
this.taskCloudService = inject(TaskCloudService);
|
|
97
|
+
this.destroyRef = inject(DestroyRef);
|
|
98
|
+
}
|
|
99
|
+
ngOnChanges(changes) {
|
|
100
|
+
const appName = changes['appName'];
|
|
101
|
+
if (appName && appName.currentValue !== appName.previousValue && this.taskId) {
|
|
102
|
+
this.loadTask();
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const taskId = changes['taskId'];
|
|
106
|
+
if (taskId?.currentValue && this.appName) {
|
|
107
|
+
this.loadTask();
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
ngOnInit() {
|
|
112
|
+
if (this.appName === '' && this.taskId) {
|
|
113
|
+
this.loadTask();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
canClaimTask() {
|
|
117
|
+
return !this.readOnly && this.taskCloudService.canClaimTask(this.taskDetails) && this.hasCandidateUsersOrGroups();
|
|
118
|
+
}
|
|
119
|
+
canCompleteTask() {
|
|
120
|
+
return this.showCompleteButton && !this.readOnly && this.taskCloudService.canCompleteTask(this.taskDetails);
|
|
121
|
+
}
|
|
122
|
+
canUnclaimTask() {
|
|
123
|
+
return !this.readOnly && this.taskCloudService.canUnclaimTask(this.taskDetails) && this.hasCandidateUsersOrGroups();
|
|
124
|
+
}
|
|
125
|
+
getTaskType() {
|
|
126
|
+
if (this.taskDetails && !!this.taskDetails.formKey) {
|
|
127
|
+
if (this.taskDetails.formKey.includes(this.taskTypeEnum.Form)) {
|
|
128
|
+
this.taskType = this.taskTypeEnum.Form;
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
else if (this.taskDetails.formKey.includes(this.taskTypeEnum.Screen)) {
|
|
132
|
+
this.taskType = this.taskTypeEnum.Screen;
|
|
133
|
+
const screenId = this.taskDetails.formKey.replace(this.taskTypeEnum.Screen + '-', '');
|
|
134
|
+
this.screenId = screenId;
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
this.taskType = this.taskTypeEnum.None;
|
|
139
|
+
}
|
|
140
|
+
hasCandidateUsers() {
|
|
141
|
+
return this.candidateUsers.length !== 0;
|
|
142
|
+
}
|
|
143
|
+
hasCandidateGroups() {
|
|
144
|
+
return this.candidateGroups.length !== 0;
|
|
145
|
+
}
|
|
146
|
+
hasCandidateUsersOrGroups() {
|
|
147
|
+
return this.hasCandidateUsers() || this.hasCandidateGroups();
|
|
148
|
+
}
|
|
149
|
+
onCancelForm() {
|
|
150
|
+
this.cancelClick.emit();
|
|
151
|
+
}
|
|
152
|
+
onCancelClick() {
|
|
153
|
+
this.cancelClick.emit(this.taskId);
|
|
154
|
+
}
|
|
155
|
+
onClaimTask() {
|
|
156
|
+
this.loadTask();
|
|
157
|
+
this.taskClaimed.emit(this.taskId);
|
|
158
|
+
}
|
|
159
|
+
onCompleteTask(openNextTask = false) {
|
|
160
|
+
this.loadTask();
|
|
161
|
+
this.taskCompleted.emit(openNextTask);
|
|
162
|
+
}
|
|
163
|
+
onCompleteTaskForm() {
|
|
164
|
+
this.taskCompleted.emit();
|
|
165
|
+
}
|
|
166
|
+
onError(data) {
|
|
167
|
+
this.error.emit(data);
|
|
168
|
+
}
|
|
169
|
+
onExecuteOutcome(outcome) {
|
|
170
|
+
this.executeOutcome.emit(outcome);
|
|
171
|
+
}
|
|
172
|
+
onFormContentClicked(content) {
|
|
173
|
+
this.formContentClicked.emit(content);
|
|
174
|
+
}
|
|
175
|
+
onFormSaved() {
|
|
176
|
+
this.formSaved.emit();
|
|
177
|
+
}
|
|
178
|
+
onTaskUnclaimed() {
|
|
179
|
+
this.taskUnclaimed.emit();
|
|
180
|
+
}
|
|
181
|
+
onUnclaimTask() {
|
|
182
|
+
this.loadTask();
|
|
183
|
+
this.taskUnclaimed.emit(this.taskId);
|
|
184
|
+
}
|
|
185
|
+
onNextTaskCheckboxCheckedChanged(event) {
|
|
186
|
+
this.nextTaskCheckboxCheckedChanged.emit(event);
|
|
187
|
+
}
|
|
188
|
+
loadTask() {
|
|
189
|
+
this.loading = true;
|
|
190
|
+
const tasks$ = this.taskCloudService.getTaskById(this.appName, this.taskId);
|
|
191
|
+
const candidateUsers$ = this.taskCloudService.getCandidateUsers(this.appName, this.taskId);
|
|
192
|
+
const candidateGroups$ = this.taskCloudService.getCandidateGroups(this.appName, this.taskId);
|
|
193
|
+
forkJoin({
|
|
194
|
+
tasks: tasks$,
|
|
195
|
+
candidateUsers: candidateUsers$,
|
|
196
|
+
candidateGroups: candidateGroups$
|
|
197
|
+
})
|
|
198
|
+
.pipe(takeUntilDestroyed(this.destroyRef), catchError((error) => {
|
|
199
|
+
this.onError(error);
|
|
200
|
+
return EMPTY;
|
|
201
|
+
}))
|
|
202
|
+
.subscribe(({ tasks, candidateGroups, candidateUsers }) => {
|
|
203
|
+
this.taskDetails = tasks;
|
|
204
|
+
this.getTaskType();
|
|
205
|
+
this.candidateUsers = candidateUsers;
|
|
206
|
+
this.candidateGroups = candidateGroups;
|
|
207
|
+
this.loading = false;
|
|
208
|
+
this.onTaskLoaded.emit(this.taskDetails);
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
switchToDisplayMode(newDisplayMode) {
|
|
212
|
+
if (this.adfCloudTaskForm) {
|
|
213
|
+
this.adfCloudTaskForm.switchToDisplayMode(newDisplayMode);
|
|
214
|
+
}
|
|
215
|
+
if (this.adfCloudTaskScreen) {
|
|
216
|
+
this.adfCloudTaskScreen.switchToDisplayMode(newDisplayMode);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserTaskCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
220
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserTaskCloudComponent, isStandalone: true, selector: "adf-cloud-user-task", inputs: { appName: "appName", displayModeConfigurations: "displayModeConfigurations", readOnly: "readOnly", showCancelButton: "showCancelButton", showCompleteButton: "showCompleteButton", showNextTaskCheckbox: "showNextTaskCheckbox", isNextTaskCheckboxChecked: "isNextTaskCheckboxChecked", showTitle: "showTitle", showValidationIcon: "showValidationIcon", taskId: "taskId" }, outputs: { cancelClick: "cancelClick", error: "error", nextTaskCheckboxCheckedChanged: "nextTaskCheckboxCheckedChanged", executeOutcome: "executeOutcome", formContentClicked: "formContentClicked", formSaved: "formSaved", onTaskLoaded: "onTaskLoaded", taskClaimed: "taskClaimed", taskUnclaimed: "taskUnclaimed", taskCompleted: "taskCompleted" }, viewQueries: [{ propertyName: "adfCloudTaskForm", first: true, predicate: ["adfCloudTaskForm"], descendants: true }, { propertyName: "adfCloudTaskScreen", first: true, predicate: ["adfCloudTaskScreen"], descendants: true }], usesOnChanges: true, ngImport: i0, template: " <div class=\"adf-user-task-cloud-container\">\n <div *ngIf=\"!loading; else loadingTemplate\">\n <ng-container [ngSwitch]=\"taskType\">\n <ng-container *ngSwitchCase=\"taskTypeEnum.Form\">\n <adf-cloud-task-form\n #adfCloudTaskForm\n [appName]=\"appName\"\n [candidateUsers]=\"candidateUsers\"\n [candidateGroups]=\"candidateGroups\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [showValidationIcon]=\"showValidationIcon\"\n [showTitle]=\"showTitle\"\n [taskId]=\"taskId\"\n [taskDetails]=\"taskDetails\"\n [showNextTaskCheckbox]=\"showNextTaskCheckbox && canCompleteTask() && nextTaskCheckboxForFormsActivated\"\n [isNextTaskCheckboxChecked]=\"isNextTaskCheckboxChecked\"\n (cancelClick)=\"onCancelForm()\"\n (executeOutcome)=\"onExecuteOutcome($event)\"\n (error)=\"onError($event)\"\n (formSaved)=\"onFormSaved()\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (taskCompleted)=\"onCompleteTaskForm()\"\n (taskClaimed)=\"onClaimTask()\"\n (taskUnclaimed)=\"onTaskUnclaimed()\"\n (nextTaskCheckboxCheckedChanged)=\"onNextTaskCheckboxCheckedChanged($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"taskTypeEnum.Screen\">\n <adf-cloud-task-screen\n #adfCloudTaskScreen\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [processInstanceId]=\"taskDetails.processInstanceId\"\n [rootProcessInstanceId]=\"taskDetails.rootProcessInstanceId\"\n [screenId]=\"screenId\"\n [showCancelButton]=\"showCancelButton\"\n [taskName]=\"taskDetails.name\"\n [taskId]=\"taskId\"\n [showNextTaskCheckbox]=\"showNextTaskCheckbox && canCompleteTask()\"\n [isNextTaskCheckboxChecked]=\"isNextTaskCheckboxChecked\"\n\n (cancelTask)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (error)=\"onError($event)\"\n (taskCompleted)=\"onCompleteTask($event)\"\n (taskSaved)=\"onFormSaved()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (nextTaskCheckboxCheckedChanged)=\"onNextTaskCheckboxCheckedChanged($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"taskTypeEnum.None\">\n <mat-card appearance=\"outlined\" class=\"adf-task-form-container\">\n <mat-card-header *ngIf=\"showTitle\">\n <mat-card-title>\n <h4>\n <span class=\"adf-form-title\">\n {{ taskDetails?.name || 'FORM.FORM_RENDERER.NAMELESS_TASK' | translate }}\n </span>\n </h4>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <adf-empty-content\n [icon]=\"'description'\"\n [title]=\"'ADF_CLOUD_TASK_FORM.EMPTY_FORM.TITLE'\"\n [subtitle]=\"'ADF_CLOUD_TASK_FORM.EMPTY_FORM.SUBTITLE'\"\n />\n </mat-card-content>\n <mat-card-actions class=\"adf-task-form-actions\" align=\"end\">\n <mat-checkbox\n id=\"adf-form-open-next-task\"\n *ngIf=\"showNextTaskCheckbox && canCompleteTask() && nextTaskCheckboxForFormsActivated\"\n [checked]=\"isNextTaskCheckboxChecked\"\n (change)=\"onNextTaskCheckboxCheckedChanged($event)\"\n >{{ 'ADF_CLOUD_TASK_FORM.OPEN_NEXT_TASK.LABEL' | translate }}\n </mat-checkbox>\n <span class=\"adf-card-actions-spacer\"></span>\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n <button\n *ngIf=\"canCompleteTask()\"\n mat-button\n adf-cloud-complete-task\n [appName]=\"appName\"\n [taskId]=\"taskId\"\n (success)=\"onCompleteTask()\"\n (error)=\"onError($event)\"\n color=\"primary\"\n id=\"adf-form-complete\"\n >\n {{ 'ADF_CLOUD_TASK_FORM.EMPTY_FORM.BUTTONS.COMPLETE' | translate }}\n </button>\n </mat-card-actions>\n </mat-card>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #loadingTemplate>\n <mat-spinner class=\"adf-user-task-cloud-spinner\" />\n</ng-template>\n\n<ng-template #taskFormCloudButtons>\n <adf-cloud-user-task-cloud-buttons\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [showCancelButton]=\"showCancelButton\"\n [taskId]=\"taskId\"\n (cancelClick)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (error)=\"onError($event)\"\n />\n</ng-template>\n", styles: [".adf-user-task-cloud-container{height:100%}.adf-user-task-cloud-container>div{height:100%}.adf-user-task-cloud-container .adf-card-actions-spacer{flex:1 1 auto}.adf-user-task-cloud-spinner{top:50%;left:50%;transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: UserTaskCloudButtonsComponent, selector: "adf-cloud-user-task-cloud-buttons", inputs: ["appName", "canClaimTask", "canUnclaimTask", "taskId", "showCancelButton"], outputs: ["error", "cancelClick", "claimTask", "unclaimTask"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i5.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i5.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "component", type: TaskScreenCloudComponent, selector: "adf-cloud-task-screen", inputs: ["taskId", "appName", "canClaimTask", "canUnclaimTask", "showCancelButton", "screenId", "processInstanceId", "taskName", "readOnly", "rootProcessInstanceId", "isNextTaskCheckboxChecked", "showNextTaskCheckbox"], outputs: ["taskSaved", "taskCompleted", "error", "cancelTask", "claimTask", "unclaimTask", "nextTaskCheckboxCheckedChanged"] }, { kind: "component", type: TaskFormCloudComponent, selector: "adf-cloud-task-form", inputs: ["appName", "candidateUsers", "candidateGroups", "taskId", "showTitle", "showRefreshButton", "showValidationIcon", "showCancelButton", "showCompleteButton", "readOnly", "displayModeConfigurations", "taskDetails", "showNextTaskCheckbox", "isNextTaskCheckboxChecked"], outputs: ["formSaved", "formCompleted", "taskCompleted", "taskClaimed", "taskUnclaimed", "cancelClick", "error", "formContentClicked", "executeOutcome", "displayModeOn", "displayModeOff", "nextTaskCheckboxCheckedChanged"] }, { kind: "directive", type: CompleteTaskDirective, selector: "[adf-cloud-complete-task]", inputs: ["taskId", "appName"], outputs: ["success", "error"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }] }); }
|
|
221
|
+
}
|
|
222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserTaskCloudComponent, decorators: [{
|
|
223
|
+
type: Component,
|
|
224
|
+
args: [{ selector: 'adf-cloud-user-task', standalone: true, imports: [
|
|
225
|
+
CommonModule,
|
|
226
|
+
MatProgressSpinnerModule,
|
|
227
|
+
UserTaskCloudButtonsComponent,
|
|
228
|
+
TranslateModule,
|
|
229
|
+
MatButtonModule,
|
|
230
|
+
MatCardModule,
|
|
231
|
+
EmptyContentComponent,
|
|
232
|
+
TaskScreenCloudComponent,
|
|
233
|
+
TaskFormCloudComponent,
|
|
234
|
+
CompleteTaskDirective,
|
|
235
|
+
MatCheckboxModule
|
|
236
|
+
], template: " <div class=\"adf-user-task-cloud-container\">\n <div *ngIf=\"!loading; else loadingTemplate\">\n <ng-container [ngSwitch]=\"taskType\">\n <ng-container *ngSwitchCase=\"taskTypeEnum.Form\">\n <adf-cloud-task-form\n #adfCloudTaskForm\n [appName]=\"appName\"\n [candidateUsers]=\"candidateUsers\"\n [candidateGroups]=\"candidateGroups\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [showValidationIcon]=\"showValidationIcon\"\n [showTitle]=\"showTitle\"\n [taskId]=\"taskId\"\n [taskDetails]=\"taskDetails\"\n [showNextTaskCheckbox]=\"showNextTaskCheckbox && canCompleteTask() && nextTaskCheckboxForFormsActivated\"\n [isNextTaskCheckboxChecked]=\"isNextTaskCheckboxChecked\"\n (cancelClick)=\"onCancelForm()\"\n (executeOutcome)=\"onExecuteOutcome($event)\"\n (error)=\"onError($event)\"\n (formSaved)=\"onFormSaved()\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (taskCompleted)=\"onCompleteTaskForm()\"\n (taskClaimed)=\"onClaimTask()\"\n (taskUnclaimed)=\"onTaskUnclaimed()\"\n (nextTaskCheckboxCheckedChanged)=\"onNextTaskCheckboxCheckedChanged($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"taskTypeEnum.Screen\">\n <adf-cloud-task-screen\n #adfCloudTaskScreen\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [processInstanceId]=\"taskDetails.processInstanceId\"\n [rootProcessInstanceId]=\"taskDetails.rootProcessInstanceId\"\n [screenId]=\"screenId\"\n [showCancelButton]=\"showCancelButton\"\n [taskName]=\"taskDetails.name\"\n [taskId]=\"taskId\"\n [showNextTaskCheckbox]=\"showNextTaskCheckbox && canCompleteTask()\"\n [isNextTaskCheckboxChecked]=\"isNextTaskCheckboxChecked\"\n\n (cancelTask)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (error)=\"onError($event)\"\n (taskCompleted)=\"onCompleteTask($event)\"\n (taskSaved)=\"onFormSaved()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (nextTaskCheckboxCheckedChanged)=\"onNextTaskCheckboxCheckedChanged($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"taskTypeEnum.None\">\n <mat-card appearance=\"outlined\" class=\"adf-task-form-container\">\n <mat-card-header *ngIf=\"showTitle\">\n <mat-card-title>\n <h4>\n <span class=\"adf-form-title\">\n {{ taskDetails?.name || 'FORM.FORM_RENDERER.NAMELESS_TASK' | translate }}\n </span>\n </h4>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <adf-empty-content\n [icon]=\"'description'\"\n [title]=\"'ADF_CLOUD_TASK_FORM.EMPTY_FORM.TITLE'\"\n [subtitle]=\"'ADF_CLOUD_TASK_FORM.EMPTY_FORM.SUBTITLE'\"\n />\n </mat-card-content>\n <mat-card-actions class=\"adf-task-form-actions\" align=\"end\">\n <mat-checkbox\n id=\"adf-form-open-next-task\"\n *ngIf=\"showNextTaskCheckbox && canCompleteTask() && nextTaskCheckboxForFormsActivated\"\n [checked]=\"isNextTaskCheckboxChecked\"\n (change)=\"onNextTaskCheckboxCheckedChanged($event)\"\n >{{ 'ADF_CLOUD_TASK_FORM.OPEN_NEXT_TASK.LABEL' | translate }}\n </mat-checkbox>\n <span class=\"adf-card-actions-spacer\"></span>\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n <button\n *ngIf=\"canCompleteTask()\"\n mat-button\n adf-cloud-complete-task\n [appName]=\"appName\"\n [taskId]=\"taskId\"\n (success)=\"onCompleteTask()\"\n (error)=\"onError($event)\"\n color=\"primary\"\n id=\"adf-form-complete\"\n >\n {{ 'ADF_CLOUD_TASK_FORM.EMPTY_FORM.BUTTONS.COMPLETE' | translate }}\n </button>\n </mat-card-actions>\n </mat-card>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #loadingTemplate>\n <mat-spinner class=\"adf-user-task-cloud-spinner\" />\n</ng-template>\n\n<ng-template #taskFormCloudButtons>\n <adf-cloud-user-task-cloud-buttons\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [showCancelButton]=\"showCancelButton\"\n [taskId]=\"taskId\"\n (cancelClick)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (error)=\"onError($event)\"\n />\n</ng-template>\n", styles: [".adf-user-task-cloud-container{height:100%}.adf-user-task-cloud-container>div{height:100%}.adf-user-task-cloud-container .adf-card-actions-spacer{flex:1 1 auto}.adf-user-task-cloud-spinner{top:50%;left:50%;transform:translate(-50%,-50%)}\n"] }]
|
|
237
|
+
}], propDecorators: { adfCloudTaskForm: [{
|
|
238
|
+
type: ViewChild,
|
|
239
|
+
args: ['adfCloudTaskForm']
|
|
240
|
+
}], adfCloudTaskScreen: [{
|
|
241
|
+
type: ViewChild,
|
|
242
|
+
args: ['adfCloudTaskScreen']
|
|
243
|
+
}], appName: [{
|
|
244
|
+
type: Input
|
|
245
|
+
}], displayModeConfigurations: [{
|
|
246
|
+
type: Input
|
|
247
|
+
}], readOnly: [{
|
|
248
|
+
type: Input
|
|
249
|
+
}], showCancelButton: [{
|
|
250
|
+
type: Input
|
|
251
|
+
}], showCompleteButton: [{
|
|
252
|
+
type: Input
|
|
253
|
+
}], showNextTaskCheckbox: [{
|
|
254
|
+
type: Input
|
|
255
|
+
}], isNextTaskCheckboxChecked: [{
|
|
256
|
+
type: Input
|
|
257
|
+
}], showTitle: [{
|
|
258
|
+
type: Input
|
|
259
|
+
}], showValidationIcon: [{
|
|
260
|
+
type: Input
|
|
261
|
+
}], taskId: [{
|
|
262
|
+
type: Input
|
|
263
|
+
}], cancelClick: [{
|
|
264
|
+
type: Output
|
|
265
|
+
}], error: [{
|
|
266
|
+
type: Output
|
|
267
|
+
}], nextTaskCheckboxCheckedChanged: [{
|
|
268
|
+
type: Output
|
|
269
|
+
}], executeOutcome: [{
|
|
270
|
+
type: Output
|
|
271
|
+
}], formContentClicked: [{
|
|
272
|
+
type: Output
|
|
273
|
+
}], formSaved: [{
|
|
274
|
+
type: Output
|
|
275
|
+
}], onTaskLoaded: [{
|
|
276
|
+
type: Output
|
|
277
|
+
}], taskClaimed: [{
|
|
278
|
+
type: Output
|
|
279
|
+
}], taskUnclaimed: [{
|
|
280
|
+
type: Output
|
|
281
|
+
}], taskCompleted: [{
|
|
282
|
+
type: Output
|
|
283
|
+
}] } });
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci10YXNrLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZvcm0vY29tcG9uZW50cy91c2VyLXRhc2stY2xvdWQvdXNlci10YXNrLWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZvcm0vY29tcG9uZW50cy91c2VyLXRhc2stY2xvdWQvdXNlci10YXNrLWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBb0IscUJBQXFCLEVBQStCLE1BQU0sb0JBQW9CLENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFD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UCxXQUFXO3NCQURWLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNO2dCQUtQLGFBQWE7c0JBRFosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29udGVudExpbmtNb2RlbCwgRW1wdHlDb250ZW50Q29tcG9uZW50LCBGb3JtTW9kZWwsIEZvcm1PdXRjb21lRXZlbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNsb3VkRGlzcGxheU1vZGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZm9ybS1maWVsZHMuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUYXNrQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGFzay1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IFRhc2tEZXRhaWxzQ2xvdWRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90YXNrLWRldGFpbHMtY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgVGFza0Zvcm1DbG91ZENvbXBvbmVudCB9IGZyb20gJy4uL3Rhc2stZm9ybS1jbG91ZC90YXNrLWZvcm0tY2xvdWQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFVzZXJUYXNrQ2xvdWRCdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi4vdXNlci10YXNrLWNsb3VkLWJ1dHRvbnMvdXNlci10YXNrLWNsb3VkLWJ1dHRvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IFRhc2tTY3JlZW5DbG91ZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL3NjcmVlbi9jb21wb25lbnRzL3NjcmVlbi1jbG91ZC9zY3JlZW4tY2xvdWQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBsZXRlVGFza0RpcmVjdGl2ZSB9IGZyb20gJy4vY29tcGxldGUtdGFzay9jb21wbGV0ZS10YXNrLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBFTVBUWSwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlLCBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcblxuY29uc3QgVGFza1R5cGVzID0ge1xuICAgIEZvcm06ICdmb3JtJyxcbiAgICBTY3JlZW46ICdzY3JlZW4nLFxuICAgIE5vbmU6ICcnXG59IGFzIGNvbnN0O1xuXG50eXBlIFRhc2tUeXBlc1R5cGUgPSAodHlwZW9mIFRhc2tUeXBlcylba2V5b2YgdHlwZW9mIFRhc2tUeXBlc107XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNsb3VkLXVzZXItdGFzaycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBVc2VyVGFza0Nsb3VkQnV0dG9uc0NvbXBvbmVudCxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdENhcmRNb2R1bGUsXG4gICAgICAgIEVtcHR5Q29udGVudENvbXBvbmVudCxcbiAgICAgICAgVGFza1NjcmVlbkNsb3VkQ29tcG9uZW50LFxuICAgICAgICBUYXNrRm9ybUNsb3VkQ29tcG9uZW50LFxuICAgICAgICBDb21wbGV0ZVRhc2tEaXJlY3RpdmUsXG4gICAgICAgIE1hdENoZWNrYm94TW9kdWxlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci10YXNrLWNsb3VkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91c2VyLXRhc2stY2xvdWQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyVGFza0Nsb3VkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ2FkZkNsb3VkVGFza0Zvcm0nKVxuICAgIGFkZkNsb3VkVGFza0Zvcm06IFRhc2tGb3JtQ2xvdWRDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdhZGZDbG91ZFRhc2tTY3JlZW4nKVxuICAgIGFkZkNsb3VkVGFza1NjcmVlbjogVGFza1NjcmVlbkNsb3VkQ29tcG9uZW50O1xuXG4gICAgLyoqIEFwcCBpZCB0byBmZXRjaCBjb3JyZXNwb25kaW5nIGZvcm0gYW5kIHZhbHVlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcE5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIFRoZSBhdmFpbGFibGUgZGlzcGxheSBjb25maWd1cmF0aW9ucyBmb3IgdGhlIGZvcm0gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlNb2RlQ29uZmlndXJhdGlvbnM6IEZvcm1DbG91ZERpc3BsYXlNb2RlQ29uZmlndXJhdGlvbltdO1xuXG4gICAgLyoqIFRvZ2dsZSByZWFkb25seSBzdGF0ZSBvZiB0aGUgdGFzay4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlIHJlbmRlcmluZyBvZiB0aGUgYENhbmNlbGAgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0NhbmNlbEJ1dHRvbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlIHJlbmRlcmluZyBvZiB0aGUgYENvbXBsZXRlYCBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93Q29tcGxldGVCdXR0b24gPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZSByZW5kZXJpbmcgb2YgdGhlIGBPcGVuIG5leHQgdGFza2AgY2hlY2tib3guICovXG4gICAgQElucHV0KClcbiAgICBzaG93TmV4dFRhc2tDaGVja2JveCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGBPcGVuIG5leHQgdGFza2AgY2hlY2tib3ggaXMgY2hlY2tlZCBieSBkZWZhdWx0IG9yIG5vdC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlzTmV4dFRhc2tDaGVja2JveENoZWNrZWQgPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGUgcmVuZGVyaW5nIG9mIHRoZSBmb3JtIHRpdGxlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1RpdGxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGUgcmVuZGVyaW5nIG9mIHRoZSBgVmFsaWRhdGlvbmAgaWNvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dWYWxpZGF0aW9uSWNvbiA9IHRydWU7XG5cbiAgICAvKiogVGFzayBpZCB0byBmZXRjaCBjb3JyZXNwb25kaW5nIGZvcm0gYW5kIHZhbHVlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHRhc2tJZDogc3RyaW5nO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgY2FuY2VsIGJ1dHRvbiBpcyBjbGlja2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNhbmNlbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFueSBlcnJvciBvY2N1cnMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGBPcGVuIG5leHQgdGFza2AgY2hlY2tib3ggd2FzIHRvZ2dsZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgbmV4dFRhc2tDaGVja2JveENoZWNrZWRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNYXRDaGVja2JveENoYW5nZT4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiBhbnkgb3V0Y29tZSBpcyBleGVjdXRlZC4gRGVmYXVsdCBiZWhhdmlvdXIgY2FuIGJlIHByZXZlbnRlZFxuICAgICAqIHZpYSBgZXZlbnQucHJldmVudERlZmF1bHQoKWAuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZXhlY3V0ZU91dGNvbWUgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1PdXRjb21lRXZlbnQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGZvcm0gY29udGVudCBpcyBjbGlja2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1Db250ZW50Q2xpY2tlZDogRXZlbnRFbWl0dGVyPENvbnRlbnRMaW5rTW9kZWw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBpcyBzYXZlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtU2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Nb2RlbD4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiBhIHRhc2sgaXMgbG9hZGVkYC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBvblRhc2tMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhc2tEZXRhaWxzQ2xvdWRNb2RlbD4oKTsgLyogZXNsaW50LWRpc2FibGUtbGluZSAqL1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdGFzayBpcyBjbGFpbWVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHRhc2tDbGFpbWVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0YXNrIGlzIHVuY2xhaW1lZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB0YXNrVW5jbGFpbWVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0YXNrIGlzIGNvbXBsZXRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB0YXNrQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgY2FuZGlkYXRlVXNlcnM6IHN0cmluZ1tdID0gW107XG4gICAgY2FuZGlkYXRlR3JvdXBzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBzY3JlZW5JZDogc3RyaW5nO1xuICAgIHRhc2tEZXRhaWxzOiBUYXNrRGV0YWlsc0Nsb3VkTW9kZWw7XG4gICAgdGFza1R5cGU6IFRhc2tUeXBlc1R5cGU7XG4gICAgdGFza1R5cGVFbnVtID0gVGFza1R5cGVzO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGBPcGVuIG5leHQgdGFza2AgZmVhdHVyZSBpcyBjdXJyZW50bHkgZGlzYWJsZWQgZm9yIGZvcm1zIG9ubHkuXG4gICAgICogU2VlIGh0dHBzOi8vaHlsYW5kLmF0bGFzc2lhbi5uZXQvYnJvd3NlL0FBRS0zNDUxNCBmb3IgZnVydGhlciBkZXRhaWxzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG5leHRUYXNrQ2hlY2tib3hGb3JGb3Jtc0FjdGl2YXRlZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSB0YXNrQ2xvdWRTZXJ2aWNlOiBUYXNrQ2xvdWRTZXJ2aWNlID0gaW5qZWN0KFRhc2tDbG91ZFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgY29uc3QgYXBwTmFtZSA9IGNoYW5nZXNbJ2FwcE5hbWUnXTtcbiAgICAgICAgaWYgKGFwcE5hbWUgJiYgYXBwTmFtZS5jdXJyZW50VmFsdWUgIT09IGFwcE5hbWUucHJldmlvdXNWYWx1ZSAmJiB0aGlzLnRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkVGFzaygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFza0lkID0gY2hhbmdlc1sndGFza0lkJ107XG4gICAgICAgIGlmICh0YXNrSWQ/LmN1cnJlbnRWYWx1ZSAmJiB0aGlzLmFwcE5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZFRhc2soKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5hcHBOYW1lID09PSAnJyAmJiB0aGlzLnRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkVGFzaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FuQ2xhaW1UYXNrKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucmVhZE9ubHkgJiYgdGhpcy50YXNrQ2xvdWRTZXJ2aWNlLmNhbkNsYWltVGFzayh0aGlzLnRhc2tEZXRhaWxzKSAmJiB0aGlzLmhhc0NhbmRpZGF0ZVVzZXJzT3JHcm91cHMoKTtcbiAgICB9XG5cbiAgICBjYW5Db21wbGV0ZVRhc2soKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3dDb21wbGV0ZUJ1dHRvbiAmJiAhdGhpcy5yZWFkT25seSAmJiB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuY2FuQ29tcGxldGVUYXNrKHRoaXMudGFza0RldGFpbHMpO1xuICAgIH1cblxuICAgIGNhblVuY2xhaW1UYXNrKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucmVhZE9ubHkgJiYgdGhpcy50YXNrQ2xvdWRTZXJ2aWNlLmNhblVuY2xhaW1UYXNrKHRoaXMudGFza0RldGFpbHMpICYmIHRoaXMuaGFzQ2FuZGlkYXRlVXNlcnNPckdyb3VwcygpO1xuICAgIH1cblxuICAgIGdldFRhc2tUeXBlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50YXNrRGV0YWlscyAmJiAhIXRoaXMudGFza0RldGFpbHMuZm9ybUtleSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFza0RldGFpbHMuZm9ybUtleS5pbmNsdWRlcyh0aGlzLnRhc2tUeXBlRW51bS5Gb3JtKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFza1R5cGUgPSB0aGlzLnRhc2tUeXBlRW51bS5Gb3JtO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50YXNrRGV0YWlscy5mb3JtS2V5LmluY2x1ZGVzKHRoaXMudGFza1R5cGVFbnVtLlNjcmVlbikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tUeXBlID0gdGhpcy50YXNrVHlwZUVudW0uU2NyZWVuO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjcmVlbklkID0gdGhpcy50YXNrRGV0YWlscy5mb3JtS2V5LnJlcGxhY2UodGhpcy50YXNrVHlwZUVudW0uU2NyZWVuICsgJy0nLCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5JZCA9IHNjcmVlbklkO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFza1R5cGUgPSB0aGlzLnRhc2tUeXBlRW51bS5Ob25lO1xuICAgIH1cblxuICAgIGhhc0NhbmRpZGF0ZVVzZXJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW5kaWRhdGVVc2Vycy5sZW5ndGggIT09IDA7XG4gICAgfVxuXG4gICAgaGFzQ2FuZGlkYXRlR3JvdXBzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW5kaWRhdGVHcm91cHMubGVuZ3RoICE9PSAwO1xuICAgIH1cblxuICAgIGhhc0NhbmRpZGF0ZVVzZXJzT3JHcm91cHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0NhbmRpZGF0ZVVzZXJzKCkgfHwgdGhpcy5oYXNDYW5kaWRhdGVHcm91cHMoKTtcbiAgICB9XG5cbiAgICBvbkNhbmNlbEZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FuY2VsQ2xpY2suZW1pdCgpO1xuICAgIH1cblxuICAgIG9uQ2FuY2VsQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FuY2VsQ2xpY2suZW1pdCh0aGlzLnRhc2tJZCk7XG4gICAgfVxuXG4gICAgb25DbGFpbVRhc2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZFRhc2soKTtcbiAgICAgICAgdGhpcy50YXNrQ2xhaW1lZC5lbWl0KHRoaXMudGFza0lkKTtcbiAgICB9XG5cbiAgICBvbkNvbXBsZXRlVGFzayhvcGVuTmV4dFRhc2s6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRUYXNrKCk7XG4gICAgICAgIHRoaXMudGFza0NvbXBsZXRlZC5lbWl0KG9wZW5OZXh0VGFzayk7XG4gICAgfVxuXG4gICAgb25Db21wbGV0ZVRhc2tGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhc2tDb21wbGV0ZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uRXJyb3IoZGF0YTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdChkYXRhKTtcbiAgICB9XG5cbiAgICBvbkV4ZWN1dGVPdXRjb21lKG91dGNvbWU6IEZvcm1PdXRjb21lRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5leGVjdXRlT3V0Y29tZS5lbWl0KG91dGNvbWUpO1xuICAgIH1cbiAgICBvbkZvcm1Db250ZW50Q2xpY2tlZChjb250ZW50OiBDb250ZW50TGlua01vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRlbnRDbGlja2VkLmVtaXQoY29udGVudCk7XG4gICAgfVxuICAgIG9uRm9ybVNhdmVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1TYXZlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25UYXNrVW5jbGFpbWVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhc2tVbmNsYWltZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uVW5jbGFpbVRhc2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZFRhc2soKTtcbiAgICAgICAgdGhpcy50YXNrVW5jbGFpbWVkLmVtaXQodGhpcy50YXNrSWQpO1xuICAgIH1cblxuICAgIG9uTmV4dFRhc2tDaGVja2JveENoZWNrZWRDaGFuZ2VkKGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSkge1xuICAgICAgICB0aGlzLm5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRUYXNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBjb25zdCB0YXNrcyQgPSB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuZ2V0VGFza0J5SWQodGhpcy5hcHBOYW1lLCB0aGlzLnRhc2tJZCk7XG4gICAgICAgIGNvbnN0IGNhbmRpZGF0ZVVzZXJzJCA9IHRoaXMudGFza0Nsb3VkU2VydmljZS5nZXRDYW5kaWRhdGVVc2Vycyh0aGlzLmFwcE5hbWUsIHRoaXMudGFza0lkKTtcbiAgICAgICAgY29uc3QgY2FuZGlkYXRlR3JvdXBzJCA9IHRoaXMudGFza0Nsb3VkU2VydmljZS5nZXRDYW5kaWRhdGVHcm91cHModGhpcy5hcHBOYW1lLCB0aGlzLnRhc2tJZCk7XG4gICAgICAgIGZvcmtKb2luKHtcbiAgICAgICAgICAgIHRhc2tzOiB0YXNrcyQsXG4gICAgICAgICAgICBjYW5kaWRhdGVVc2VyczogY2FuZGlkYXRlVXNlcnMkLFxuICAgICAgICAgICAgY2FuZGlkYXRlR3JvdXBzOiBjYW5kaWRhdGVHcm91cHMkXG4gICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgdGFza3MsIGNhbmRpZGF0ZUdyb3VwcywgY2FuZGlkYXRlVXNlcnMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGFza0RldGFpbHMgPSB0YXNrcztcbiAgICAgICAgICAgICAgICB0aGlzLmdldFRhc2tUeXBlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5kaWRhdGVVc2VycyA9IGNhbmRpZGF0ZVVzZXJzO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FuZGlkYXRlR3JvdXBzID0gY2FuZGlkYXRlR3JvdXBzO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMub25UYXNrTG9hZGVkLmVtaXQodGhpcy50YXNrRGV0YWlscyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3dpdGNoVG9EaXNwbGF5TW9kZShuZXdEaXNwbGF5TW9kZT86IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hZGZDbG91ZFRhc2tGb3JtKSB7XG4gICAgICAgICAgICB0aGlzLmFkZkNsb3VkVGFza0Zvcm0uc3dpdGNoVG9EaXNwbGF5TW9kZShuZXdEaXNwbGF5TW9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWRmQ2xvdWRUYXNrU2NyZWVuKSB7XG4gICAgICAgICAgICB0aGlzLmFkZkNsb3VkVGFza1NjcmVlbi5zd2l0Y2hUb0Rpc3BsYXlNb2RlKG5ld0Rpc3BsYXlNb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIiA8ZGl2IGNsYXNzPVwiYWRmLXVzZXItdGFzay1jbG91ZC1jb250YWluZXJcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmc7IGVsc2UgbG9hZGluZ1RlbXBsYXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInRhc2tUeXBlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0YXNrVHlwZUVudW0uRm9ybVwiPlxuICAgICAgICAgICAgICAgIDxhZGYtY2xvdWQtdGFzay1mb3JtXG4gICAgICAgICAgICAgICAgICAgICNhZGZDbG91ZFRhc2tGb3JtXG4gICAgICAgICAgICAgICAgICAgIFthcHBOYW1lXT1cImFwcE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbY2FuZGlkYXRlVXNlcnNdPVwiY2FuZGlkYXRlVXNlcnNcIlxuICAgICAgICAgICAgICAgICAgICBbY2FuZGlkYXRlR3JvdXBzXT1cImNhbmRpZGF0ZUdyb3Vwc1wiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25zXT1cImRpc3BsYXlNb2RlQ29uZmlndXJhdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cInNob3dWYWxpZGF0aW9uSWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93VGl0bGVdPVwic2hvd1RpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rhc2tJZF09XCJ0YXNrSWRcIlxuICAgICAgICAgICAgICAgICAgICBbdGFza0RldGFpbHNdPVwidGFza0RldGFpbHNcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd05leHRUYXNrQ2hlY2tib3hdPVwic2hvd05leHRUYXNrQ2hlY2tib3ggJiYgY2FuQ29tcGxldGVUYXNrKCkgJiYgbmV4dFRhc2tDaGVja2JveEZvckZvcm1zQWN0aXZhdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzTmV4dFRhc2tDaGVja2JveENoZWNrZWRdPVwiaXNOZXh0VGFza0NoZWNrYm94Q2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgIChjYW5jZWxDbGljayk9XCJvbkNhbmNlbEZvcm0oKVwiXG4gICAgICAgICAgICAgICAgICAgIChleGVjdXRlT3V0Y29tZSk9XCJvbkV4ZWN1dGVPdXRjb21lKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwib25FcnJvcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGZvcm1TYXZlZCk9XCJvbkZvcm1TYXZlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKGZvcm1Db250ZW50Q2xpY2tlZCk9XCJvbkZvcm1Db250ZW50Q2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKHRhc2tDb21wbGV0ZWQpPVwib25Db21wbGV0ZVRhc2tGb3JtKClcIlxuICAgICAgICAgICAgICAgICAgICAodGFza0NsYWltZWQpPVwib25DbGFpbVRhc2soKVwiXG4gICAgICAgICAgICAgICAgICAgICh0YXNrVW5jbGFpbWVkKT1cIm9uVGFza1VuY2xhaW1lZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZCk9XCJvbk5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInRhc2tUeXBlRW51bS5TY3JlZW5cIj5cbiAgICAgICAgICAgICAgICA8YWRmLWNsb3VkLXRhc2stc2NyZWVuXG4gICAgICAgICAgICAgICAgICAgICNhZGZDbG91ZFRhc2tTY3JlZW5cbiAgICAgICAgICAgICAgICAgICAgW2FwcE5hbWVdPVwiYXBwTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjYW5DbGFpbVRhc2tdPVwiY2FuQ2xhaW1UYXNrKClcIlxuICAgICAgICAgICAgICAgICAgICBbY2FuVW5jbGFpbVRhc2tdPVwiY2FuVW5jbGFpbVRhc2soKVwiXG4gICAgICAgICAgICAgICAgICAgIFtwcm9jZXNzSW5zdGFuY2VJZF09XCJ0YXNrRGV0YWlscy5wcm9jZXNzSW5zdGFuY2VJZFwiXG4gICAgICAgICAgICAgICAgICAgIFtyb290UHJvY2Vzc0luc3RhbmNlSWRdPVwidGFza0RldGFpbHMucm9vdFByb2Nlc3NJbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgICAgICAgW3NjcmVlbklkXT1cInNjcmVlbklkXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dDYW5jZWxCdXR0b25dPVwic2hvd0NhbmNlbEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFt0YXNrTmFtZV09XCJ0YXNrRGV0YWlscy5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rhc2tJZF09XCJ0YXNrSWRcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd05leHRUYXNrQ2hlY2tib3hdPVwic2hvd05leHRUYXNrQ2hlY2tib3ggJiYgY2FuQ29tcGxldGVUYXNrKClcIlxuICAgICAgICAgICAgICAgICAgICBbaXNOZXh0VGFza0NoZWNrYm94Q2hlY2tlZF09XCJpc05leHRUYXNrQ2hlY2tib3hDaGVja2VkXCJcblxuICAgICAgICAgICAgICAgICAgICAoY2FuY2VsVGFzayk9XCJvbkNhbmNlbENsaWNrKClcIlxuICAgICAgICAgICAgICAgICAgICAoY2xhaW1UYXNrKT1cIm9uQ2xhaW1UYXNrKClcIlxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwib25FcnJvcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKHRhc2tDb21wbGV0ZWQpPVwib25Db21wbGV0ZVRhc2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICh0YXNrU2F2ZWQpPVwib25Gb3JtU2F2ZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICh1bmNsYWltVGFzayk9XCJvblVuY2xhaW1UYXNrKClcIlxuICAgICAgICAgICAgICAgICAgICAobmV4dFRhc2tDaGVja2JveENoZWNrZWRDaGFuZ2VkKT1cIm9uTmV4dFRhc2tDaGVja2JveENoZWNrZWRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidGFza1R5cGVFbnVtLk5vbmVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCIgY2xhc3M9XCJhZGYtdGFzay1mb3JtLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtaGVhZGVyICpuZ0lmPVwic2hvd1RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZi1mb3JtLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0YXNrRGV0YWlscz8ubmFtZSB8fCAnRk9STS5GT1JNX1JFTkRFUkVSLk5BTUVMRVNTX1RBU0snIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFkZi1lbXB0eS1jb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiJ2Rlc2NyaXB0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBREZfQ0xPVURfVEFTS19GT1JNLkVNUFRZX0ZPUk0uVElUTEUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3VidGl0bGVdPVwiJ0FERl9DTE9VRF9UQVNLX0ZPUk0uRU1QVFlfRk9STS5TVUJUSVRMRSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtYWN0aW9ucyBjbGFzcz1cImFkZi10YXNrLWZvcm0tYWN0aW9uc1wiIGFsaWduPVwiZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhZGYtZm9ybS1vcGVuLW5leHQtdGFza1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93TmV4dFRhc2tDaGVja2JveCAmJiBjYW5Db21wbGV0ZVRhc2soKSAmJiBuZXh0VGFza0NoZWNrYm94Rm9yRm9ybXNBY3RpdmF0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzTmV4dFRhc2tDaGVja2JveENoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25OZXh0VGFza0NoZWNrYm94Q2hlY2tlZENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7ICdBREZfQ0xPVURfVEFTS19GT1JNLk9QRU5fTkVYVF9UQVNLLkxBQkVMJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZi1jYXJkLWFjdGlvbnMtc3BhY2VyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhc2tGb3JtQ2xvdWRCdXR0b25zXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNhbkNvbXBsZXRlVGFzaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRmLWNsb3VkLWNvbXBsZXRlLXRhc2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwTmFtZV09XCJhcHBOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFza0lkXT1cInRhc2tJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1Y2Nlc3MpPVwib25Db21wbGV0ZVRhc2soKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uRXJyb3IoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFkZi1mb3JtLWNvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQURGX0NMT1VEX1RBU0tfRk9STS5FTVBUWV9GT1JNLkJVVFRPTlMuQ09NUExFVEUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVGVtcGxhdGU+XG4gICAgPG1hdC1zcGlubmVyIGNsYXNzPVwiYWRmLXVzZXItdGFzay1jbG91ZC1zcGlubmVyXCIgLz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFza0Zvcm1DbG91ZEJ1dHRvbnM+XG4gICAgPGFkZi1jbG91ZC11c2VyLXRhc2stY2xvdWQtYnV0dG9uc1xuICAgICAgICBbYXBwTmFtZV09XCJhcHBOYW1lXCJcbiAgICAgICAgW2NhbkNsYWltVGFza109XCJjYW5DbGFpbVRhc2soKVwiXG4gICAgICAgIFtjYW5VbmNsYWltVGFza109XCJjYW5VbmNsYWltVGFzaygpXCJcbiAgICAgICAgW3Nob3dDYW5jZWxCdXR0b25dPVwic2hvd0NhbmNlbEJ1dHRvblwiXG4gICAgICAgIFt0YXNrSWRdPVwidGFza0lkXCJcbiAgICAgICAgKGNhbmNlbENsaWNrKT1cIm9uQ2FuY2VsQ2xpY2soKVwiXG4gICAgICAgIChjbGFpbVRhc2spPVwib25DbGFpbVRhc2soKVwiXG4gICAgICAgICh1bmNsYWltVGFzayk9XCJvblVuY2xhaW1UYXNrKClcIlxuICAgICAgICAoZXJyb3IpPVwib25FcnJvcigkZXZlbnQpXCJcbiAgICAvPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { Directive, Input, HostListener, Output, EventEmitter, ElementRef, Renderer2 } from '@angular/core';
|
|
18
|
+
import { IdentityUserService } from '../../../../../people/services/identity-user.service';
|
|
19
|
+
import { TaskCloudService } from '../../../../services/task-cloud.service';
|
|
20
|
+
import * as i0 from "@angular/core";
|
|
21
|
+
import * as i1 from "../../../../services/task-cloud.service";
|
|
22
|
+
import * as i2 from "../../../../../people/services/identity-user.service";
|
|
23
|
+
export class ClaimTaskCloudDirective {
|
|
24
|
+
constructor(el, renderer, taskListService, identityUserService) {
|
|
25
|
+
this.el = el;
|
|
26
|
+
this.renderer = renderer;
|
|
27
|
+
this.taskListService = taskListService;
|
|
28
|
+
this.identityUserService = identityUserService;
|
|
29
|
+
/** (Required) The name of the application. */
|
|
30
|
+
this.appName = '';
|
|
31
|
+
/** Emitted when the task is completed. */
|
|
32
|
+
this.success = new EventEmitter();
|
|
33
|
+
/** Emitted when the task cannot be completed. */
|
|
34
|
+
this.error = new EventEmitter();
|
|
35
|
+
this.invalidParams = [];
|
|
36
|
+
}
|
|
37
|
+
ngOnInit() {
|
|
38
|
+
this.validateInputs();
|
|
39
|
+
}
|
|
40
|
+
validateInputs() {
|
|
41
|
+
if (!this.isTaskValid()) {
|
|
42
|
+
this.invalidParams.push('taskId');
|
|
43
|
+
}
|
|
44
|
+
if (!this.isAppValid()) {
|
|
45
|
+
this.invalidParams.push('appName');
|
|
46
|
+
}
|
|
47
|
+
if (this.invalidParams.length) {
|
|
48
|
+
throw new Error(`Attribute ${this.invalidParams.join(', ')} is required`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
isTaskValid() {
|
|
52
|
+
return this.taskId && this.taskId.length > 0;
|
|
53
|
+
}
|
|
54
|
+
isAppValid() {
|
|
55
|
+
return !!this.appName || this.appName === '';
|
|
56
|
+
}
|
|
57
|
+
async onClick() {
|
|
58
|
+
try {
|
|
59
|
+
await this.claimTask();
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
this.error.emit(error);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async claimTask() {
|
|
66
|
+
const currentUser = this.identityUserService.getCurrentUserInfo().username;
|
|
67
|
+
try {
|
|
68
|
+
this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'true');
|
|
69
|
+
const result = await this.taskListService.claimTask(this.appName, this.taskId, currentUser).toPromise();
|
|
70
|
+
if (result) {
|
|
71
|
+
this.success.emit(result);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
this.renderer.removeAttribute(this.el.nativeElement, 'disabled');
|
|
76
|
+
this.error.emit(error);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClaimTaskCloudDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.TaskCloudService }, { token: i2.IdentityUserService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
80
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ClaimTaskCloudDirective, isStandalone: true, selector: "[adf-cloud-claim-task]", inputs: { taskId: "taskId", appName: "appName" }, outputs: { success: "success", error: "error" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
|
|
81
|
+
}
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClaimTaskCloudDirective, decorators: [{
|
|
83
|
+
type: Directive,
|
|
84
|
+
args: [{
|
|
85
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
86
|
+
selector: '[adf-cloud-claim-task]',
|
|
87
|
+
standalone: true
|
|
88
|
+
}]
|
|
89
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.TaskCloudService }, { type: i2.IdentityUserService }], propDecorators: { taskId: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], appName: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], success: [{
|
|
94
|
+
type: Output
|
|
95
|
+
}], error: [{
|
|
96
|
+
type: Output
|
|
97
|
+
}], onClick: [{
|
|
98
|
+
type: HostListener,
|
|
99
|
+
args: ['click']
|
|
100
|
+
}] } });
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW0tdGFzay1jbG91ZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL3Rhc2svdGFzay1mb3JtL2NvbXBvbmVudHMvdXNlci10YXNrLWNsb3VkLWJ1dHRvbnMvY2xhaW0tdGFzay9jbGFpbS10YXNrLWNsb3VkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7O0FBTzNFLE1BQU0sT0FBTyx1QkFBdUI7SUFtQmhDLFlBQ3FCLEVBQWMsRUFDZCxRQUFtQixFQUM1QixlQUFpQyxFQUNqQyxtQkFBd0M7UUFIL0IsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDNUIsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ2pDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFsQnBELDhDQUE4QztRQUU5QyxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBRXJCLDBDQUEwQztRQUUxQyxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFckQsaURBQWlEO1FBRWpELFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVuRCxrQkFBYSxHQUFhLEVBQUUsQ0FBQztJQU8xQixDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5RSxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBR0QsS0FBSyxDQUFDLE9BQU87UUFDVCxJQUFJLENBQUM7WUFDRCxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLFNBQVM7UUFDbkIsTUFBTSxXQUFXLEdBQVcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDO1FBQ25GLElBQUksQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RSxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN4RyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDOytHQXZFUSx1QkFBdUI7bUdBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt3S0FJRyxNQUFNO3NCQURMLEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQUtOLE9BQU87c0JBRE4sTUFBTTtnQkFLUCxLQUFLO3NCQURKLE1BQU07Z0JBcUNELE9BQU87c0JBRFosWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBIb3N0TGlzdGVuZXIsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWRlbnRpdHlVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3Blb3BsZS9zZXJ2aWNlcy9pZGVudGl0eS11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFza0Nsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3Rhc2stY2xvdWQuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbYWRmLWNsb3VkLWNsYWltLXRhc2tdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIENsYWltVGFza0Nsb3VkRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogKFJlcXVpcmVkKSBUaGUgaWQgb2YgdGhlIHRhc2suICovXG4gICAgQElucHV0KClcbiAgICB0YXNrSWQ6IHN0cmluZztcblxuICAgIC8qKiAoUmVxdWlyZWQpIFRoZSBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcE5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdGFzayBpcyBjb21wbGV0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRhc2sgY2Fubm90IGJlIGNvbXBsZXRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIGludmFsaWRQYXJhbXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIHRhc2tMaXN0U2VydmljZTogVGFza0Nsb3VkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBpZGVudGl0eVVzZXJTZXJ2aWNlOiBJZGVudGl0eVVzZXJTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVJbnB1dHMoKTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZUlucHV0cygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVGFza1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaW52YWxpZFBhcmFtcy5wdXNoKCd0YXNrSWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuaXNBcHBWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmludmFsaWRQYXJhbXMucHVzaCgnYXBwTmFtZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmludmFsaWRQYXJhbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEF0dHJpYnV0ZSAke3RoaXMuaW52YWxpZFBhcmFtcy5qb2luKCcsICcpfSBpcyByZXF1aXJlZGApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNUYXNrVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tJZCAmJiB0aGlzLnRhc2tJZC5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIGlzQXBwVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuYXBwTmFtZSB8fCB0aGlzLmFwcE5hbWUgPT09ICcnO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBhc3luYyBvbkNsaWNrKCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jbGFpbVRhc2soKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGNsYWltVGFzaygpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFVzZXI6IHN0cmluZyA9IHRoaXMuaWRlbnRpdHlVc2VyU2VydmljZS5nZXRDdXJyZW50VXNlckluZm8oKS51c2VybmFtZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgJ3RydWUnKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMudGFza0xpc3RTZXJ2aWNlLmNsYWltVGFzayh0aGlzLmFwcE5hbWUsIHRoaXMudGFza0lkLCBjdXJyZW50VXNlcikudG9Qcm9taXNlKCk7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { Directive, Input, HostListener, Output, EventEmitter, ElementRef, Renderer2 } from '@angular/core';
|
|
18
|
+
import { TaskCloudService } from '../../../../services/task-cloud.service';
|
|
19
|
+
import * as i0 from "@angular/core";
|
|
20
|
+
import * as i1 from "../../../../services/task-cloud.service";
|
|
21
|
+
export class UnClaimTaskCloudDirective {
|
|
22
|
+
constructor(el, renderer, taskListService) {
|
|
23
|
+
this.el = el;
|
|
24
|
+
this.renderer = renderer;
|
|
25
|
+
this.taskListService = taskListService;
|
|
26
|
+
/** (Required) The name of the application. */
|
|
27
|
+
this.appName = '';
|
|
28
|
+
/** Emitted when the task is completed. */
|
|
29
|
+
this.success = new EventEmitter();
|
|
30
|
+
/** Emitted when the task cannot be completed. */
|
|
31
|
+
this.error = new EventEmitter();
|
|
32
|
+
this.invalidParams = [];
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
this.validateInputs();
|
|
36
|
+
}
|
|
37
|
+
validateInputs() {
|
|
38
|
+
if (!this.isTaskValid()) {
|
|
39
|
+
this.invalidParams.push('taskId');
|
|
40
|
+
}
|
|
41
|
+
if (!this.isAppValid()) {
|
|
42
|
+
this.invalidParams.push('appName');
|
|
43
|
+
}
|
|
44
|
+
if (this.invalidParams.length) {
|
|
45
|
+
throw new Error(`Attribute ${this.invalidParams.join(', ')} is required`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
isTaskValid() {
|
|
49
|
+
return this.taskId && this.taskId.length > 0;
|
|
50
|
+
}
|
|
51
|
+
isAppValid() {
|
|
52
|
+
return !!this.appName || this.appName === '';
|
|
53
|
+
}
|
|
54
|
+
async onClick() {
|
|
55
|
+
try {
|
|
56
|
+
this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'true');
|
|
57
|
+
await this.taskListService.unclaimTask(this.appName, this.taskId).toPromise();
|
|
58
|
+
this.success.emit(this.taskId);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
this.renderer.removeAttribute(this.el.nativeElement, 'disabled');
|
|
62
|
+
this.error.emit(error);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnClaimTaskCloudDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.TaskCloudService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
66
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: UnClaimTaskCloudDirective, isStandalone: true, selector: "[adf-cloud-unclaim-task]", inputs: { taskId: "taskId", appName: "appName" }, outputs: { success: "success", error: "error" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
|
|
67
|
+
}
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnClaimTaskCloudDirective, decorators: [{
|
|
69
|
+
type: Directive,
|
|
70
|
+
args: [{
|
|
71
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
72
|
+
selector: '[adf-cloud-unclaim-task]',
|
|
73
|
+
standalone: true
|
|
74
|
+
}]
|
|
75
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.TaskCloudService }], propDecorators: { taskId: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], appName: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], success: [{
|
|
80
|
+
type: Output
|
|
81
|
+
}], error: [{
|
|
82
|
+
type: Output
|
|
83
|
+
}], onClick: [{
|
|
84
|
+
type: HostListener,
|
|
85
|
+
args: ['click']
|
|
86
|
+
}] } });
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5jbGFpbS10YXNrLWNsb3VkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZvcm0vY29tcG9uZW50cy91c2VyLXRhc2stY2xvdWQtYnV0dG9ucy91bmNsYWltLXRhc2svdW5jbGFpbS10YXNrLWNsb3VkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7QUFPM0UsTUFBTSxPQUFPLHlCQUF5QjtJQW1CbEMsWUFBNkIsRUFBYyxFQUFtQixRQUFtQixFQUFVLGVBQWlDO1FBQS9GLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBbUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQWQ1SCw4Q0FBOEM7UUFFOUMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQiwwQ0FBMEM7UUFFMUMsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXJELGlEQUFpRDtRQUVqRCxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFbkQsa0JBQWEsR0FBYSxFQUFFLENBQUM7SUFFa0csQ0FBQztJQUVoSSxRQUFRO1FBQ0osSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlFLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFVBQVU7UUFDTixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFHRCxLQUFLLENBQUMsT0FBTztRQUNULElBQUksQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDOytHQXZEUSx5QkFBeUI7bUdBQXpCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFMckMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjtzSUFJRyxNQUFNO3NCQURMLEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQUtOLE9BQU87c0JBRE4sTUFBTTtnQkFLUCxLQUFLO3NCQURKLE1BQU07Z0JBZ0NELE9BQU87c0JBRFosWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBIb3N0TGlzdGVuZXIsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFza0Nsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3Rhc2stY2xvdWQuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbYWRmLWNsb3VkLXVuY2xhaW0tdGFza10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVW5DbGFpbVRhc2tDbG91ZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqIChSZXF1aXJlZCkgVGhlIGlkIG9mIHRoZSB0YXNrLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGFza0lkOiBzdHJpbmc7XG5cbiAgICAvKiogKFJlcXVpcmVkKSBUaGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBhcHBOYW1lOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRhc2sgaXMgY29tcGxldGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0YXNrIGNhbm5vdCBiZSBjb21wbGV0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBpbnZhbGlkUGFyYW1zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIHRhc2tMaXN0U2VydmljZTogVGFza0Nsb3VkU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlSW5wdXRzKCk7XG4gICAgfVxuXG4gICAgdmFsaWRhdGVJbnB1dHMoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1Rhc2tWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmludmFsaWRQYXJhbXMucHVzaCgndGFza0lkJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlzQXBwVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhpcy5pbnZhbGlkUGFyYW1zLnB1c2goJ2FwcE5hbWUnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbnZhbGlkUGFyYW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBdHRyaWJ1dGUgJHt0aGlzLmludmFsaWRQYXJhbXMuam9pbignLCAnKX0gaXMgcmVxdWlyZWRgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzVGFza1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YXNrSWQgJiYgdGhpcy50YXNrSWQubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBpc0FwcFZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmFwcE5hbWUgfHwgdGhpcy5hcHBOYW1lID09PSAnJztcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgYXN5bmMgb25DbGljaygpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgJ3RydWUnKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMudGFza0xpc3RTZXJ2aWNlLnVuY2xhaW1UYXNrKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQpLnRvUHJvbWlzZSgpO1xuICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy50YXNrSWQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|