@alfresco/adf-process-services-cloud 8.1.0-16117584844 → 8.1.0-16120632321

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.
Files changed (172) hide show
  1. package/fesm2022/adf-process-services-cloud.mjs +350 -355
  2. package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
  3. package/lib/task/task-filters/components/base-task-filters-cloud.component.d.ts +1 -1
  4. package/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.d.ts +1 -1
  5. package/lib/task/task-list/components/base-task-list-cloud.component.d.ts +1 -1
  6. package/package.json +4 -6
  7. package/esm2022/adf-process-services-cloud.mjs +0 -5
  8. package/esm2022/lib/app/app-list-cloud.module.mjs +0 -20
  9. package/esm2022/lib/app/components/app-details-cloud/app-details-cloud.component.mjs +0 -67
  10. package/esm2022/lib/app/components/app-list-cloud/app-list-cloud.component.mjs +0 -125
  11. package/esm2022/lib/app/models/application-instance.model.mjs +0 -24
  12. package/esm2022/lib/app/public-api.mjs +0 -22
  13. package/esm2022/lib/app/services/apps-process-cloud.service.mjs +0 -97
  14. package/esm2022/lib/common/date-range-filter/date-range-filter.component.mjs +0 -163
  15. package/esm2022/lib/common/date-range-filter/date-range-filter.service.mjs +0 -97
  16. package/esm2022/lib/common/index.mjs +0 -18
  17. package/esm2022/lib/common/interface/environment.interface.mjs +0 -18
  18. package/esm2022/lib/common/interface/index.mjs +0 -18
  19. package/esm2022/lib/common/interface/public-api.mjs +0 -18
  20. package/esm2022/lib/common/public-api.mjs +0 -19
  21. package/esm2022/lib/form/components/cloud-form-rendering.service.mjs +0 -57
  22. package/esm2022/lib/form/components/form-cloud-custom-outcomes.component.mjs +0 -31
  23. package/esm2022/lib/form/components/form-cloud.component.mjs +0 -415
  24. package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +0 -53
  25. package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +0 -35
  26. package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +0 -249
  27. package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +0 -136
  28. package/esm2022/lib/form/components/widgets/data-table/data-table-adapter.widget.mjs +0 -107
  29. package/esm2022/lib/form/components/widgets/data-table/data-table.widget.mjs +0 -120
  30. package/esm2022/lib/form/components/widgets/data-table/helpers/data-table-path-parser.helper.mjs +0 -122
  31. package/esm2022/lib/form/components/widgets/date/date-cloud.widget.mjs +0 -189
  32. package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +0 -85
  33. package/esm2022/lib/form/components/widgets/display-rich-text/display-rich-text.widget.mjs +0 -80
  34. package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +0 -463
  35. package/esm2022/lib/form/components/widgets/dropdown/validators.mjs +0 -29
  36. package/esm2022/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +0 -46
  37. package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +0 -82
  38. package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +0 -91
  39. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.mjs +0 -81
  40. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +0 -53
  41. package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.schema.mjs +0 -86
  42. package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +0 -116
  43. package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +0 -187
  44. package/esm2022/lib/form/form-cloud.module.mjs +0 -103
  45. package/esm2022/lib/form/models/form-cloud-representation.model.mjs +0 -48
  46. package/esm2022/lib/form/models/task-variable-cloud.model.mjs +0 -28
  47. package/esm2022/lib/form/public-api.mjs +0 -44
  48. package/esm2022/lib/form/services/content-cloud-node-selector.service.mjs +0 -120
  49. package/esm2022/lib/form/services/display-mode.service.mjs +0 -146
  50. package/esm2022/lib/form/services/form-cloud.service.interface.mjs +0 -18
  51. package/esm2022/lib/form/services/form-cloud.service.mjs +0 -201
  52. package/esm2022/lib/form/services/form-definition-selector-cloud.service.interface.mjs +0 -18
  53. package/esm2022/lib/form/services/form-definition-selector-cloud.service.mjs +0 -51
  54. package/esm2022/lib/form/services/form-utils.service.mjs +0 -37
  55. package/esm2022/lib/form/services/process-cloud-content.service.mjs +0 -71
  56. package/esm2022/lib/form/services/spinner/form-cloud-spinner.service.mjs +0 -52
  57. package/esm2022/lib/group/components/group-cloud.component.mjs +0 -423
  58. package/esm2022/lib/group/group-cloud.module.mjs +0 -33
  59. package/esm2022/lib/group/models/identity-group.model.mjs +0 -18
  60. package/esm2022/lib/group/public-api.mjs +0 -21
  61. package/esm2022/lib/group/services/identity-group.service.mjs +0 -89
  62. package/esm2022/lib/models/application-version.model.mjs +0 -21
  63. package/esm2022/lib/models/constant-values.type.mjs +0 -18
  64. package/esm2022/lib/models/data-column-custom-data.mjs +0 -18
  65. package/esm2022/lib/models/date-cloud-filter.model.mjs +0 -31
  66. package/esm2022/lib/models/date-format-cloud.model.mjs +0 -18
  67. package/esm2022/lib/models/engine-event-cloud.model.mjs +0 -18
  68. package/esm2022/lib/models/filter-cloud-model.mjs +0 -128
  69. package/esm2022/lib/models/process-definition-cloud.model.mjs +0 -32
  70. package/esm2022/lib/models/process-instance-variable.model.mjs +0 -18
  71. package/esm2022/lib/models/process-variable-filter.model.mjs +0 -18
  72. package/esm2022/lib/models/task-cloud.model.mjs +0 -23
  73. package/esm2022/lib/models/task-list-sorting.model.mjs +0 -40
  74. package/esm2022/lib/models/variable-definition.mjs +0 -18
  75. package/esm2022/lib/people/components/people-cloud.component.mjs +0 -498
  76. package/esm2022/lib/people/models/identity-user.model.mjs +0 -18
  77. package/esm2022/lib/people/people-cloud.module.mjs +0 -33
  78. package/esm2022/lib/people/public-api.mjs +0 -21
  79. package/esm2022/lib/people/services/identity-user.service.mjs +0 -119
  80. package/esm2022/lib/process/process-cloud.module.mjs +0 -40
  81. package/esm2022/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.mjs +0 -801
  82. package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +0 -58
  83. package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +0 -292
  84. package/esm2022/lib/process/process-filters/models/process-filter-cloud.model.mjs +0 -170
  85. package/esm2022/lib/process/process-filters/process-filters-cloud.module.mjs +0 -44
  86. package/esm2022/lib/process/process-filters/public-api.mjs +0 -23
  87. package/esm2022/lib/process/process-filters/services/process-filter-cloud.service.mjs +0 -408
  88. package/esm2022/lib/process/process-header/components/process-header-cloud.component.mjs +0 -137
  89. package/esm2022/lib/process/process-header/process-header-cloud.module.mjs +0 -33
  90. package/esm2022/lib/process/process-header/public-api.mjs +0 -19
  91. package/esm2022/lib/process/process-list/components/process-list-cloud.component.mjs +0 -593
  92. package/esm2022/lib/process/process-list/datatable/process-list-datatable-adapter.mjs +0 -31
  93. package/esm2022/lib/process/process-list/models/perocess-instance-cloud-view.model.mjs +0 -18
  94. package/esm2022/lib/process/process-list/models/process-cloud-preferences.mjs +0 -24
  95. package/esm2022/lib/process/process-list/models/process-cloud-preset.model.mjs +0 -37
  96. package/esm2022/lib/process/process-list/models/process-cloud-query-request.model.mjs +0 -107
  97. package/esm2022/lib/process/process-list/models/process-list-sorting.model.mjs +0 -40
  98. package/esm2022/lib/process/process-list/process-list-cloud.module.mjs +0 -45
  99. package/esm2022/lib/process/process-list/public-api.mjs +0 -25
  100. package/esm2022/lib/process/process-list/services/process-list-cloud.service.mjs +0 -253
  101. package/esm2022/lib/process/process-list/services/process-task-list-cloud.service.mjs +0 -109
  102. package/esm2022/lib/process/public-api.mjs +0 -23
  103. package/esm2022/lib/process/services/process-cloud.service.mjs +0 -105
  104. package/esm2022/lib/process/start-process/components/start-process-cloud.component.mjs +0 -480
  105. package/esm2022/lib/process/start-process/models/process-instance-cloud.model.mjs +0 -18
  106. package/esm2022/lib/process/start-process/models/process-payload-cloud.model.mjs +0 -26
  107. package/esm2022/lib/process/start-process/models/process-with-form-payload-cloud.model.mjs +0 -26
  108. package/esm2022/lib/process/start-process/public-api.mjs +0 -21
  109. package/esm2022/lib/process/start-process/services/start-process-cloud.service.mjs +0 -125
  110. package/esm2022/lib/process-services-cloud.module.mjs +0 -91
  111. package/esm2022/lib/rich-text-editor/editorjs-config.mjs +0 -101
  112. package/esm2022/lib/rich-text-editor/index.mjs +0 -18
  113. package/esm2022/lib/rich-text-editor/public-api.mjs +0 -19
  114. package/esm2022/lib/rich-text-editor/rich-text-editor.component.mjs +0 -80
  115. package/esm2022/lib/rich-text-editor/rich-text-editor.module.mjs +0 -33
  116. package/esm2022/lib/screen/components/screen-cloud/screen-cloud.component.mjs +0 -186
  117. package/esm2022/lib/screen/models/screen-cloud.model.mjs +0 -18
  118. package/esm2022/lib/screen/public-api.mjs +0 -18
  119. package/esm2022/lib/services/base-cloud.service.mjs +0 -83
  120. package/esm2022/lib/services/cloud-token.service.mjs +0 -23
  121. package/esm2022/lib/services/form-fields.interfaces.mjs +0 -55
  122. package/esm2022/lib/services/local-preference-cloud.service.mjs +0 -122
  123. package/esm2022/lib/services/notification-cloud.service.mjs +0 -45
  124. package/esm2022/lib/services/preference-cloud.interface.mjs +0 -18
  125. package/esm2022/lib/services/public-api.mjs +0 -28
  126. package/esm2022/lib/services/screen-rendering.service.mjs +0 -30
  127. package/esm2022/lib/services/task-list-cloud.service.interface.mjs +0 -18
  128. package/esm2022/lib/services/user-preference-cloud.service.mjs +0 -105
  129. package/esm2022/lib/services/variable-mapper.sevice.mjs +0 -77
  130. package/esm2022/lib/services/web-socket.service.mjs +0 -146
  131. package/esm2022/lib/task/models/start-task-cloud-request.model.mjs +0 -32
  132. package/esm2022/lib/task/models/task-details-cloud.model.mjs +0 -26
  133. package/esm2022/lib/task/models/task.model.mjs +0 -23
  134. package/esm2022/lib/task/public-api.mjs +0 -26
  135. package/esm2022/lib/task/services/task-cloud.service.mjs +0 -272
  136. package/esm2022/lib/task/task-cloud.module.mjs +0 -45
  137. package/esm2022/lib/task/task-filters/components/base-task-filters-cloud.component.mjs +0 -59
  138. package/esm2022/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.mjs +0 -467
  139. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.mjs +0 -205
  140. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +0 -317
  141. package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +0 -146
  142. package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +0 -142
  143. package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +0 -72
  144. package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +0 -255
  145. package/esm2022/lib/task/task-filters/models/filter-cloud.model.mjs +0 -207
  146. package/esm2022/lib/task/task-filters/public-api.mjs +0 -27
  147. package/esm2022/lib/task/task-filters/services/service-task-filter-cloud.service.mjs +0 -283
  148. package/esm2022/lib/task/task-filters/services/task-filter-cloud.service.mjs +0 -392
  149. package/esm2022/lib/task/task-filters/task-filters-cloud.module.mjs +0 -56
  150. package/esm2022/lib/task/task-form/components/task-form-cloud/task-form-cloud.component.mjs +0 -214
  151. package/esm2022/lib/task/task-form/components/user-task-cloud/complete-task/complete-task.directive.mjs +0 -89
  152. package/esm2022/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.mjs +0 -283
  153. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/claim-task/claim-task-cloud.directive.mjs +0 -101
  154. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/unclaim-task/unclaim-task-cloud.directive.mjs +0 -87
  155. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/user-task-cloud-buttons.component.mjs +0 -78
  156. package/esm2022/lib/task/task-form/public-api.mjs +0 -21
  157. package/esm2022/lib/task/task-form/task-form.module.mjs +0 -36
  158. package/esm2022/lib/task/task-header/components/task-header-cloud.component.mjs +0 -280
  159. package/esm2022/lib/task/task-header/public-api.mjs +0 -19
  160. package/esm2022/lib/task/task-header/task-header-cloud.module.mjs +0 -33
  161. package/esm2022/lib/task/task-list/components/base-task-list-cloud.component.mjs +0 -331
  162. package/esm2022/lib/task/task-list/components/service-task-list/service-task-list-cloud.component.mjs +0 -115
  163. package/esm2022/lib/task/task-list/components/task-list/datatable/task-list-datatable-adapter.mjs +0 -31
  164. package/esm2022/lib/task/task-list/components/task-list/task-list-cloud.component.mjs +0 -389
  165. package/esm2022/lib/task/task-list/models/service-task-cloud.model.mjs +0 -18
  166. package/esm2022/lib/task/task-list/models/task-cloud-view.model.mjs +0 -18
  167. package/esm2022/lib/task/task-list/public-api.mjs +0 -23
  168. package/esm2022/lib/task/task-list/services/service-task-list-cloud.service.mjs +0 -115
  169. package/esm2022/lib/task/task-list/services/task-list-cloud.service.mjs +0 -178
  170. package/esm2022/lib/task/task-list/task-list-cloud.module.mjs +0 -57
  171. package/esm2022/lib/types.mjs +0 -18
  172. package/esm2022/public-api.mjs +0 -40
@@ -1,283 +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 { 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 { TranslatePipe } 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 "@angular/material/button";
36
- import * as i4 from "@angular/material/card";
37
- import * as i5 from "@angular/material/checkbox";
38
- const TaskTypes = {
39
- Form: 'form',
40
- Screen: 'screen',
41
- None: ''
42
- };
43
- export class UserTaskCloudComponent {
44
- constructor() {
45
- /** App id to fetch corresponding form and values. */
46
- this.appName = '';
47
- /** Toggle readonly state of the task. */
48
- this.readOnly = false;
49
- /** Toggle rendering of the `Cancel` button. */
50
- this.showCancelButton = true;
51
- /** Toggle rendering of the `Complete` button. */
52
- this.showCompleteButton = true;
53
- /** Toggle rendering of the `Open next task` checkbox. */
54
- this.showNextTaskCheckbox = false;
55
- /** Whether the `Open next task` checkbox is checked by default or not. */
56
- this.isNextTaskCheckboxChecked = false;
57
- /** Toggle rendering of the form title. */
58
- this.showTitle = true;
59
- /** Toggle rendering of the `Validation` icon. */
60
- this.showValidationIcon = true;
61
- /** Emitted when the cancel button is clicked. */
62
- this.cancelClick = new EventEmitter();
63
- /** Emitted when any error occurs. */
64
- this.error = new EventEmitter();
65
- /** Emitted when the `Open next task` checkbox was toggled. */
66
- this.nextTaskCheckboxCheckedChanged = new EventEmitter();
67
- /**
68
- * Emitted when any outcome is executed. Default behaviour can be prevented
69
- * via `event.preventDefault()`.
70
- */
71
- this.executeOutcome = new EventEmitter();
72
- /** Emitted when form content is clicked. */
73
- this.formContentClicked = new EventEmitter();
74
- /** Emitted when the form is saved. */
75
- this.formSaved = new EventEmitter();
76
- /**
77
- * Emitted when a task is loaded`.
78
- */
79
- this.onTaskLoaded = new EventEmitter(); /* eslint-disable-line */
80
- /** Emitted when the task is claimed. */
81
- this.taskClaimed = new EventEmitter();
82
- /** Emitted when the task is unclaimed. */
83
- this.taskUnclaimed = new EventEmitter();
84
- /** Emitted when the task is completed. */
85
- this.taskCompleted = new EventEmitter();
86
- this.candidateUsers = [];
87
- this.candidateGroups = [];
88
- this.loading = false;
89
- this.taskTypeEnum = TaskTypes;
90
- /**
91
- * The `Open next task` feature is currently disabled for forms only.
92
- * See https://hyland.atlassian.net/browse/AAE-34514 for further details.
93
- */
94
- this.nextTaskCheckboxForFormsActivated = false;
95
- this.taskCloudService = inject(TaskCloudService);
96
- this.destroyRef = inject(DestroyRef);
97
- }
98
- ngOnChanges(changes) {
99
- const appName = changes['appName'];
100
- if (appName && appName.currentValue !== appName.previousValue && this.taskId) {
101
- this.loadTask();
102
- return;
103
- }
104
- const taskId = changes['taskId'];
105
- if (taskId?.currentValue && this.appName) {
106
- this.loadTask();
107
- return;
108
- }
109
- }
110
- ngOnInit() {
111
- if (this.appName === '' && this.taskId) {
112
- this.loadTask();
113
- }
114
- }
115
- canClaimTask() {
116
- return !this.readOnly && this.taskCloudService.canClaimTask(this.taskDetails) && this.hasCandidateUsersOrGroups();
117
- }
118
- canCompleteTask() {
119
- return this.showCompleteButton && !this.readOnly && this.taskCloudService.canCompleteTask(this.taskDetails);
120
- }
121
- canUnclaimTask() {
122
- return !this.readOnly && this.taskCloudService.canUnclaimTask(this.taskDetails) && this.hasCandidateUsersOrGroups();
123
- }
124
- getTaskType() {
125
- if (this.taskDetails && !!this.taskDetails.formKey) {
126
- if (this.taskDetails.formKey.includes(this.taskTypeEnum.Form)) {
127
- this.taskType = this.taskTypeEnum.Form;
128
- return;
129
- }
130
- else if (this.taskDetails.formKey.includes(this.taskTypeEnum.Screen)) {
131
- this.taskType = this.taskTypeEnum.Screen;
132
- const screenId = this.taskDetails.formKey.replace(this.taskTypeEnum.Screen + '-', '');
133
- this.screenId = screenId;
134
- return;
135
- }
136
- }
137
- this.taskType = this.taskTypeEnum.None;
138
- }
139
- hasCandidateUsers() {
140
- return this.candidateUsers.length !== 0;
141
- }
142
- hasCandidateGroups() {
143
- return this.candidateGroups.length !== 0;
144
- }
145
- hasCandidateUsersOrGroups() {
146
- return this.hasCandidateUsers() || this.hasCandidateGroups();
147
- }
148
- onCancelForm() {
149
- this.cancelClick.emit();
150
- }
151
- onCancelClick() {
152
- this.cancelClick.emit(this.taskId);
153
- }
154
- onClaimTask() {
155
- this.loadTask();
156
- this.taskClaimed.emit(this.taskId);
157
- }
158
- onCompleteTask(openNextTask = false) {
159
- this.loadTask();
160
- this.taskCompleted.emit(openNextTask);
161
- }
162
- onCompleteTaskForm() {
163
- this.taskCompleted.emit();
164
- }
165
- onError(data) {
166
- this.error.emit(data);
167
- }
168
- onExecuteOutcome(outcome) {
169
- this.executeOutcome.emit(outcome);
170
- }
171
- onFormContentClicked(content) {
172
- this.formContentClicked.emit(content);
173
- }
174
- onFormSaved() {
175
- this.formSaved.emit();
176
- }
177
- onTaskUnclaimed() {
178
- this.taskUnclaimed.emit();
179
- }
180
- onUnclaimTask() {
181
- this.loadTask();
182
- this.taskUnclaimed.emit(this.taskId);
183
- }
184
- onNextTaskCheckboxCheckedChanged(event) {
185
- this.nextTaskCheckboxCheckedChanged.emit(event);
186
- }
187
- loadTask() {
188
- this.loading = true;
189
- const tasks$ = this.taskCloudService.getTaskById(this.appName, this.taskId);
190
- const candidateUsers$ = this.taskCloudService.getCandidateUsers(this.appName, this.taskId);
191
- const candidateGroups$ = this.taskCloudService.getCandidateGroups(this.appName, this.taskId);
192
- forkJoin({
193
- tasks: tasks$,
194
- candidateUsers: candidateUsers$,
195
- candidateGroups: candidateGroups$
196
- })
197
- .pipe(takeUntilDestroyed(this.destroyRef), catchError((error) => {
198
- this.onError(error);
199
- return EMPTY;
200
- }))
201
- .subscribe(({ tasks, candidateGroups, candidateUsers }) => {
202
- this.taskDetails = tasks;
203
- this.getTaskType();
204
- this.candidateUsers = candidateUsers;
205
- this.candidateGroups = candidateGroups;
206
- this.loading = false;
207
- this.onTaskLoaded.emit(this.taskDetails);
208
- });
209
- }
210
- switchToDisplayMode(newDisplayMode) {
211
- if (this.adfCloudTaskForm) {
212
- this.adfCloudTaskForm.switchToDisplayMode(newDisplayMode);
213
- }
214
- if (this.adfCloudTaskScreen) {
215
- this.adfCloudTaskScreen.switchToDisplayMode(newDisplayMode);
216
- }
217
- }
218
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserTaskCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
219
- 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: "pipe", type: TranslatePipe, name: "translate" }, { 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: "ngmodule", type: MatCardModule }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i4.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i4.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: i5.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"] }] }); }
220
- }
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserTaskCloudComponent, decorators: [{
222
- type: Component,
223
- args: [{ selector: 'adf-cloud-user-task', standalone: true, imports: [
224
- CommonModule,
225
- MatProgressSpinnerModule,
226
- UserTaskCloudButtonsComponent,
227
- TranslatePipe,
228
- MatButtonModule,
229
- MatCardModule,
230
- EmptyContentComponent,
231
- TaskScreenCloudComponent,
232
- TaskFormCloudComponent,
233
- CompleteTaskDirective,
234
- MatCheckboxModule
235
- ], 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"] }]
236
- }], propDecorators: { adfCloudTaskForm: [{
237
- type: ViewChild,
238
- args: ['adfCloudTaskForm']
239
- }], adfCloudTaskScreen: [{
240
- type: ViewChild,
241
- args: ['adfCloudTaskScreen']
242
- }], appName: [{
243
- type: Input
244
- }], displayModeConfigurations: [{
245
- type: Input
246
- }], readOnly: [{
247
- type: Input
248
- }], showCancelButton: [{
249
- type: Input
250
- }], showCompleteButton: [{
251
- type: Input
252
- }], showNextTaskCheckbox: [{
253
- type: Input
254
- }], isNextTaskCheckboxChecked: [{
255
- type: Input
256
- }], showTitle: [{
257
- type: Input
258
- }], showValidationIcon: [{
259
- type: Input
260
- }], taskId: [{
261
- type: Input
262
- }], cancelClick: [{
263
- type: Output
264
- }], error: [{
265
- type: Output
266
- }], nextTaskCheckboxCheckedChanged: [{
267
- type: Output
268
- }], executeOutcome: [{
269
- type: Output
270
- }], formContentClicked: [{
271
- type: Output
272
- }], formSaved: [{
273
- type: Output
274
- }], onTaskLoaded: [{
275
- type: Output
276
- }], taskClaimed: [{
277
- type: Output
278
- }], taskUnclaimed: [{
279
- type: Output
280
- }], taskCompleted: [{
281
- type: Output
282
- }] } });
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci10YXNrLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZvcm0vY29tcG9uZW50cy91c2VyLXRhc2stY2xvdWQvdXNlci10YXNrLWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZvcm0vY29tcG9uZW50cy91c2VyLXRhc2stY2xvdWQvdXNlci10YXNrLWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBb0IscUJBQXFCLEVBQStCLE1BQU0sb0JBQW9CLENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFD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LFdBQVc7c0JBRFYsTUFBTTtnQkFLUCxhQUFhO3NCQURaLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb250ZW50TGlua01vZGVsLCBFbXB0eUNvbnRlbnRDb21wb25lbnQsIEZvcm1Nb2RlbCwgRm9ybU91dGNvbWVFdmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGb3JtQ2xvdWREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLWZpZWxkcy5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRhc2tDbG91ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90YXNrLWNsb3VkLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFza0RldGFpbHNDbG91ZE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Rhc2stZGV0YWlscy1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBUYXNrRm9ybUNsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFzay1mb3JtLWNsb3VkL3Rhc2stZm9ybS1jbG91ZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgVXNlclRhc2tDbG91ZEJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuLi91c2VyLXRhc2stY2xvdWQtYnV0dG9ucy91c2VyLXRhc2stY2xvdWQtYnV0dG9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IFRhc2tTY3JlZW5DbG91ZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL3NjcmVlbi9jb21wb25lbnRzL3NjcmVlbi1jbG91ZC9zY3JlZW4tY2xvdWQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBsZXRlVGFza0RpcmVjdGl2ZSB9IGZyb20gJy4vY29tcGxldGUtdGFzay9jb21wbGV0ZS10YXNrLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBFTVBUWSwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlLCBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcblxuY29uc3QgVGFza1R5cGVzID0ge1xuICAgIEZvcm06ICdmb3JtJyxcbiAgICBTY3JlZW46ICdzY3JlZW4nLFxuICAgIE5vbmU6ICcnXG59IGFzIGNvbnN0O1xuXG50eXBlIFRhc2tUeXBlc1R5cGUgPSAodHlwZW9mIFRhc2tUeXBlcylba2V5b2YgdHlwZW9mIFRhc2tUeXBlc107XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNsb3VkLXVzZXItdGFzaycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBVc2VyVGFza0Nsb3VkQnV0dG9uc0NvbXBvbmVudCxcbiAgICAgICAgVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRDYXJkTW9kdWxlLFxuICAgICAgICBFbXB0eUNvbnRlbnRDb21wb25lbnQsXG4gICAgICAgIFRhc2tTY3JlZW5DbG91ZENvbXBvbmVudCxcbiAgICAgICAgVGFza0Zvcm1DbG91ZENvbXBvbmVudCxcbiAgICAgICAgQ29tcGxldGVUYXNrRGlyZWN0aXZlLFxuICAgICAgICBNYXRDaGVja2JveE1vZHVsZVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VzZXItdGFzay1jbG91ZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci10YXNrLWNsb3VkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXNlclRhc2tDbG91ZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBAVmlld0NoaWxkKCdhZGZDbG91ZFRhc2tGb3JtJylcbiAgICBhZGZDbG91ZFRhc2tGb3JtOiBUYXNrRm9ybUNsb3VkQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZCgnYWRmQ2xvdWRUYXNrU2NyZWVuJylcbiAgICBhZGZDbG91ZFRhc2tTY3JlZW46IFRhc2tTY3JlZW5DbG91ZENvbXBvbmVudDtcblxuICAgIC8qKiBBcHAgaWQgdG8gZmV0Y2ggY29ycmVzcG9uZGluZyBmb3JtIGFuZCB2YWx1ZXMuICovXG4gICAgQElucHV0KClcbiAgICBhcHBOYW1lOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBUaGUgYXZhaWxhYmxlIGRpc3BsYXkgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBmb3JtICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25zOiBGb3JtQ2xvdWREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25bXTtcblxuICAgIC8qKiBUb2dnbGUgcmVhZG9ubHkgc3RhdGUgb2YgdGhlIHRhc2suICovXG4gICAgQElucHV0KClcbiAgICByZWFkT25seSA9IGZhbHNlO1xuXG4gICAgLyoqIFRvZ2dsZSByZW5kZXJpbmcgb2YgdGhlIGBDYW5jZWxgIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dDYW5jZWxCdXR0b24gPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZSByZW5kZXJpbmcgb2YgdGhlIGBDb21wbGV0ZWAgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0NvbXBsZXRlQnV0dG9uID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGUgcmVuZGVyaW5nIG9mIHRoZSBgT3BlbiBuZXh0IHRhc2tgIGNoZWNrYm94LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd05leHRUYXNrQ2hlY2tib3ggPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBgT3BlbiBuZXh0IHRhc2tgIGNoZWNrYm94IGlzIGNoZWNrZWQgYnkgZGVmYXVsdCBvciBub3QuICovXG4gICAgQElucHV0KClcbiAgICBpc05leHRUYXNrQ2hlY2tib3hDaGVja2VkID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlIHJlbmRlcmluZyBvZiB0aGUgZm9ybSB0aXRsZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dUaXRsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlIHJlbmRlcmluZyBvZiB0aGUgYFZhbGlkYXRpb25gIGljb24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93VmFsaWRhdGlvbkljb24gPSB0cnVlO1xuXG4gICAgLyoqIFRhc2sgaWQgdG8gZmV0Y2ggY29ycmVzcG9uZGluZyBmb3JtIGFuZCB2YWx1ZXMuICovXG4gICAgQElucHV0KClcbiAgICB0YXNrSWQ6IHN0cmluZztcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGNhbmNlbCBidXR0b24gaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjYW5jZWxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbnkgZXJyb3Igb2NjdXJzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBgT3BlbiBuZXh0IHRhc2tgIGNoZWNrYm94IHdhcyB0b2dnbGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TWF0Q2hlY2tib3hDaGFuZ2U+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gYW55IG91dGNvbWUgaXMgZXhlY3V0ZWQuIERlZmF1bHQgYmVoYXZpb3VyIGNhbiBiZSBwcmV2ZW50ZWRcbiAgICAgKiB2aWEgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGV4ZWN1dGVPdXRjb21lID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtT3V0Y29tZUV2ZW50PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBmb3JtIGNvbnRlbnQgaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29udGVudENsaWNrZWQ6IEV2ZW50RW1pdHRlcjxDb250ZW50TGlua01vZGVsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgc2F2ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9ybVNhdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtTW9kZWw+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gYSB0YXNrIGlzIGxvYWRlZGAuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgb25UYXNrTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+KCk7IC8qIGVzbGludC1kaXNhYmxlLWxpbmUgKi9cblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRhc2sgaXMgY2xhaW1lZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB0YXNrQ2xhaW1lZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdGFzayBpcyB1bmNsYWltZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgdGFza1VuY2xhaW1lZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdGFzayBpcyBjb21wbGV0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgdGFza0NvbXBsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIGNhbmRpZGF0ZVVzZXJzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNhbmRpZGF0ZUdyb3Vwczogc3RyaW5nW10gPSBbXTtcbiAgICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gICAgc2NyZWVuSWQ6IHN0cmluZztcbiAgICB0YXNrRGV0YWlsczogVGFza0RldGFpbHNDbG91ZE1vZGVsO1xuICAgIHRhc2tUeXBlOiBUYXNrVHlwZXNUeXBlO1xuICAgIHRhc2tUeXBlRW51bSA9IFRhc2tUeXBlcztcblxuICAgIC8qKlxuICAgICAqIFRoZSBgT3BlbiBuZXh0IHRhc2tgIGZlYXR1cmUgaXMgY3VycmVudGx5IGRpc2FibGVkIGZvciBmb3JtcyBvbmx5LlxuICAgICAqIFNlZSBodHRwczovL2h5bGFuZC5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9BQUUtMzQ1MTQgZm9yIGZ1cnRoZXIgZGV0YWlscy5cbiAgICAgKi9cbiAgICByZWFkb25seSBuZXh0VGFza0NoZWNrYm94Rm9yRm9ybXNBY3RpdmF0ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgdGFza0Nsb3VkU2VydmljZTogVGFza0Nsb3VkU2VydmljZSA9IGluamVjdChUYXNrQ2xvdWRTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGNvbnN0IGFwcE5hbWUgPSBjaGFuZ2VzWydhcHBOYW1lJ107XG4gICAgICAgIGlmIChhcHBOYW1lICYmIGFwcE5hbWUuY3VycmVudFZhbHVlICE9PSBhcHBOYW1lLnByZXZpb3VzVmFsdWUgJiYgdGhpcy50YXNrSWQpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZFRhc2soKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhc2tJZCA9IGNoYW5nZXNbJ3Rhc2tJZCddO1xuICAgICAgICBpZiAodGFza0lkPy5jdXJyZW50VmFsdWUgJiYgdGhpcy5hcHBOYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRUYXNrKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYXBwTmFtZSA9PT0gJycgJiYgdGhpcy50YXNrSWQpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZFRhc2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNhbkNsYWltVGFzaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMudGFza0Nsb3VkU2VydmljZS5jYW5DbGFpbVRhc2sodGhpcy50YXNrRGV0YWlscykgJiYgdGhpcy5oYXNDYW5kaWRhdGVVc2Vyc09yR3JvdXBzKCk7XG4gICAgfVxuXG4gICAgY2FuQ29tcGxldGVUYXNrKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG93Q29tcGxldGVCdXR0b24gJiYgIXRoaXMucmVhZE9ubHkgJiYgdGhpcy50YXNrQ2xvdWRTZXJ2aWNlLmNhbkNvbXBsZXRlVGFzayh0aGlzLnRhc2tEZXRhaWxzKTtcbiAgICB9XG5cbiAgICBjYW5VbmNsYWltVGFzaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMudGFza0Nsb3VkU2VydmljZS5jYW5VbmNsYWltVGFzayh0aGlzLnRhc2tEZXRhaWxzKSAmJiB0aGlzLmhhc0NhbmRpZGF0ZVVzZXJzT3JHcm91cHMoKTtcbiAgICB9XG5cbiAgICBnZXRUYXNrVHlwZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGFza0RldGFpbHMgJiYgISF0aGlzLnRhc2tEZXRhaWxzLmZvcm1LZXkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRhc2tEZXRhaWxzLmZvcm1LZXkuaW5jbHVkZXModGhpcy50YXNrVHlwZUVudW0uRm9ybSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tUeXBlID0gdGhpcy50YXNrVHlwZUVudW0uRm9ybTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudGFza0RldGFpbHMuZm9ybUtleS5pbmNsdWRlcyh0aGlzLnRhc2tUeXBlRW51bS5TY3JlZW4pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrVHlwZSA9IHRoaXMudGFza1R5cGVFbnVtLlNjcmVlbjtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JlZW5JZCA9IHRoaXMudGFza0RldGFpbHMuZm9ybUtleS5yZXBsYWNlKHRoaXMudGFza1R5cGVFbnVtLlNjcmVlbiArICctJywgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuSWQgPSBzY3JlZW5JZDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhc2tUeXBlID0gdGhpcy50YXNrVHlwZUVudW0uTm9uZTtcbiAgICB9XG5cbiAgICBoYXNDYW5kaWRhdGVVc2VycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FuZGlkYXRlVXNlcnMubGVuZ3RoICE9PSAwO1xuICAgIH1cblxuICAgIGhhc0NhbmRpZGF0ZUdyb3VwcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FuZGlkYXRlR3JvdXBzLmxlbmd0aCAhPT0gMDtcbiAgICB9XG5cbiAgICBoYXNDYW5kaWRhdGVVc2Vyc09yR3JvdXBzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNDYW5kaWRhdGVVc2VycygpIHx8IHRoaXMuaGFzQ2FuZGlkYXRlR3JvdXBzKCk7XG4gICAgfVxuXG4gICAgb25DYW5jZWxGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbmNlbENsaWNrLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbkNhbmNlbENsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbmNlbENsaWNrLmVtaXQodGhpcy50YXNrSWQpO1xuICAgIH1cblxuICAgIG9uQ2xhaW1UYXNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRUYXNrKCk7XG4gICAgICAgIHRoaXMudGFza0NsYWltZWQuZW1pdCh0aGlzLnRhc2tJZCk7XG4gICAgfVxuXG4gICAgb25Db21wbGV0ZVRhc2sob3Blbk5leHRUYXNrOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkVGFzaygpO1xuICAgICAgICB0aGlzLnRhc2tDb21wbGV0ZWQuZW1pdChvcGVuTmV4dFRhc2spO1xuICAgIH1cblxuICAgIG9uQ29tcGxldGVUYXNrRm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YXNrQ29tcGxldGVkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbkVycm9yKGRhdGE6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmVycm9yLmVtaXQoZGF0YSk7XG4gICAgfVxuXG4gICAgb25FeGVjdXRlT3V0Y29tZShvdXRjb21lOiBGb3JtT3V0Y29tZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXhlY3V0ZU91dGNvbWUuZW1pdChvdXRjb21lKTtcbiAgICB9XG4gICAgb25Gb3JtQ29udGVudENsaWNrZWQoY29udGVudDogQ29udGVudExpbmtNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Db250ZW50Q2xpY2tlZC5lbWl0KGNvbnRlbnQpO1xuICAgIH1cbiAgICBvbkZvcm1TYXZlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtU2F2ZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uVGFza1VuY2xhaW1lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YXNrVW5jbGFpbWVkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvblVuY2xhaW1UYXNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRUYXNrKCk7XG4gICAgICAgIHRoaXMudGFza1VuY2xhaW1lZC5lbWl0KHRoaXMudGFza0lkKTtcbiAgICB9XG5cbiAgICBvbk5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZChldmVudDogTWF0Q2hlY2tib3hDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5uZXh0VGFza0NoZWNrYm94Q2hlY2tlZENoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkVGFzaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgdGFza3MkID0gdGhpcy50YXNrQ2xvdWRTZXJ2aWNlLmdldFRhc2tCeUlkKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQpO1xuICAgICAgICBjb25zdCBjYW5kaWRhdGVVc2VycyQgPSB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuZ2V0Q2FuZGlkYXRlVXNlcnModGhpcy5hcHBOYW1lLCB0aGlzLnRhc2tJZCk7XG4gICAgICAgIGNvbnN0IGNhbmRpZGF0ZUdyb3VwcyQgPSB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuZ2V0Q2FuZGlkYXRlR3JvdXBzKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQpO1xuICAgICAgICBmb3JrSm9pbih7XG4gICAgICAgICAgICB0YXNrczogdGFza3MkLFxuICAgICAgICAgICAgY2FuZGlkYXRlVXNlcnM6IGNhbmRpZGF0ZVVzZXJzJCxcbiAgICAgICAgICAgIGNhbmRpZGF0ZUdyb3VwczogY2FuZGlkYXRlR3JvdXBzJFxuICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh7IHRhc2tzLCBjYW5kaWRhdGVHcm91cHMsIGNhbmRpZGF0ZVVzZXJzIH0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tEZXRhaWxzID0gdGFza3M7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRUYXNrVHlwZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FuZGlkYXRlVXNlcnMgPSBjYW5kaWRhdGVVc2VycztcbiAgICAgICAgICAgICAgICB0aGlzLmNhbmRpZGF0ZUdyb3VwcyA9IGNhbmRpZGF0ZUdyb3VwcztcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uVGFza0xvYWRlZC5lbWl0KHRoaXMudGFza0RldGFpbHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN3aXRjaFRvRGlzcGxheU1vZGUobmV3RGlzcGxheU1vZGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWRmQ2xvdWRUYXNrRm9ybSkge1xuICAgICAgICAgICAgdGhpcy5hZGZDbG91ZFRhc2tGb3JtLnN3aXRjaFRvRGlzcGxheU1vZGUobmV3RGlzcGxheU1vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmFkZkNsb3VkVGFza1NjcmVlbikge1xuICAgICAgICAgICAgdGhpcy5hZGZDbG91ZFRhc2tTY3JlZW4uc3dpdGNoVG9EaXNwbGF5TW9kZShuZXdEaXNwbGF5TW9kZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIgPGRpdiBjbGFzcz1cImFkZi11c2VyLXRhc2stY2xvdWQtY29udGFpbmVyXCI+XG4gICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nOyBlbHNlIGxvYWRpbmdUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0YXNrVHlwZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidGFza1R5cGVFbnVtLkZvcm1cIj5cbiAgICAgICAgICAgICAgICA8YWRmLWNsb3VkLXRhc2stZm9ybVxuICAgICAgICAgICAgICAgICAgICAjYWRmQ2xvdWRUYXNrRm9ybVxuICAgICAgICAgICAgICAgICAgICBbYXBwTmFtZV09XCJhcHBOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbmRpZGF0ZVVzZXJzXT1cImNhbmRpZGF0ZVVzZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbmRpZGF0ZUdyb3Vwc109XCJjYW5kaWRhdGVHcm91cHNcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzcGxheU1vZGVDb25maWd1cmF0aW9uc109XCJkaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uSWNvbl09XCJzaG93VmFsaWRhdGlvbkljb25cIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd1RpdGxlXT1cInNob3dUaXRsZVwiXG4gICAgICAgICAgICAgICAgICAgIFt0YXNrSWRdPVwidGFza0lkXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rhc2tEZXRhaWxzXT1cInRhc2tEZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dOZXh0VGFza0NoZWNrYm94XT1cInNob3dOZXh0VGFza0NoZWNrYm94ICYmIGNhbkNvbXBsZXRlVGFzaygpICYmIG5leHRUYXNrQ2hlY2tib3hGb3JGb3Jtc0FjdGl2YXRlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtpc05leHRUYXNrQ2hlY2tib3hDaGVja2VkXT1cImlzTmV4dFRhc2tDaGVja2JveENoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwib25DYW5jZWxGb3JtKClcIlxuICAgICAgICAgICAgICAgICAgICAoZXhlY3V0ZU91dGNvbWUpPVwib25FeGVjdXRlT3V0Y29tZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uRXJyb3IoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChmb3JtU2F2ZWQpPVwib25Gb3JtU2F2ZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIChmb3JtQ29udGVudENsaWNrZWQpPVwib25Gb3JtQ29udGVudENsaWNrZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICh0YXNrQ29tcGxldGVkKT1cIm9uQ29tcGxldGVUYXNrRm9ybSgpXCJcbiAgICAgICAgICAgICAgICAgICAgKHRhc2tDbGFpbWVkKT1cIm9uQ2xhaW1UYXNrKClcIlxuICAgICAgICAgICAgICAgICAgICAodGFza1VuY2xhaW1lZCk9XCJvblRhc2tVbmNsYWltZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIChuZXh0VGFza0NoZWNrYm94Q2hlY2tlZENoYW5nZWQpPVwib25OZXh0VGFza0NoZWNrYm94Q2hlY2tlZENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0YXNrVHlwZUVudW0uU2NyZWVuXCI+XG4gICAgICAgICAgICAgICAgPGFkZi1jbG91ZC10YXNrLXNjcmVlblxuICAgICAgICAgICAgICAgICAgICAjYWRmQ2xvdWRUYXNrU2NyZWVuXG4gICAgICAgICAgICAgICAgICAgIFthcHBOYW1lXT1cImFwcE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbY2FuQ2xhaW1UYXNrXT1cImNhbkNsYWltVGFzaygpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhblVuY2xhaW1UYXNrXT1cImNhblVuY2xhaW1UYXNrKClcIlxuICAgICAgICAgICAgICAgICAgICBbcHJvY2Vzc0luc3RhbmNlSWRdPVwidGFza0RldGFpbHMucHJvY2Vzc0luc3RhbmNlSWRcIlxuICAgICAgICAgICAgICAgICAgICBbcm9vdFByb2Nlc3NJbnN0YW5jZUlkXT1cInRhc2tEZXRhaWxzLnJvb3RQcm9jZXNzSW5zdGFuY2VJZFwiXG4gICAgICAgICAgICAgICAgICAgIFtzY3JlZW5JZF09XCJzY3JlZW5JZFwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93Q2FuY2VsQnV0dG9uXT1cInNob3dDYW5jZWxCdXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbdGFza05hbWVdPVwidGFza0RldGFpbHMubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFt0YXNrSWRdPVwidGFza0lkXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dOZXh0VGFza0NoZWNrYm94XT1cInNob3dOZXh0VGFza0NoZWNrYm94ICYmIGNhbkNvbXBsZXRlVGFzaygpXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzTmV4dFRhc2tDaGVja2JveENoZWNrZWRdPVwiaXNOZXh0VGFza0NoZWNrYm94Q2hlY2tlZFwiXG5cbiAgICAgICAgICAgICAgICAgICAgKGNhbmNlbFRhc2spPVwib25DYW5jZWxDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsYWltVGFzayk9XCJvbkNsYWltVGFzaygpXCJcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uRXJyb3IoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICh0YXNrQ29tcGxldGVkKT1cIm9uQ29tcGxldGVUYXNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAodGFza1NhdmVkKT1cIm9uRm9ybVNhdmVkKClcIlxuICAgICAgICAgICAgICAgICAgICAodW5jbGFpbVRhc2spPVwib25VbmNsYWltVGFzaygpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZCk9XCJvbk5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInRhc2tUeXBlRW51bS5Ob25lXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwiYWRmLXRhc2stZm9ybS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlciAqbmdJZj1cInNob3dUaXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGYtZm9ybS10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGFza0RldGFpbHM/Lm5hbWUgfHwgJ0ZPUk0uRk9STV9SRU5ERVJFUi5OQU1FTEVTU19UQVNLJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhZGYtZW1wdHktY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIidkZXNjcmlwdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQURGX0NMT1VEX1RBU0tfRk9STS5FTVBUWV9GT1JNLlRJVExFJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N1YnRpdGxlXT1cIidBREZfQ0xPVURfVEFTS19GT1JNLkVNUFRZX0ZPUk0uU1VCVElUTEUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnMgY2xhc3M9XCJhZGYtdGFzay1mb3JtLWFjdGlvbnNcIiBhbGlnbj1cImVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYWRmLWZvcm0tb3Blbi1uZXh0LXRhc2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd05leHRUYXNrQ2hlY2tib3ggJiYgY2FuQ29tcGxldGVUYXNrKCkgJiYgbmV4dFRhc2tDaGVja2JveEZvckZvcm1zQWN0aXZhdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc05leHRUYXNrQ2hlY2tib3hDaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uTmV4dFRhc2tDaGVja2JveENoZWNrZWRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyAnQURGX0NMT1VEX1RBU0tfRk9STS5PUEVOX05FWFRfVEFTSy5MQUJFTCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGYtY2FyZC1hY3Rpb25zLXNwYWNlclwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YXNrRm9ybUNsb3VkQnV0dG9uc1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjYW5Db21wbGV0ZVRhc2soKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZi1jbG91ZC1jb21wbGV0ZS10YXNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcE5hbWVdPVwiYXBwTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rhc2tJZF09XCJ0YXNrSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWNjZXNzKT1cIm9uQ29tcGxldGVUYXNrKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJvbkVycm9yKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhZGYtZm9ybS1jb21wbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0FERl9DTE9VRF9UQVNLX0ZPUk0uRU1QVFlfRk9STS5CVVRUT05TLkNPTVBMRVRFJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ1RlbXBsYXRlPlxuICAgIDxtYXQtc3Bpbm5lciBjbGFzcz1cImFkZi11c2VyLXRhc2stY2xvdWQtc3Bpbm5lclwiIC8+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3Rhc2tGb3JtQ2xvdWRCdXR0b25zPlxuICAgIDxhZGYtY2xvdWQtdXNlci10YXNrLWNsb3VkLWJ1dHRvbnNcbiAgICAgICAgW2FwcE5hbWVdPVwiYXBwTmFtZVwiXG4gICAgICAgIFtjYW5DbGFpbVRhc2tdPVwiY2FuQ2xhaW1UYXNrKClcIlxuICAgICAgICBbY2FuVW5jbGFpbVRhc2tdPVwiY2FuVW5jbGFpbVRhc2soKVwiXG4gICAgICAgIFtzaG93Q2FuY2VsQnV0dG9uXT1cInNob3dDYW5jZWxCdXR0b25cIlxuICAgICAgICBbdGFza0lkXT1cInRhc2tJZFwiXG4gICAgICAgIChjYW5jZWxDbGljayk9XCJvbkNhbmNlbENsaWNrKClcIlxuICAgICAgICAoY2xhaW1UYXNrKT1cIm9uQ2xhaW1UYXNrKClcIlxuICAgICAgICAodW5jbGFpbVRhc2spPVwib25VbmNsYWltVGFzaygpXCJcbiAgICAgICAgKGVycm9yKT1cIm9uRXJyb3IoJGV2ZW50KVwiXG4gICAgLz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,101 +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, 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
@@ -1,87 +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, 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=