@alfresco/adf-process-services 8.1.0-16320806191 → 9.1.0-16312921641
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/fesm2022/adf-process-services.mjs +297 -301
- package/fesm2022/adf-process-services.mjs.map +1 -1
- package/package.json +4 -6
- package/esm2022/adf-process-services.mjs +0 -5
- package/esm2022/lib/app-list/apps-list.component.mjs +0 -195
- package/esm2022/lib/app-list/icon.model.mjs +0 -166
- package/esm2022/lib/app-list/index.mjs +0 -18
- package/esm2022/lib/app-list/public-api.mjs +0 -23
- package/esm2022/lib/app-list/select-apps-dialog/select-apps-dialog.component.mjs +0 -53
- package/esm2022/lib/attachment/create-process-attachment/create-process-attachment.component.mjs +0 -73
- package/esm2022/lib/attachment/create-task-attachment/create-task-attachment.component.mjs +0 -73
- package/esm2022/lib/attachment/index.mjs +0 -18
- package/esm2022/lib/attachment/process-attachment-list/process-attachment-list.component.mjs +0 -197
- package/esm2022/lib/attachment/public-api.mjs +0 -31
- package/esm2022/lib/attachment/task-attachment-list/task-attachment-list.component.mjs +0 -196
- package/esm2022/lib/compat/types.mjs +0 -18
- package/esm2022/lib/form/events/validate-dynamic-table-row.event.mjs +0 -26
- package/esm2022/lib/form/form-custom-outcomes.component.mjs +0 -31
- package/esm2022/lib/form/form-list/form-list.component.mjs +0 -50
- package/esm2022/lib/form/form.component.mjs +0 -346
- package/esm2022/lib/form/index.mjs +0 -18
- package/esm2022/lib/form/model/form-definition.model.mjs +0 -92
- package/esm2022/lib/form/process-form-rendering.service.mjs +0 -55
- package/esm2022/lib/form/public-api.mjs +0 -32
- package/esm2022/lib/form/services/activiti-alfresco.service.mjs +0 -113
- package/esm2022/lib/form/services/ecm-model.service.mjs +0 -156
- package/esm2022/lib/form/services/editor.service.mjs +0 -87
- package/esm2022/lib/form/services/external-alfresco-api.service.mjs +0 -57
- package/esm2022/lib/form/services/index.mjs +0 -26
- package/esm2022/lib/form/services/model.service.mjs +0 -130
- package/esm2022/lib/form/services/process-content.service.mjs +0 -223
- package/esm2022/lib/form/services/process-definition.service.mjs +0 -93
- package/esm2022/lib/form/services/task-form.service.mjs +0 -127
- package/esm2022/lib/form/services/task.service.mjs +0 -77
- package/esm2022/lib/form/start-form/start-form.component.mjs +0 -141
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog-component.interface.mjs +0 -18
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog.component.mjs +0 -115
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget-dialog.service.mjs +0 -100
- package/esm2022/lib/form/widgets/content-widget/attach-file-widget.component.mjs +0 -254
- package/esm2022/lib/form/widgets/content-widget/attach-folder-widget.component.mjs +0 -93
- package/esm2022/lib/form/widgets/content-widget/index.mjs +0 -18
- package/esm2022/lib/form/widgets/content-widget/public-api.mjs +0 -22
- package/esm2022/lib/form/widgets/document/content.widget.mjs +0 -125
- package/esm2022/lib/form/widgets/document/document.widget.mjs +0 -61
- package/esm2022/lib/form/widgets/dropdown/dropdown.widget.mjs +0 -182
- package/esm2022/lib/form/widgets/dynamic-table/dynamic-table.widget.mjs +0 -192
- package/esm2022/lib/form/widgets/dynamic-table/editors/amount/amount.editor.mjs +0 -47
- package/esm2022/lib/form/widgets/dynamic-table/editors/boolean/boolean.editor.mjs +0 -42
- package/esm2022/lib/form/widgets/dynamic-table/editors/date/date.editor.mjs +0 -84
- package/esm2022/lib/form/widgets/dynamic-table/editors/datetime/datetime.editor.mjs +0 -84
- package/esm2022/lib/form/widgets/dynamic-table/editors/dropdown/dropdown.editor.mjs +0 -95
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/cell-validator.model.mjs +0 -18
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/date-cell-validator-model.mjs +0 -47
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/dynamic-row-validation-summary.model.mjs +0 -24
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/dynamic-table-column-option.model.mjs +0 -18
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/dynamic-table-column.model.mjs +0 -18
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/dynamic-table-row.model.mjs +0 -18
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/dynamic-table.widget.model.mjs +0 -159
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/number-cell-validator.model.mjs +0 -45
- package/esm2022/lib/form/widgets/dynamic-table/editors/models/required-cell-validator.model.mjs +0 -40
- package/esm2022/lib/form/widgets/dynamic-table/editors/row-editor/row.editor.mjs +0 -89
- package/esm2022/lib/form/widgets/dynamic-table/editors/text/text.editor.mjs +0 -47
- package/esm2022/lib/form/widgets/dynamic-table/index.mjs +0 -18
- package/esm2022/lib/form/widgets/dynamic-table/public-api.mjs +0 -44
- package/esm2022/lib/form/widgets/file-viewer/file-viewer.widget.mjs +0 -46
- package/esm2022/lib/form/widgets/functional-group/functional-group.widget.mjs +0 -167
- package/esm2022/lib/form/widgets/index.mjs +0 -18
- package/esm2022/lib/form/widgets/people/people.widget.mjs +0 -169
- package/esm2022/lib/form/widgets/public-api.mjs +0 -54
- package/esm2022/lib/form/widgets/radio-buttons/radio-buttons.widget.mjs +0 -97
- package/esm2022/lib/form/widgets/typeahead/typeahead.widget.mjs +0 -152
- package/esm2022/lib/form/widgets/upload/upload.widget.mjs +0 -128
- package/esm2022/lib/people/components/people/people.component.mjs +0 -124
- package/esm2022/lib/people/components/people-list/people-list.component.mjs +0 -74
- package/esm2022/lib/people/components/people-search/people-search.component.mjs +0 -83
- package/esm2022/lib/people/components/people-search-field/people-search-field.component.mjs +0 -90
- package/esm2022/lib/people/components/people-selector/people-selector.component.mjs +0 -76
- package/esm2022/lib/people/helpers/get-display-user.mjs +0 -22
- package/esm2022/lib/people/index.mjs +0 -18
- package/esm2022/lib/people/interfaces/perform-search-callback.interface.mjs +0 -18
- package/esm2022/lib/people/public-api.mjs +0 -35
- package/esm2022/lib/process-comments/index.mjs +0 -21
- package/esm2022/lib/process-comments/process-comments.component.mjs +0 -45
- package/esm2022/lib/process-comments/services/comment-process.service.mjs +0 -77
- package/esm2022/lib/process-list/components/process-audit/process-audit.directive.mjs +0 -105
- package/esm2022/lib/process-list/components/process-filters/process-filters.component.mjs +0 -211
- package/esm2022/lib/process-list/components/process-instance-details/process-instance-details.component.mjs +0 -142
- package/esm2022/lib/process-list/components/process-instance-header/process-instance-header.component.mjs +0 -123
- package/esm2022/lib/process-list/components/process-instance-tasks/process-instance-tasks.component.mjs +0 -163
- package/esm2022/lib/process-list/components/process-list/process-list.component.mjs +0 -327
- package/esm2022/lib/process-list/components/start-process/start-process.component.mjs +0 -423
- package/esm2022/lib/process-list/index.mjs +0 -18
- package/esm2022/lib/process-list/public-api.mjs +0 -44
- package/esm2022/lib/process-list/services/process-filter.service.mjs +0 -182
- package/esm2022/lib/process-list/services/process.service.mjs +0 -259
- package/esm2022/lib/process.module.mjs +0 -132
- package/esm2022/lib/services/apps-process.service.mjs +0 -58
- package/esm2022/lib/services/people-process.service.mjs +0 -124
- package/esm2022/lib/services/task-comments.service.mjs +0 -65
- package/esm2022/lib/task-comments/index.mjs +0 -21
- package/esm2022/lib/task-comments/task-comments.component.mjs +0 -44
- package/esm2022/lib/task-list/components/attach-form/attach-form.component.mjs +0 -127
- package/esm2022/lib/task-list/components/checklist/checklist.component.mjs +0 -140
- package/esm2022/lib/task-list/components/start-task/start-task.component.mjs +0 -221
- package/esm2022/lib/task-list/components/task-details/task-details.component.mjs +0 -360
- package/esm2022/lib/task-list/components/task-filters/task-filters.component.mjs +0 -261
- package/esm2022/lib/task-list/components/task-form/claim-task.directive.mjs +0 -77
- package/esm2022/lib/task-list/components/task-form/task-form.component.mjs +0 -313
- package/esm2022/lib/task-list/components/task-form/unclaim-task.directive.mjs +0 -77
- package/esm2022/lib/task-list/components/task-header/task-header.component.mjs +0 -361
- package/esm2022/lib/task-list/components/task-list/task-list.component.mjs +0 -359
- package/esm2022/lib/task-list/components/task-standalone/task-standalone.component.mjs +0 -82
- package/esm2022/lib/task-list/index.mjs +0 -18
- package/esm2022/lib/task-list/models/form.model.mjs +0 -26
- package/esm2022/lib/task-list/models/task-details.event.mjs +0 -32
- package/esm2022/lib/task-list/models/task-preset.model.mjs +0 -41
- package/esm2022/lib/task-list/models/user-event.model.mjs +0 -18
- package/esm2022/lib/task-list/models/user-group.model.mjs +0 -18
- package/esm2022/lib/task-list/public-api.mjs +0 -60
- package/esm2022/lib/task-list/services/process-upload.service.mjs +0 -42
- package/esm2022/lib/task-list/services/task-filter.service.mjs +0 -249
- package/esm2022/lib/task-list/services/task-upload.service.mjs +0 -42
- package/esm2022/lib/task-list/services/tasklist.service.mjs +0 -251
- package/esm2022/lib/task-list/validators/task-description.validator.mjs +0 -26
- package/esm2022/public-api.mjs +0 -30
|
@@ -1,313 +0,0 @@
|
|
|
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 { Component, EventEmitter, inject, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
18
|
-
import { EmptyContentComponent, TranslationService } from '@alfresco/adf-core';
|
|
19
|
-
import { TaskListService } from '../../services/tasklist.service';
|
|
20
|
-
import { PeopleProcessService } from '../../../services/people-process.service';
|
|
21
|
-
import { CommonModule } from '@angular/common';
|
|
22
|
-
import { MatCardModule } from '@angular/material/card';
|
|
23
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
24
|
-
import { TranslatePipe } from '@ngx-translate/core';
|
|
25
|
-
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
26
|
-
import { ClaimTaskDirective } from './claim-task.directive';
|
|
27
|
-
import { UnclaimTaskDirective } from './unclaim-task.directive';
|
|
28
|
-
import { TaskStandaloneComponent } from '../task-standalone/task-standalone.component';
|
|
29
|
-
import { FormComponent, FormCustomOutcomesComponent } from '../../../form';
|
|
30
|
-
import * as i0 from "@angular/core";
|
|
31
|
-
import * as i1 from "@angular/common";
|
|
32
|
-
import * as i2 from "@angular/material/card";
|
|
33
|
-
import * as i3 from "@angular/material/button";
|
|
34
|
-
import * as i4 from "@angular/material/progress-spinner";
|
|
35
|
-
export class TaskFormComponent {
|
|
36
|
-
constructor() {
|
|
37
|
-
/** Toggles rendering of the form title. */
|
|
38
|
-
this.showFormTitle = false;
|
|
39
|
-
/** Toggles rendering of the `Complete` outcome button. */
|
|
40
|
-
this.showFormCompleteButton = true;
|
|
41
|
-
/** Toggles rendering of the `Save` outcome button. */
|
|
42
|
-
this.showFormSaveButton = true;
|
|
43
|
-
/** Toggle rendering of the `Cancel` button. */
|
|
44
|
-
this.showCancelButton = true;
|
|
45
|
-
/**
|
|
46
|
-
* Toggles read-only state of the form. All form widgets render as read-only if enabled.
|
|
47
|
-
*/
|
|
48
|
-
this.readOnlyForm = false;
|
|
49
|
-
/** Toggles rendering of the `Refresh` button. */
|
|
50
|
-
this.showFormRefreshButton = true;
|
|
51
|
-
/** Toggle rendering of the validation icon next to the form title. */
|
|
52
|
-
this.showFormValidationIcon = true;
|
|
53
|
-
/** Field validators for use with the form. */
|
|
54
|
-
this.fieldValidators = [];
|
|
55
|
-
/** Emitted when the form is submitted with the `Save` or custom outcomes. */
|
|
56
|
-
this.formSaved = new EventEmitter();
|
|
57
|
-
/** Emitted when the form is submitted with the `Complete` outcome. */
|
|
58
|
-
this.formCompleted = new EventEmitter();
|
|
59
|
-
/** Emitted when the form field content is clicked. */
|
|
60
|
-
this.formContentClicked = new EventEmitter();
|
|
61
|
-
/** Emitted when the form is loaded or reloaded. */
|
|
62
|
-
this.formLoaded = new EventEmitter();
|
|
63
|
-
/** Emitted when the form associated with the form task is attached. */
|
|
64
|
-
this.showAttachForm = new EventEmitter();
|
|
65
|
-
/**
|
|
66
|
-
* Emitted when any outcome is executed. Default behaviour can be prevented
|
|
67
|
-
* via `event.preventDefault()`.
|
|
68
|
-
*/
|
|
69
|
-
this.executeOutcome = new EventEmitter();
|
|
70
|
-
/** Emitted when the form associated with the task is completed. */
|
|
71
|
-
this.completed = new EventEmitter();
|
|
72
|
-
/** Emitted when the supplied form values have a validation error. */
|
|
73
|
-
this.formError = new EventEmitter();
|
|
74
|
-
/** Emitted when an error occurs. */
|
|
75
|
-
this.error = new EventEmitter();
|
|
76
|
-
/** Emitted when the "Cancel" button is clicked. */
|
|
77
|
-
this.cancel = new EventEmitter();
|
|
78
|
-
/** Emitted when the task is claimed. */
|
|
79
|
-
this.taskClaimed = new EventEmitter();
|
|
80
|
-
/** Emitted when the task is unclaimed (ie, requeued).. */
|
|
81
|
-
this.taskUnclaimed = new EventEmitter();
|
|
82
|
-
this.loading = false;
|
|
83
|
-
this.internalReadOnlyForm = false;
|
|
84
|
-
this.taskListService = inject(TaskListService);
|
|
85
|
-
this.peopleProcessService = inject(PeopleProcessService);
|
|
86
|
-
this.translationService = inject(TranslationService);
|
|
87
|
-
}
|
|
88
|
-
ngOnInit() {
|
|
89
|
-
this.peopleProcessService.getCurrentUserInfo().subscribe((user) => {
|
|
90
|
-
this.currentLoggedUser = user;
|
|
91
|
-
});
|
|
92
|
-
this.loadTask(this.taskId);
|
|
93
|
-
}
|
|
94
|
-
ngOnChanges(changes) {
|
|
95
|
-
const taskId = changes['taskId'];
|
|
96
|
-
if (taskId?.currentValue) {
|
|
97
|
-
this.loadTask(this.taskId);
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
loadTask(taskId) {
|
|
102
|
-
this.loading = true;
|
|
103
|
-
if (taskId) {
|
|
104
|
-
this.taskListService.getTaskDetails(taskId).subscribe((res) => {
|
|
105
|
-
this.taskDetails = res;
|
|
106
|
-
if (!this.taskDetails.name) {
|
|
107
|
-
this.taskDetails.name = 'No name';
|
|
108
|
-
}
|
|
109
|
-
const endDate = res.endDate;
|
|
110
|
-
if (endDate && !isNaN(endDate.getTime())) {
|
|
111
|
-
this.internalReadOnlyForm = true;
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
this.internalReadOnlyForm = this.readOnlyForm;
|
|
115
|
-
}
|
|
116
|
-
this.loading = false;
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
onFormSaved(savedForm) {
|
|
121
|
-
this.formSaved.emit(savedForm);
|
|
122
|
-
}
|
|
123
|
-
onFormCompleted(form) {
|
|
124
|
-
this.formCompleted.emit(form);
|
|
125
|
-
}
|
|
126
|
-
onFormLoaded(form) {
|
|
127
|
-
this.formLoaded.emit(form);
|
|
128
|
-
}
|
|
129
|
-
onFormContentClick(content) {
|
|
130
|
-
this.formContentClicked.emit(content);
|
|
131
|
-
}
|
|
132
|
-
onFormExecuteOutcome(outcome) {
|
|
133
|
-
this.executeOutcome.emit(outcome);
|
|
134
|
-
}
|
|
135
|
-
onFormError(error) {
|
|
136
|
-
this.formError.emit(error);
|
|
137
|
-
}
|
|
138
|
-
onError(error) {
|
|
139
|
-
this.error.emit(error);
|
|
140
|
-
}
|
|
141
|
-
onCompleteTask() {
|
|
142
|
-
this.taskListService.completeTask(this.taskDetails.id).subscribe(() => this.completed.emit(), (error) => this.error.emit(error));
|
|
143
|
-
}
|
|
144
|
-
onCancel() {
|
|
145
|
-
this.cancel.emit();
|
|
146
|
-
}
|
|
147
|
-
onShowAttachForm() {
|
|
148
|
-
this.showAttachForm.emit();
|
|
149
|
-
}
|
|
150
|
-
hasFormKey() {
|
|
151
|
-
return !!this.taskDetails?.formKey;
|
|
152
|
-
}
|
|
153
|
-
isStandaloneTask() {
|
|
154
|
-
return !this.taskDetails?.processDefinitionId;
|
|
155
|
-
}
|
|
156
|
-
isCompletedTask() {
|
|
157
|
-
return !!this.taskDetails?.endDate;
|
|
158
|
-
}
|
|
159
|
-
isCompleteButtonVisible() {
|
|
160
|
-
return !this.hasFormKey() && this.isTaskActive() && this.isCompleteButtonEnabled();
|
|
161
|
-
}
|
|
162
|
-
isTaskActive() {
|
|
163
|
-
return this.taskDetails?.duration === null;
|
|
164
|
-
}
|
|
165
|
-
isAssigned() {
|
|
166
|
-
return !!this.taskDetails.assignee;
|
|
167
|
-
}
|
|
168
|
-
isAssignedToMe() {
|
|
169
|
-
return this.isAssigned() && this.hasEmailAddress() ? this.isEmailEqual() : this.isExternalIdEqual();
|
|
170
|
-
}
|
|
171
|
-
isCompleteButtonEnabled() {
|
|
172
|
-
return this.isAssignedToMe() || this.canInitiatorComplete();
|
|
173
|
-
}
|
|
174
|
-
canInitiatorComplete() {
|
|
175
|
-
return !!this.taskDetails?.initiatorCanCompleteTask;
|
|
176
|
-
}
|
|
177
|
-
isReadOnlyForm() {
|
|
178
|
-
let readOnlyForm;
|
|
179
|
-
if (this.isCandidateMember()) {
|
|
180
|
-
readOnlyForm = this.internalReadOnlyForm || !this.isAssignedToMe();
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
readOnlyForm =
|
|
184
|
-
this.internalReadOnlyForm || !(this.isAssignedToMe() || this.canCurrentUserAsInitiatorComplete() || this.isCurrentUserInvolved());
|
|
185
|
-
}
|
|
186
|
-
return readOnlyForm;
|
|
187
|
-
}
|
|
188
|
-
isCurrentUserInvolved() {
|
|
189
|
-
let isInvolved = false;
|
|
190
|
-
if (this.taskDetails.involvedPeople && this.currentLoggedUser) {
|
|
191
|
-
const userInvolved = this.taskDetails.involvedPeople.find((involvedUser) => involvedUser.email.toLocaleLowerCase() === this.currentLoggedUser.email.toLocaleLowerCase() ||
|
|
192
|
-
involvedUser.id + '' === this.currentLoggedUser.externalId);
|
|
193
|
-
isInvolved = !!userInvolved;
|
|
194
|
-
}
|
|
195
|
-
if (this.taskDetails.involvedGroups?.length && this.currentLoggedUser.groups?.length && !isInvolved) {
|
|
196
|
-
const userGroup = this.taskDetails.involvedGroups.find((involvedGroup) => this.currentLoggedUser.groups.find((group) => group.name === involvedGroup.name.toLocaleLowerCase() || group.id === involvedGroup.id));
|
|
197
|
-
isInvolved = !!userGroup;
|
|
198
|
-
}
|
|
199
|
-
return isInvolved;
|
|
200
|
-
}
|
|
201
|
-
canCurrentUserAsInitiatorComplete() {
|
|
202
|
-
return this.canInitiatorComplete() && this.isProcessInitiator();
|
|
203
|
-
}
|
|
204
|
-
isProcessInitiator() {
|
|
205
|
-
return this.currentLoggedUser && this.currentLoggedUser.id === +this.taskDetails.processInstanceStartUserId;
|
|
206
|
-
}
|
|
207
|
-
isSaveButtonVisible() {
|
|
208
|
-
return this.showFormSaveButton && (!this.canInitiatorComplete() || this.isAssignedToMe() || this.isCurrentUserInvolved());
|
|
209
|
-
}
|
|
210
|
-
canCompleteNoFormTask() {
|
|
211
|
-
return this.isReadOnlyForm();
|
|
212
|
-
}
|
|
213
|
-
getCompletedTaskTranslatedMessage() {
|
|
214
|
-
return this.translationService.get('ADF_TASK_FORM.COMPLETED_TASK.TITLE', { taskName: this.taskDetails.name });
|
|
215
|
-
}
|
|
216
|
-
isCandidateMember() {
|
|
217
|
-
return this.taskDetails.managerOfCandidateGroup || this.taskDetails.memberOfCandidateGroup || this.taskDetails.memberOfCandidateUsers;
|
|
218
|
-
}
|
|
219
|
-
isTaskClaimable() {
|
|
220
|
-
return this.isCandidateMember() && !this.isAssigned();
|
|
221
|
-
}
|
|
222
|
-
isTaskClaimedByCandidateMember() {
|
|
223
|
-
return this.isCandidateMember() && this.isAssignedToMe() && !this.isCompletedTask();
|
|
224
|
-
}
|
|
225
|
-
reloadTask() {
|
|
226
|
-
this.loadTask(this.taskId);
|
|
227
|
-
}
|
|
228
|
-
onClaimTask(taskId) {
|
|
229
|
-
this.taskClaimed.emit(taskId);
|
|
230
|
-
}
|
|
231
|
-
onClaimTaskError(error) {
|
|
232
|
-
this.error.emit(error);
|
|
233
|
-
}
|
|
234
|
-
onUnclaimTask(taskId) {
|
|
235
|
-
this.taskUnclaimed.emit(taskId);
|
|
236
|
-
}
|
|
237
|
-
onUnclaimTaskError(error) {
|
|
238
|
-
this.error.emit(error);
|
|
239
|
-
}
|
|
240
|
-
hasEmailAddress() {
|
|
241
|
-
return !!this.taskDetails.assignee.email;
|
|
242
|
-
}
|
|
243
|
-
isEmailEqual() {
|
|
244
|
-
return (this.taskDetails.assignee &&
|
|
245
|
-
this.currentLoggedUser &&
|
|
246
|
-
this.taskDetails.assignee.email.toLocaleLowerCase() === this.currentLoggedUser.email.toLocaleLowerCase());
|
|
247
|
-
}
|
|
248
|
-
isExternalIdEqual() {
|
|
249
|
-
return this.taskDetails.assignee && this.currentLoggedUser && this.taskDetails.assignee.externalId === this.currentLoggedUser.externalId;
|
|
250
|
-
}
|
|
251
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
252
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TaskFormComponent, isStandalone: true, selector: "adf-task-form", inputs: { taskId: "taskId", showFormTitle: "showFormTitle", showFormCompleteButton: "showFormCompleteButton", showFormSaveButton: "showFormSaveButton", showCancelButton: "showCancelButton", readOnlyForm: "readOnlyForm", showFormRefreshButton: "showFormRefreshButton", showFormValidationIcon: "showFormValidationIcon", fieldValidators: "fieldValidators" }, outputs: { formSaved: "formSaved", formCompleted: "formCompleted", formContentClicked: "formContentClicked", formLoaded: "formLoaded", showAttachForm: "showAttachForm", executeOutcome: "executeOutcome", completed: "completed", formError: "formError", error: "error", cancel: "cancel", taskClaimed: "taskClaimed", taskUnclaimed: "taskUnclaimed" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!loading; else loadingTemplate\">\n <adf-form *ngIf=\"hasFormKey(); else withoutForm\"\n [taskId]=\"taskDetails?.id\"\n [showTitle]=\"showFormTitle\"\n [showValidationIcon]=\"showFormValidationIcon\"\n [showRefreshButton]=\"showFormRefreshButton\"\n [showCompleteButton]=\"showFormCompleteButton\"\n [showSaveButton]=\"isSaveButtonVisible()\"\n [disableCompleteButton]=\"!isCompleteButtonEnabled()\"\n [readOnly]=\"isReadOnlyForm()\"\n [fieldValidators]=\"fieldValidators\"\n (formSaved)='onFormSaved($event)'\n (formCompleted)='onFormCompleted($event)'\n (formContentClicked)='onFormContentClick($event)'\n (formLoaded)='onFormLoaded($event)'\n (formError)='onFormError($event)'\n (error)='onError($event)'\n (executeOutcome)='onFormExecuteOutcome($event)'>\n <adf-form-custom-outcomes>\n <ng-template [ngTemplateOutlet]=\"taskFormButtons\" />\n </adf-form-custom-outcomes>\n </adf-form>\n <ng-template #withoutForm>\n <adf-task-standalone *ngIf=\"isStandaloneTask(); else emptyFormMessage\"\n [taskName]=\"taskDetails.name\"\n [taskId]=\"taskDetails.id\"\n [isCompleted]=\"isCompletedTask()\"\n [hasCompletePermission]=\"isCompleteButtonVisible()\"\n [hideCancelButton]=\"showCancelButton\"\n (complete)=\"onCompleteTask()\"\n (showAttachForm)=\"onShowAttachForm()\" />\n <ng-template #emptyFormMessage>\n <mat-card appearance=\"outlined\" class=\"adf-task-form-container\">\n <mat-card-header>\n <mat-card-title>\n <h4>\n <span class=\"adf-form-title\">\n {{taskDetails.name}}\n <ng-container *ngIf=\"!taskDetails.name\">\n {{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}}\n </ng-container>\n </span>\n </h4>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <adf-empty-content *ngIf=\"isCompletedTask(); else emptyFormTemplate\"\n [icon]=\"'description'\"\n [title]=\"getCompletedTaskTranslatedMessage() | async\"\n [subtitle]=\"'ADF_TASK_FORM.COMPLETED_TASK.SUBTITLE'\" />\n <ng-template #emptyFormTemplate>\n <adf-empty-content\n [icon]=\"'description'\"\n [title]=\"'ADF_TASK_LIST.STANDALONE_TASK.NO_FORM_MESSAGE'\"\n [subtitle]=\"'ADF_TASK_FORM.EMPTY_FORM.SUBTITLE'\" />\n </ng-template>\n </mat-card-content>\n <mat-card-actions align=\"end\">\n <div class=\"adf-task-form-actions\">\n <ng-template [ngTemplateOutlet]=\"taskFormButtons\" />\n <button mat-button\n *ngIf=\"!isCompletedTask()\" id=\"adf-no-form-complete-button\"\n color=\"primary\"\n class=\"adf-task-form-actions-button\"\n [disabled]=\"canCompleteNoFormTask()\"\n (click)=\"onCompleteTask()\">\n {{'ADF_TASK_FORM.EMPTY_FORM.BUTTONS.COMPLETE' | translate}}\n </button>\n </div>\n </mat-card-actions>\n </mat-card>\n </ng-template>\n </ng-template>\n\n <ng-template #taskFormButtons>\n <button mat-button id=\"adf-no-form-cancel-button\"\n *ngIf=\"showCancelButton\"\n (click)=\"onCancel()\">\n {{'ADF_TASK_FORM.EMPTY_FORM.BUTTONS.CANCEL' | translate}}\n </button>\n <button mat-button data-automation-id=\"adf-task-form-claim-button\"\n *ngIf=\"isTaskClaimable()\"\n adf-claim-task\n [taskId]=\"taskId\"\n (success)=\"onClaimTask($event)\"\n (error)=\"onClaimTaskError($event)\">\n {{ 'ADF_TASK_FORM.EMPTY_FORM.BUTTONS.CLAIM' | translate }}\n </button>\n <button mat-button data-automation-id=\"adf-task-form-unclaim-button\"\n *ngIf=\"isTaskClaimedByCandidateMember()\"\n adf-unclaim-task\n [taskId]=\"taskId\"\n (success)=\"onUnclaimTask($event)\"\n (error)=\"onUnclaimTaskError($event)\">\n {{ 'ADF_TASK_FORM.EMPTY_FORM.BUTTONS.UNCLAIM' | translate }}\n </button>\n </ng-template>\n</ng-container>\n<ng-template #loadingTemplate>\n <div class=\"adf-task-form-spinner-container\">\n <mat-spinner />\n </div>\n</ng-template>\n", styles: [".adf-task-form-container{overflow:hidden}.adf-task-form-actions{float:right;padding-right:25px;padding-bottom:25px}.adf-task-form-actions .mat-mdc-button{height:36px;border-radius:5px}.adf-task-form-actions .mdc-button__label{width:58px;height:20px;opacity:.54;font-size:var(--theme-body-2-font-size);font-weight:700}.adf-task-form-spinner-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.adf-task-form-spinner-container mat-spinner{display:flex;max-height:100%;place-content:center;align-items:center}\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: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: ClaimTaskDirective, selector: "[adf-claim-task]", inputs: ["taskId"], outputs: ["success", "error"] }, { kind: "directive", type: UnclaimTaskDirective, selector: "[adf-unclaim-task]", inputs: ["taskId"], outputs: ["success", "error"] }, { kind: "component", type: TaskStandaloneComponent, selector: "adf-task-standalone", inputs: ["taskName", "taskId", "isCompleted", "hasCompletePermission", "hideCancelButton"], outputs: ["cancel", "complete", "showAttachForm"] }, { kind: "component", type: FormComponent, selector: "adf-form", inputs: ["taskId", "nodeId", "formId", "formName", "saveMetadata", "data", "enableFixedSpacedForm"], outputs: ["formSaved", "formCompleted", "formContentClicked", "formLoaded", "formDataRefreshed"] }, { kind: "component", type: FormCustomOutcomesComponent, selector: "adf-form-custom-outcomes" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
253
|
-
}
|
|
254
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskFormComponent, decorators: [{
|
|
255
|
-
type: Component,
|
|
256
|
-
args: [{ selector: 'adf-task-form', standalone: true, imports: [
|
|
257
|
-
CommonModule,
|
|
258
|
-
MatCardModule,
|
|
259
|
-
EmptyContentComponent,
|
|
260
|
-
MatButtonModule,
|
|
261
|
-
TranslatePipe,
|
|
262
|
-
MatProgressSpinnerModule,
|
|
263
|
-
ClaimTaskDirective,
|
|
264
|
-
UnclaimTaskDirective,
|
|
265
|
-
TaskStandaloneComponent,
|
|
266
|
-
FormComponent,
|
|
267
|
-
FormCustomOutcomesComponent
|
|
268
|
-
], encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"!loading; else loadingTemplate\">\n <adf-form *ngIf=\"hasFormKey(); else withoutForm\"\n [taskId]=\"taskDetails?.id\"\n [showTitle]=\"showFormTitle\"\n [showValidationIcon]=\"showFormValidationIcon\"\n [showRefreshButton]=\"showFormRefreshButton\"\n [showCompleteButton]=\"showFormCompleteButton\"\n [showSaveButton]=\"isSaveButtonVisible()\"\n [disableCompleteButton]=\"!isCompleteButtonEnabled()\"\n [readOnly]=\"isReadOnlyForm()\"\n [fieldValidators]=\"fieldValidators\"\n (formSaved)='onFormSaved($event)'\n (formCompleted)='onFormCompleted($event)'\n (formContentClicked)='onFormContentClick($event)'\n (formLoaded)='onFormLoaded($event)'\n (formError)='onFormError($event)'\n (error)='onError($event)'\n (executeOutcome)='onFormExecuteOutcome($event)'>\n <adf-form-custom-outcomes>\n <ng-template [ngTemplateOutlet]=\"taskFormButtons\" />\n </adf-form-custom-outcomes>\n </adf-form>\n <ng-template #withoutForm>\n <adf-task-standalone *ngIf=\"isStandaloneTask(); else emptyFormMessage\"\n [taskName]=\"taskDetails.name\"\n [taskId]=\"taskDetails.id\"\n [isCompleted]=\"isCompletedTask()\"\n [hasCompletePermission]=\"isCompleteButtonVisible()\"\n [hideCancelButton]=\"showCancelButton\"\n (complete)=\"onCompleteTask()\"\n (showAttachForm)=\"onShowAttachForm()\" />\n <ng-template #emptyFormMessage>\n <mat-card appearance=\"outlined\" class=\"adf-task-form-container\">\n <mat-card-header>\n <mat-card-title>\n <h4>\n <span class=\"adf-form-title\">\n {{taskDetails.name}}\n <ng-container *ngIf=\"!taskDetails.name\">\n {{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}}\n </ng-container>\n </span>\n </h4>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <adf-empty-content *ngIf=\"isCompletedTask(); else emptyFormTemplate\"\n [icon]=\"'description'\"\n [title]=\"getCompletedTaskTranslatedMessage() | async\"\n [subtitle]=\"'ADF_TASK_FORM.COMPLETED_TASK.SUBTITLE'\" />\n <ng-template #emptyFormTemplate>\n <adf-empty-content\n [icon]=\"'description'\"\n [title]=\"'ADF_TASK_LIST.STANDALONE_TASK.NO_FORM_MESSAGE'\"\n [subtitle]=\"'ADF_TASK_FORM.EMPTY_FORM.SUBTITLE'\" />\n </ng-template>\n </mat-card-content>\n <mat-card-actions align=\"end\">\n <div class=\"adf-task-form-actions\">\n <ng-template [ngTemplateOutlet]=\"taskFormButtons\" />\n <button mat-button\n *ngIf=\"!isCompletedTask()\" id=\"adf-no-form-complete-button\"\n color=\"primary\"\n class=\"adf-task-form-actions-button\"\n [disabled]=\"canCompleteNoFormTask()\"\n (click)=\"onCompleteTask()\">\n {{'ADF_TASK_FORM.EMPTY_FORM.BUTTONS.COMPLETE' | translate}}\n </button>\n </div>\n </mat-card-actions>\n </mat-card>\n </ng-template>\n </ng-template>\n\n <ng-template #taskFormButtons>\n <button mat-button id=\"adf-no-form-cancel-button\"\n *ngIf=\"showCancelButton\"\n (click)=\"onCancel()\">\n {{'ADF_TASK_FORM.EMPTY_FORM.BUTTONS.CANCEL' | translate}}\n </button>\n <button mat-button data-automation-id=\"adf-task-form-claim-button\"\n *ngIf=\"isTaskClaimable()\"\n adf-claim-task\n [taskId]=\"taskId\"\n (success)=\"onClaimTask($event)\"\n (error)=\"onClaimTaskError($event)\">\n {{ 'ADF_TASK_FORM.EMPTY_FORM.BUTTONS.CLAIM' | translate }}\n </button>\n <button mat-button data-automation-id=\"adf-task-form-unclaim-button\"\n *ngIf=\"isTaskClaimedByCandidateMember()\"\n adf-unclaim-task\n [taskId]=\"taskId\"\n (success)=\"onUnclaimTask($event)\"\n (error)=\"onUnclaimTaskError($event)\">\n {{ 'ADF_TASK_FORM.EMPTY_FORM.BUTTONS.UNCLAIM' | translate }}\n </button>\n </ng-template>\n</ng-container>\n<ng-template #loadingTemplate>\n <div class=\"adf-task-form-spinner-container\">\n <mat-spinner />\n </div>\n</ng-template>\n", styles: [".adf-task-form-container{overflow:hidden}.adf-task-form-actions{float:right;padding-right:25px;padding-bottom:25px}.adf-task-form-actions .mat-mdc-button{height:36px;border-radius:5px}.adf-task-form-actions .mdc-button__label{width:58px;height:20px;opacity:.54;font-size:var(--theme-body-2-font-size);font-weight:700}.adf-task-form-spinner-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.adf-task-form-spinner-container mat-spinner{display:flex;max-height:100%;place-content:center;align-items:center}\n"] }]
|
|
269
|
-
}], propDecorators: { taskId: [{
|
|
270
|
-
type: Input,
|
|
271
|
-
args: [{ required: true }]
|
|
272
|
-
}], showFormTitle: [{
|
|
273
|
-
type: Input
|
|
274
|
-
}], showFormCompleteButton: [{
|
|
275
|
-
type: Input
|
|
276
|
-
}], showFormSaveButton: [{
|
|
277
|
-
type: Input
|
|
278
|
-
}], showCancelButton: [{
|
|
279
|
-
type: Input
|
|
280
|
-
}], readOnlyForm: [{
|
|
281
|
-
type: Input
|
|
282
|
-
}], showFormRefreshButton: [{
|
|
283
|
-
type: Input
|
|
284
|
-
}], showFormValidationIcon: [{
|
|
285
|
-
type: Input
|
|
286
|
-
}], fieldValidators: [{
|
|
287
|
-
type: Input
|
|
288
|
-
}], formSaved: [{
|
|
289
|
-
type: Output
|
|
290
|
-
}], formCompleted: [{
|
|
291
|
-
type: Output
|
|
292
|
-
}], formContentClicked: [{
|
|
293
|
-
type: Output
|
|
294
|
-
}], formLoaded: [{
|
|
295
|
-
type: Output
|
|
296
|
-
}], showAttachForm: [{
|
|
297
|
-
type: Output
|
|
298
|
-
}], executeOutcome: [{
|
|
299
|
-
type: Output
|
|
300
|
-
}], completed: [{
|
|
301
|
-
type: Output
|
|
302
|
-
}], formError: [{
|
|
303
|
-
type: Output
|
|
304
|
-
}], error: [{
|
|
305
|
-
type: Output
|
|
306
|
-
}], cancel: [{
|
|
307
|
-
type: Output
|
|
308
|
-
}], taskClaimed: [{
|
|
309
|
-
type: Output
|
|
310
|
-
}], taskUnclaimed: [{
|
|
311
|
-
type: Output
|
|
312
|
-
}] } });
|
|
313
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvdGFzay1saXN0L2NvbXBvbmVudHMvdGFzay1mb3JtL3Rhc2stZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy9zcmMvbGliL3Rhc2stbGlzdC9jb21wb25lbnRzL3Rhc2stZm9ybS90YXNrLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBRUgscUJBQXFCLEVBS3JCLGtCQUFrQixFQUNyQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxF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Q3hCLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLGFBQWE7d0JBQ2IsMkJBQTJCO3FCQUM5QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJOzhCQUtyQyxNQUFNO3NCQURMLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUt6QixhQUFhO3NCQURaLEtBQUs7Z0JBS04sc0JBQXNCO3NCQURyQixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFPTixZQUFZO3NCQURYLEtBQUs7Z0JBS04scUJBQXFCO3NCQURwQixLQUFLO2dCQUtOLHNCQUFzQjtzQkFEckIsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sU0FBUztzQkFEUixNQUFNO2dCQUtQLGFBQWE7c0JBRFosTUFBTTtnQkFLUCxrQkFBa0I7c0JBRGpCLE1BQU07Z0JBS1AsVUFBVTtzQkFEVCxNQUFNO2dCQUtQLGNBQWM7c0JBRGIsTUFBTTtnQkFRUCxjQUFjO3NCQURiLE1BQU07Z0JBS1AsU0FBUztzQkFEUixNQUFNO2dCQUtQLFNBQVM7c0JBRFIsTUFBTTtnQkFLUCxLQUFLO3NCQURKLE1BQU07Z0JBS1AsTUFBTTtzQkFETCxNQUFNO2dCQUtQLFdBQVc7c0JBRFYsTUFBTTtnQkFLUCxhQUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDb250ZW50TGlua01vZGVsLFxuICAgIEVtcHR5Q29udGVudENvbXBvbmVudCxcbiAgICBGb3JtRmllbGRNb2RlbCxcbiAgICBGb3JtRmllbGRWYWxpZGF0b3IsXG4gICAgRm9ybU1vZGVsLFxuICAgIEZvcm1PdXRjb21lRXZlbnQsXG4gICAgVHJhbnNsYXRpb25TZXJ2aWNlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBUYXNrTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRhc2tSZXByZXNlbnRhdGlvbiwgVXNlclJlcHJlc2VudGF0aW9uIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQZW9wbGVQcm9jZXNzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Blb3BsZS1wcm9jZXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IENsYWltVGFza0RpcmVjdGl2ZSB9IGZyb20gJy4vY2xhaW0tdGFzay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVW5jbGFpbVRhc2tEaXJlY3RpdmUgfSBmcm9tICcuL3VuY2xhaW0tdGFzay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFza1N0YW5kYWxvbmVDb21wb25lbnQgfSBmcm9tICcuLi90YXNrLXN0YW5kYWxvbmUvdGFzay1zdGFuZGFsb25lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50LCBGb3JtQ3VzdG9tT3V0Y29tZXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9mb3JtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtdGFzay1mb3JtJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRDYXJkTW9kdWxlLFxuICAgICAgICBFbXB0eUNvbnRlbnRDb21wb25lbnQsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBDbGFpbVRhc2tEaXJlY3RpdmUsXG4gICAgICAgIFVuY2xhaW1UYXNrRGlyZWN0aXZlLFxuICAgICAgICBUYXNrU3RhbmRhbG9uZUNvbXBvbmVudCxcbiAgICAgICAgRm9ybUNvbXBvbmVudCxcbiAgICAgICAgRm9ybUN1c3RvbU91dGNvbWVzQ29tcG9uZW50XG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFzay1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YXNrLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIC8qKiAoKipyZXF1aXJlZCoqKSBUaGUgaWQgb2YgdGhlIHRhc2sgd2hvc2UgZGV0YWlscyB3ZSBhcmUgYXNraW5nIGZvci4gKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHRhc2tJZDogc3RyaW5nO1xuXG4gICAgLyoqIFRvZ2dsZXMgcmVuZGVyaW5nIG9mIHRoZSBmb3JtIHRpdGxlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0Zvcm1UaXRsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIFRvZ2dsZXMgcmVuZGVyaW5nIG9mIHRoZSBgQ29tcGxldGVgIG91dGNvbWUgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0Zvcm1Db21wbGV0ZUJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyByZW5kZXJpbmcgb2YgdGhlIGBTYXZlYCBvdXRjb21lIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dGb3JtU2F2ZUJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlIHJlbmRlcmluZyBvZiB0aGUgYENhbmNlbGAgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0NhbmNlbEJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIHJlYWQtb25seSBzdGF0ZSBvZiB0aGUgZm9ybS4gQWxsIGZvcm0gd2lkZ2V0cyByZW5kZXIgYXMgcmVhZC1vbmx5IGlmIGVuYWJsZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICByZWFkT25seUZvcm06IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGVzIHJlbmRlcmluZyBvZiB0aGUgYFJlZnJlc2hgIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dGb3JtUmVmcmVzaEJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlIHJlbmRlcmluZyBvZiB0aGUgdmFsaWRhdGlvbiBpY29uIG5leHQgdG8gdGhlIGZvcm0gdGl0bGUuICovXG4gICAgQElucHV0KClcbiAgICBzaG93Rm9ybVZhbGlkYXRpb25JY29uOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBGaWVsZCB2YWxpZGF0b3JzIGZvciB1c2Ugd2l0aCB0aGUgZm9ybS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZpZWxkVmFsaWRhdG9yczogRm9ybUZpZWxkVmFsaWRhdG9yW10gPSBbXTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkIHdpdGggdGhlIGBTYXZlYCBvciBjdXN0b20gb3V0Y29tZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybVNhdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCB3aXRoIHRoZSBgQ29tcGxldGVgIG91dGNvbWUuICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybUNvbXBsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybU1vZGVsPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBmaWVsZCBjb250ZW50IGlzIGNsaWNrZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybUNvbnRlbnRDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDb250ZW50TGlua01vZGVsPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBpcyBsb2FkZWQgb3IgcmVsb2FkZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybUxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybU1vZGVsPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFzayBpcyBhdHRhY2hlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBzaG93QXR0YWNoRm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiBhbnkgb3V0Y29tZSBpcyBleGVjdXRlZC4gRGVmYXVsdCBiZWhhdmlvdXIgY2FuIGJlIHByZXZlbnRlZFxuICAgICAqIHZpYSBgZXZlbnQucHJldmVudERlZmF1bHQoKWAuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZXhlY3V0ZU91dGNvbWUgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1PdXRjb21lRXZlbnQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBmb3JtIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFzayBpcyBjb21wbGV0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgY29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgc3VwcGxpZWQgZm9ybSB2YWx1ZXMgaGF2ZSBhIHZhbGlkYXRpb24gZXJyb3IuICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybUVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtRmllbGRNb2RlbFtdPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIFwiQ2FuY2VsXCIgYnV0dG9uIGlzIGNsaWNrZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdGFzayBpcyBjbGFpbWVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHRhc2tDbGFpbWVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0YXNrIGlzIHVuY2xhaW1lZCAoaWUsIHJlcXVldWVkKS4uICovXG4gICAgQE91dHB1dCgpXG4gICAgdGFza1VuY2xhaW1lZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgdGFza0RldGFpbHM6IFRhc2tSZXByZXNlbnRhdGlvbjtcbiAgICBjdXJyZW50TG9nZ2VkVXNlcjogVXNlclJlcHJlc2VudGF0aW9uO1xuICAgIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBpbnRlcm5hbFJlYWRPbmx5Rm9ybTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSB0YXNrTGlzdFNlcnZpY2UgPSBpbmplY3QoVGFza0xpc3RTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHBlb3BsZVByb2Nlc3NTZXJ2aWNlID0gaW5qZWN0KFBlb3BsZVByb2Nlc3NTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucGVvcGxlUHJvY2Vzc1NlcnZpY2UuZ2V0Q3VycmVudFVzZXJJbmZvKCkuc3Vic2NyaWJlKCh1c2VyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMb2dnZWRVc2VyID0gdXNlcjtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubG9hZFRhc2sodGhpcy50YXNrSWQpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgY29uc3QgdGFza0lkID0gY2hhbmdlc1sndGFza0lkJ107XG4gICAgICAgIGlmICh0YXNrSWQ/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkVGFzayh0aGlzLnRhc2tJZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsb2FkVGFzayh0YXNrSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBpZiAodGFza0lkKSB7XG4gICAgICAgICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS5nZXRUYXNrRGV0YWlscyh0YXNrSWQpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRGV0YWlscyA9IHJlcztcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YXNrRGV0YWlscy5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFza0RldGFpbHMubmFtZSA9ICdObyBuYW1lJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBlbmREYXRlOiBhbnkgPSByZXMuZW5kRGF0ZTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kRGF0ZSAmJiAhaXNOYU4oZW5kRGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxSZWFkT25seUZvcm0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxSZWFkT25seUZvcm0gPSB0aGlzLnJlYWRPbmx5Rm9ybTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9ybVNhdmVkKHNhdmVkRm9ybTogRm9ybU1vZGVsKSB7XG4gICAgICAgIHRoaXMuZm9ybVNhdmVkLmVtaXQoc2F2ZWRGb3JtKTtcbiAgICB9XG5cbiAgICBvbkZvcm1Db21wbGV0ZWQoZm9ybTogRm9ybU1vZGVsKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbXBsZXRlZC5lbWl0KGZvcm0pO1xuICAgIH1cblxuICAgIG9uRm9ybUxvYWRlZChmb3JtOiBGb3JtTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtTG9hZGVkLmVtaXQoZm9ybSk7XG4gICAgfVxuXG4gICAgb25Gb3JtQ29udGVudENsaWNrKGNvbnRlbnQ6IENvbnRlbnRMaW5rTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udGVudENsaWNrZWQuZW1pdChjb250ZW50KTtcbiAgICB9XG5cbiAgICBvbkZvcm1FeGVjdXRlT3V0Y29tZShvdXRjb21lOiBGb3JtT3V0Y29tZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuZXhlY3V0ZU91dGNvbWUuZW1pdChvdXRjb21lKTtcbiAgICB9XG5cbiAgICBvbkZvcm1FcnJvcihlcnJvcjogYW55KSB7XG4gICAgICAgIHRoaXMuZm9ybUVycm9yLmVtaXQoZXJyb3IpO1xuICAgIH1cblxuICAgIG9uRXJyb3IoZXJyb3I6IGFueSkge1xuICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyb3IpO1xuICAgIH1cblxuICAgIG9uQ29tcGxldGVUYXNrKCkge1xuICAgICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS5jb21wbGV0ZVRhc2sodGhpcy50YXNrRGV0YWlscy5pZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKCkgPT4gdGhpcy5jb21wbGV0ZWQuZW1pdCgpLFxuICAgICAgICAgICAgKGVycm9yKSA9PiB0aGlzLmVycm9yLmVtaXQoZXJyb3IpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25DYW5jZWwoKSB7XG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvblNob3dBdHRhY2hGb3JtKCkge1xuICAgICAgICB0aGlzLnNob3dBdHRhY2hGb3JtLmVtaXQoKTtcbiAgICB9XG5cbiAgICBoYXNGb3JtS2V5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRhc2tEZXRhaWxzPy5mb3JtS2V5O1xuICAgIH1cblxuICAgIGlzU3RhbmRhbG9uZVRhc2soKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy50YXNrRGV0YWlscz8ucHJvY2Vzc0RlZmluaXRpb25JZDtcbiAgICB9XG5cbiAgICBpc0NvbXBsZXRlZFRhc2soKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGFza0RldGFpbHM/LmVuZERhdGU7XG4gICAgfVxuXG4gICAgaXNDb21wbGV0ZUJ1dHRvblZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5oYXNGb3JtS2V5KCkgJiYgdGhpcy5pc1Rhc2tBY3RpdmUoKSAmJiB0aGlzLmlzQ29tcGxldGVCdXR0b25FbmFibGVkKCk7XG4gICAgfVxuXG4gICAgaXNUYXNrQWN0aXZlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50YXNrRGV0YWlscz8uZHVyYXRpb24gPT09IG51bGw7XG4gICAgfVxuXG4gICAgaXNBc3NpZ25lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50YXNrRGV0YWlscy5hc3NpZ25lZTtcbiAgICB9XG5cbiAgICBpc0Fzc2lnbmVkVG9NZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNBc3NpZ25lZCgpICYmIHRoaXMuaGFzRW1haWxBZGRyZXNzKCkgPyB0aGlzLmlzRW1haWxFcXVhbCgpIDogdGhpcy5pc0V4dGVybmFsSWRFcXVhbCgpO1xuICAgIH1cblxuICAgIGlzQ29tcGxldGVCdXR0b25FbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Fzc2lnbmVkVG9NZSgpIHx8IHRoaXMuY2FuSW5pdGlhdG9yQ29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBjYW5Jbml0aWF0b3JDb21wbGV0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50YXNrRGV0YWlscz8uaW5pdGlhdG9yQ2FuQ29tcGxldGVUYXNrO1xuICAgIH1cblxuICAgIGlzUmVhZE9ubHlGb3JtKCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgcmVhZE9ubHlGb3JtOiBib29sZWFuO1xuICAgICAgICBpZiAodGhpcy5pc0NhbmRpZGF0ZU1lbWJlcigpKSB7XG4gICAgICAgICAgICByZWFkT25seUZvcm0gPSB0aGlzLmludGVybmFsUmVhZE9ubHlGb3JtIHx8ICF0aGlzLmlzQXNzaWduZWRUb01lKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWFkT25seUZvcm0gPVxuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxSZWFkT25seUZvcm0gfHwgISh0aGlzLmlzQXNzaWduZWRUb01lKCkgfHwgdGhpcy5jYW5DdXJyZW50VXNlckFzSW5pdGlhdG9yQ29tcGxldGUoKSB8fCB0aGlzLmlzQ3VycmVudFVzZXJJbnZvbHZlZCgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZWFkT25seUZvcm07XG4gICAgfVxuXG4gICAgaXNDdXJyZW50VXNlckludm9sdmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgaXNJbnZvbHZlZCA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy50YXNrRGV0YWlscy5pbnZvbHZlZFBlb3BsZSAmJiB0aGlzLmN1cnJlbnRMb2dnZWRVc2VyKSB7XG4gICAgICAgICAgICBjb25zdCB1c2VySW52b2x2ZWQgPSB0aGlzLnRhc2tEZXRhaWxzLmludm9sdmVkUGVvcGxlLmZpbmQoXG4gICAgICAgICAgICAgICAgKGludm9sdmVkVXNlcikgPT5cbiAgICAgICAgICAgICAgICAgICAgaW52b2x2ZWRVc2VyLmVtYWlsLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IHRoaXMuY3VycmVudExvZ2dlZFVzZXIuZW1haWwudG9Mb2NhbGVMb3dlckNhc2UoKSB8fFxuICAgICAgICAgICAgICAgICAgICBpbnZvbHZlZFVzZXIuaWQgKyAnJyA9PT0gdGhpcy5jdXJyZW50TG9nZ2VkVXNlci5leHRlcm5hbElkXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaXNJbnZvbHZlZCA9ICEhdXNlckludm9sdmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGFza0RldGFpbHMuaW52b2x2ZWRHcm91cHM/Lmxlbmd0aCAmJiB0aGlzLmN1cnJlbnRMb2dnZWRVc2VyLmdyb3Vwcz8ubGVuZ3RoICYmICFpc0ludm9sdmVkKSB7XG4gICAgICAgICAgICBjb25zdCB1c2VyR3JvdXAgPSB0aGlzLnRhc2tEZXRhaWxzLmludm9sdmVkR3JvdXBzLmZpbmQoKGludm9sdmVkR3JvdXApID0+XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TG9nZ2VkVXNlci5ncm91cHMuZmluZCgoZ3JvdXApID0+IGdyb3VwLm5hbWUgPT09IGludm9sdmVkR3JvdXAubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpIHx8IGdyb3VwLmlkID09PSBpbnZvbHZlZEdyb3VwLmlkKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlzSW52b2x2ZWQgPSAhIXVzZXJHcm91cDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNJbnZvbHZlZDtcbiAgICB9XG5cbiAgICBjYW5DdXJyZW50VXNlckFzSW5pdGlhdG9yQ29tcGxldGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbkluaXRpYXRvckNvbXBsZXRlKCkgJiYgdGhpcy5pc1Byb2Nlc3NJbml0aWF0b3IoKTtcbiAgICB9XG5cbiAgICBpc1Byb2Nlc3NJbml0aWF0b3IoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMb2dnZWRVc2VyICYmIHRoaXMuY3VycmVudExvZ2dlZFVzZXIuaWQgPT09ICt0aGlzLnRhc2tEZXRhaWxzLnByb2Nlc3NJbnN0YW5jZVN0YXJ0VXNlcklkO1xuICAgIH1cblxuICAgIGlzU2F2ZUJ1dHRvblZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3dGb3JtU2F2ZUJ1dHRvbiAmJiAoIXRoaXMuY2FuSW5pdGlhdG9yQ29tcGxldGUoKSB8fCB0aGlzLmlzQXNzaWduZWRUb01lKCkgfHwgdGhpcy5pc0N1cnJlbnRVc2VySW52b2x2ZWQoKSk7XG4gICAgfVxuXG4gICAgY2FuQ29tcGxldGVOb0Zvcm1UYXNrKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1JlYWRPbmx5Rm9ybSgpO1xuICAgIH1cblxuICAgIGdldENvbXBsZXRlZFRhc2tUcmFuc2xhdGVkTWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuZ2V0KCdBREZfVEFTS19GT1JNLkNPTVBMRVRFRF9UQVNLLlRJVExFJywgeyB0YXNrTmFtZTogdGhpcy50YXNrRGV0YWlscy5uYW1lIH0pO1xuICAgIH1cblxuICAgIGlzQ2FuZGlkYXRlTWVtYmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YXNrRGV0YWlscy5tYW5hZ2VyT2ZDYW5kaWRhdGVHcm91cCB8fCB0aGlzLnRhc2tEZXRhaWxzLm1lbWJlck9mQ2FuZGlkYXRlR3JvdXAgfHwgdGhpcy50YXNrRGV0YWlscy5tZW1iZXJPZkNhbmRpZGF0ZVVzZXJzO1xuICAgIH1cblxuICAgIGlzVGFza0NsYWltYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNDYW5kaWRhdGVNZW1iZXIoKSAmJiAhdGhpcy5pc0Fzc2lnbmVkKCk7XG4gICAgfVxuXG4gICAgaXNUYXNrQ2xhaW1lZEJ5Q2FuZGlkYXRlTWVtYmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0NhbmRpZGF0ZU1lbWJlcigpICYmIHRoaXMuaXNBc3NpZ25lZFRvTWUoKSAmJiAhdGhpcy5pc0NvbXBsZXRlZFRhc2soKTtcbiAgICB9XG5cbiAgICByZWxvYWRUYXNrKCkge1xuICAgICAgICB0aGlzLmxvYWRUYXNrKHRoaXMudGFza0lkKTtcbiAgICB9XG5cbiAgICBvbkNsYWltVGFzayh0YXNrSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRhc2tDbGFpbWVkLmVtaXQodGFza0lkKTtcbiAgICB9XG5cbiAgICBvbkNsYWltVGFza0Vycm9yKGVycm9yOiBhbnkpIHtcbiAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICB9XG5cbiAgICBvblVuY2xhaW1UYXNrKHRhc2tJZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudGFza1VuY2xhaW1lZC5lbWl0KHRhc2tJZCk7XG4gICAgfVxuXG4gICAgb25VbmNsYWltVGFza0Vycm9yKGVycm9yOiBhbnkpIHtcbiAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0VtYWlsQWRkcmVzcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50YXNrRGV0YWlscy5hc3NpZ25lZS5lbWFpbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRW1haWxFcXVhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMudGFza0RldGFpbHMuYXNzaWduZWUgJiZcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExvZ2dlZFVzZXIgJiZcbiAgICAgICAgICAgIHRoaXMudGFza0RldGFpbHMuYXNzaWduZWUuZW1haWwudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gdGhpcy5jdXJyZW50TG9nZ2VkVXNlci5lbWFpbC50b0xvY2FsZUxvd2VyQ2FzZSgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0V4dGVybmFsSWRFcXVhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFza0RldGFpbHMuYXNzaWduZWUgJiYgdGhpcy5jdXJyZW50TG9nZ2VkVXNlciAmJiB0aGlzLnRhc2tEZXRhaWxzLmFzc2lnbmVlLmV4dGVybmFsSWQgPT09IHRoaXMuY3VycmVudExvZ2dlZFVzZXIuZXh0ZXJuYWxJZDtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmc7IGVsc2UgbG9hZGluZ1RlbXBsYXRlXCI+XG4gIDxhZGYtZm9ybSAqbmdJZj1cImhhc0Zvcm1LZXkoKTsgZWxzZSB3aXRob3V0Rm9ybVwiXG4gICAgW3Rhc2tJZF09XCJ0YXNrRGV0YWlscz8uaWRcIlxuICAgIFtzaG93VGl0bGVdPVwic2hvd0Zvcm1UaXRsZVwiXG4gICAgW3Nob3dWYWxpZGF0aW9uSWNvbl09XCJzaG93Rm9ybVZhbGlkYXRpb25JY29uXCJcbiAgICBbc2hvd1JlZnJlc2hCdXR0b25dPVwic2hvd0Zvcm1SZWZyZXNoQnV0dG9uXCJcbiAgICBbc2hvd0NvbXBsZXRlQnV0dG9uXT1cInNob3dGb3JtQ29tcGxldGVCdXR0b25cIlxuICAgIFtzaG93U2F2ZUJ1dHRvbl09XCJpc1NhdmVCdXR0b25WaXNpYmxlKClcIlxuICAgIFtkaXNhYmxlQ29tcGxldGVCdXR0b25dPVwiIWlzQ29tcGxldGVCdXR0b25FbmFibGVkKClcIlxuICAgIFtyZWFkT25seV09XCJpc1JlYWRPbmx5Rm9ybSgpXCJcbiAgICBbZmllbGRWYWxpZGF0b3JzXT1cImZpZWxkVmFsaWRhdG9yc1wiXG4gICAgKGZvcm1TYXZlZCk9J29uRm9ybVNhdmVkKCRldmVudCknXG4gICAgKGZvcm1Db21wbGV0ZWQpPSdvbkZvcm1Db21wbGV0ZWQoJGV2ZW50KSdcbiAgICAoZm9ybUNvbnRlbnRDbGlja2VkKT0nb25Gb3JtQ29udGVudENsaWNrKCRldmVudCknXG4gICAgKGZvcm1Mb2FkZWQpPSdvbkZvcm1Mb2FkZWQoJGV2ZW50KSdcbiAgICAoZm9ybUVycm9yKT0nb25Gb3JtRXJyb3IoJGV2ZW50KSdcbiAgICAoZXJyb3IpPSdvbkVycm9yKCRldmVudCknXG4gICAgKGV4ZWN1dGVPdXRjb21lKT0nb25Gb3JtRXhlY3V0ZU91dGNvbWUoJGV2ZW50KSc+XG4gICAgPGFkZi1mb3JtLWN1c3RvbS1vdXRjb21lcz5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhc2tGb3JtQnV0dG9uc1wiIC8+XG4gICAgPC9hZGYtZm9ybS1jdXN0b20tb3V0Y29tZXM+XG4gIDwvYWRmLWZvcm0+XG4gIDxuZy10ZW1wbGF0ZSAjd2l0aG91dEZvcm0+XG4gICAgPGFkZi10YXNrLXN0YW5kYWxvbmUgKm5nSWY9XCJpc1N0YW5kYWxvbmVUYXNrKCk7IGVsc2UgZW1wdHlGb3JtTWVzc2FnZVwiXG4gICAgICAgIFt0YXNrTmFtZV09XCJ0YXNrRGV0YWlscy5uYW1lXCJcbiAgICAgICAgW3Rhc2tJZF09XCJ0YXNrRGV0YWlscy5pZFwiXG4gICAgICAgIFtpc0NvbXBsZXRlZF09XCJpc0NvbXBsZXRlZFRhc2soKVwiXG4gICAgICAgIFtoYXNDb21wbGV0ZVBlcm1pc3Npb25dPVwiaXNDb21wbGV0ZUJ1dHRvblZpc2libGUoKVwiXG4gICAgICAgIFtoaWRlQ2FuY2VsQnV0dG9uXT1cInNob3dDYW5jZWxCdXR0b25cIlxuICAgICAgICAoY29tcGxldGUpPVwib25Db21wbGV0ZVRhc2soKVwiXG4gICAgICAgIChzaG93QXR0YWNoRm9ybSk9XCJvblNob3dBdHRhY2hGb3JtKClcIiAvPlxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eUZvcm1NZXNzYWdlPlxuICAgICAgICA8bWF0LWNhcmQgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCIgY2xhc3M9XCJhZGYtdGFzay1mb3JtLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDxoND5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRmLWZvcm0tdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Rhc2tEZXRhaWxzLm5hbWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGFza0RldGFpbHMubmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydGT1JNLkZPUk1fUkVOREVSRVIuTkFNRUxFU1NfVEFTSycgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxhZGYtZW1wdHktY29udGVudCAqbmdJZj1cImlzQ29tcGxldGVkVGFzaygpOyBlbHNlIGVtcHR5Rm9ybVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiJ2Rlc2NyaXB0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJnZXRDb21wbGV0ZWRUYXNrVHJhbnNsYXRlZE1lc3NhZ2UoKSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgW3N1YnRpdGxlXT1cIidBREZfVEFTS19GT1JNLkNPTVBMRVRFRF9UQVNLLlNVQlRJVExFJ1wiIC8+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eUZvcm1UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPGFkZi1lbXB0eS1jb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCInZGVzY3JpcHRpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQURGX1RBU0tfTElTVC5TVEFOREFMT05FX1RBU0suTk9fRk9STV9NRVNTQUdFJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3VidGl0bGVdPVwiJ0FERl9UQVNLX0ZPUk0uRU1QVFlfRk9STS5TVUJUSVRMRSdcIiAvPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICA8bWF0LWNhcmQtYWN0aW9ucyBhbGlnbj1cImVuZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdGFzay1mb3JtLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhc2tGb3JtQnV0dG9uc1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNDb21wbGV0ZWRUYXNrKClcIiBpZD1cImFkZi1uby1mb3JtLWNvbXBsZXRlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtdGFzay1mb3JtLWFjdGlvbnMtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjYW5Db21wbGV0ZU5vRm9ybVRhc2soKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Db21wbGV0ZVRhc2soKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3snQURGX1RBU0tfRk9STS5FTVBUWV9GT1JNLkJVVFRPTlMuQ09NUExFVEUnIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjdGFza0Zvcm1CdXR0b25zPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gaWQ9XCJhZGYtbm8tZm9ybS1jYW5jZWwtYnV0dG9uXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0NhbmNlbEJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoKVwiPlxuICAgICAgICAgICAge3snQURGX1RBU0tfRk9STS5FTVBUWV9GT1JNLkJVVFRPTlMuQ0FOQ0VMJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXRhc2stZm9ybS1jbGFpbS1idXR0b25cIlxuICAgICAgICAgICAgKm5nSWY9XCJpc1Rhc2tDbGFpbWFibGUoKVwiXG4gICAgICAgICAgICBhZGYtY2xhaW0tdGFza1xuICAgICAgICAgICAgW3Rhc2tJZF09XCJ0YXNrSWRcIlxuICAgICAgICAgICAgKHN1Y2Nlc3MpPVwib25DbGFpbVRhc2soJGV2ZW50KVwiXG4gICAgICAgICAgICAoZXJyb3IpPVwib25DbGFpbVRhc2tFcnJvcigkZXZlbnQpXCI+XG4gICAgICAgICAgICB7eyAnQURGX1RBU0tfRk9STS5FTVBUWV9GT1JNLkJVVFRPTlMuQ0xBSU0nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXRhc2stZm9ybS11bmNsYWltLWJ1dHRvblwiXG4gICAgICAgICAgICAqbmdJZj1cImlzVGFza0NsYWltZWRCeUNhbmRpZGF0ZU1lbWJlcigpXCJcbiAgICAgICAgICAgIGFkZi11bmNsYWltLXRhc2tcbiAgICAgICAgICAgIFt0YXNrSWRdPVwidGFza0lkXCJcbiAgICAgICAgICAgIChzdWNjZXNzKT1cIm9uVW5jbGFpbVRhc2soJGV2ZW50KVwiXG4gICAgICAgICAgICAoZXJyb3IpPVwib25VbmNsYWltVGFza0Vycm9yKCRldmVudClcIj5cbiAgICAgICAgICAgIHt7ICdBREZfVEFTS19GT1JNLkVNUFRZX0ZPUk0uQlVUVE9OUy5VTkNMQUlNJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImFkZi10YXNrLWZvcm0tc3Bpbm5lci1jb250YWluZXJcIj5cbiAgICAgICAgPG1hdC1zcGlubmVyIC8+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,77 +0,0 @@
|
|
|
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, HostListener, Input, Output, EventEmitter } from '@angular/core';
|
|
18
|
-
import { TaskListService } from '../../services/tasklist.service';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
import * as i1 from "../../services/tasklist.service";
|
|
21
|
-
export class UnclaimTaskDirective {
|
|
22
|
-
constructor(taskListService) {
|
|
23
|
-
this.taskListService = taskListService;
|
|
24
|
-
/** Emitted when the task is released. */
|
|
25
|
-
this.success = new EventEmitter();
|
|
26
|
-
/** Emitted when the task cannot be released. */
|
|
27
|
-
this.error = new EventEmitter();
|
|
28
|
-
this.invalidParams = [];
|
|
29
|
-
}
|
|
30
|
-
onClick() {
|
|
31
|
-
try {
|
|
32
|
-
this.unclaimTask();
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
this.error.emit(error);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
ngOnInit() {
|
|
39
|
-
this.validateInputs();
|
|
40
|
-
}
|
|
41
|
-
validateInputs() {
|
|
42
|
-
if (!this.isTaskValid()) {
|
|
43
|
-
this.invalidParams.push('taskId');
|
|
44
|
-
}
|
|
45
|
-
if (this.invalidParams.length) {
|
|
46
|
-
throw new Error(`Attribute ${this.invalidParams.join(', ')} is required`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
isTaskValid() {
|
|
50
|
-
return this.taskId && this.taskId.length > 0;
|
|
51
|
-
}
|
|
52
|
-
unclaimTask() {
|
|
53
|
-
this.taskListService.unclaimTask(this.taskId).subscribe(() => {
|
|
54
|
-
this.success.emit(this.taskId);
|
|
55
|
-
}, (error) => this.error.emit(error));
|
|
56
|
-
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnclaimTaskDirective, deps: [{ token: i1.TaskListService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
58
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: UnclaimTaskDirective, isStandalone: true, selector: "[adf-unclaim-task]", inputs: { taskId: "taskId" }, outputs: { success: "success", error: "error" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
|
|
59
|
-
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UnclaimTaskDirective, decorators: [{
|
|
61
|
-
type: Directive,
|
|
62
|
-
args: [{
|
|
63
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
64
|
-
selector: '[adf-unclaim-task]',
|
|
65
|
-
standalone: true
|
|
66
|
-
}]
|
|
67
|
-
}], ctorParameters: () => [{ type: i1.TaskListService }], propDecorators: { taskId: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}], success: [{
|
|
70
|
-
type: Output
|
|
71
|
-
}], error: [{
|
|
72
|
-
type: Output
|
|
73
|
-
}], onClick: [{
|
|
74
|
-
type: HostListener,
|
|
75
|
-
args: ['click']
|
|
76
|
-
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5jbGFpbS10YXNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzL3NyYy9saWIvdGFzay1saXN0L2NvbXBvbmVudHMvdGFzay1mb3JtL3VuY2xhaW0tdGFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFPbEUsTUFBTSxPQUFPLG9CQUFvQjtJQWU3QixZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFWcEQseUNBQXlDO1FBRXpDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRWxDLGdEQUFnRDtRQUVoRCxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVoQyxrQkFBYSxHQUFhLEVBQUUsQ0FBQztJQUUwQixDQUFDO0lBR3hELE9BQU87UUFDSCxJQUFJLENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlFLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVPLFdBQVc7UUFDZixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUNuRCxHQUFHLEVBQUU7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FDcEMsQ0FBQztJQUNOLENBQUM7K0dBbERRLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7aUJBQ25CO29GQUlHLE1BQU07c0JBREwsS0FBSztnQkFLTixPQUFPO3NCQUROLE1BQU07Z0JBS1AsS0FBSztzQkFESixNQUFNO2dCQVFQLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhc2tMaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Rhc2tsaXN0LnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2FkZi11bmNsYWltLXRhc2tdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFVuY2xhaW1UYXNrRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogKFJlcXVpcmVkKSBUaGUgaWQgb2YgdGhlIHRhc2suICovXG4gICAgQElucHV0KClcbiAgICB0YXNrSWQ6IHN0cmluZztcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRhc2sgaXMgcmVsZWFzZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgc3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdGFzayBjYW5ub3QgYmUgcmVsZWFzZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIGludmFsaWRQYXJhbXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRhc2tMaXN0U2VydmljZTogVGFza0xpc3RTZXJ2aWNlKSB7fVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnVuY2xhaW1UYXNrKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVJbnB1dHMoKTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZUlucHV0cygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVGFza1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaW52YWxpZFBhcmFtcy5wdXNoKCd0YXNrSWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbnZhbGlkUGFyYW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBdHRyaWJ1dGUgJHt0aGlzLmludmFsaWRQYXJhbXMuam9pbignLCAnKX0gaXMgcmVxdWlyZWRgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzVGFza1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YXNrSWQgJiYgdGhpcy50YXNrSWQubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVuY2xhaW1UYXNrKCkge1xuICAgICAgICB0aGlzLnRhc2tMaXN0U2VydmljZS51bmNsYWltVGFzayh0aGlzLnRhc2tJZCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMudGFza0lkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyb3IpID0+IHRoaXMuZXJyb3IuZW1pdChlcnJvcilcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|