@alfresco/adf-process-services-cloud 8.1.0-15469386840 → 8.1.0-15484232623

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 (174) hide show
  1. package/bundles/assets/adf-process-services-cloud/i18n/de.json +2 -2
  2. package/esm2022/adf-process-services-cloud.mjs +5 -0
  3. package/esm2022/lib/app/app-list-cloud.module.mjs +20 -0
  4. package/esm2022/lib/app/components/app-details-cloud/app-details-cloud.component.mjs +67 -0
  5. package/esm2022/lib/app/components/app-list-cloud/app-list-cloud.component.mjs +126 -0
  6. package/esm2022/lib/app/models/application-instance.model.mjs +24 -0
  7. package/esm2022/lib/app/public-api.mjs +22 -0
  8. package/esm2022/lib/app/services/apps-process-cloud.service.mjs +97 -0
  9. package/esm2022/lib/common/date-range-filter/date-range-filter.component.mjs +164 -0
  10. package/esm2022/lib/common/date-range-filter/date-range-filter.service.mjs +97 -0
  11. package/esm2022/lib/common/index.mjs +18 -0
  12. package/esm2022/lib/common/interface/environment.interface.mjs +18 -0
  13. package/esm2022/lib/common/interface/index.mjs +18 -0
  14. package/esm2022/lib/common/interface/public-api.mjs +18 -0
  15. package/esm2022/lib/common/public-api.mjs +19 -0
  16. package/esm2022/lib/form/components/cloud-form-rendering.service.mjs +57 -0
  17. package/esm2022/lib/form/components/form-cloud-custom-outcomes.component.mjs +31 -0
  18. package/esm2022/lib/form/components/form-cloud.component.mjs +416 -0
  19. package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +54 -0
  20. package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +36 -0
  21. package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +250 -0
  22. package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +137 -0
  23. package/esm2022/lib/form/components/widgets/data-table/data-table-adapter.widget.mjs +107 -0
  24. package/esm2022/lib/form/components/widgets/data-table/data-table.widget.mjs +121 -0
  25. package/esm2022/lib/form/components/widgets/data-table/helpers/data-table-path-parser.helper.mjs +122 -0
  26. package/esm2022/lib/form/components/widgets/date/date-cloud.widget.mjs +190 -0
  27. package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +86 -0
  28. package/esm2022/lib/form/components/widgets/display-rich-text/display-rich-text.widget.mjs +80 -0
  29. package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +464 -0
  30. package/esm2022/lib/form/components/widgets/dropdown/validators.mjs +29 -0
  31. package/esm2022/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +47 -0
  32. package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +83 -0
  33. package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +92 -0
  34. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.mjs +81 -0
  35. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +54 -0
  36. package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.schema.mjs +86 -0
  37. package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +117 -0
  38. package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +188 -0
  39. package/esm2022/lib/form/form-cloud.module.mjs +103 -0
  40. package/esm2022/lib/form/models/form-cloud-representation.model.mjs +48 -0
  41. package/esm2022/lib/form/models/task-variable-cloud.model.mjs +28 -0
  42. package/esm2022/lib/form/public-api.mjs +44 -0
  43. package/esm2022/lib/form/services/content-cloud-node-selector.service.mjs +120 -0
  44. package/esm2022/lib/form/services/display-mode.service.mjs +146 -0
  45. package/esm2022/lib/form/services/form-cloud.service.interface.mjs +18 -0
  46. package/esm2022/lib/form/services/form-cloud.service.mjs +201 -0
  47. package/esm2022/lib/form/services/form-definition-selector-cloud.service.interface.mjs +18 -0
  48. package/esm2022/lib/form/services/form-definition-selector-cloud.service.mjs +51 -0
  49. package/esm2022/lib/form/services/form-utils.service.mjs +37 -0
  50. package/esm2022/lib/form/services/process-cloud-content.service.mjs +71 -0
  51. package/esm2022/lib/form/services/spinner/form-cloud-spinner.service.mjs +52 -0
  52. package/esm2022/lib/group/components/group-cloud.component.mjs +424 -0
  53. package/esm2022/lib/group/group-cloud.module.mjs +33 -0
  54. package/esm2022/lib/group/models/identity-group.model.mjs +18 -0
  55. package/esm2022/lib/group/public-api.mjs +21 -0
  56. package/esm2022/lib/group/services/identity-group.service.mjs +89 -0
  57. package/esm2022/lib/models/application-version.model.mjs +21 -0
  58. package/esm2022/lib/models/constant-values.type.mjs +18 -0
  59. package/esm2022/lib/models/data-column-custom-data.mjs +18 -0
  60. package/esm2022/lib/models/date-cloud-filter.model.mjs +31 -0
  61. package/esm2022/lib/models/date-format-cloud.model.mjs +18 -0
  62. package/esm2022/lib/models/engine-event-cloud.model.mjs +18 -0
  63. package/esm2022/lib/models/filter-cloud-model.mjs +128 -0
  64. package/esm2022/lib/models/process-definition-cloud.model.mjs +32 -0
  65. package/esm2022/lib/models/process-instance-variable.model.mjs +18 -0
  66. package/esm2022/lib/models/process-variable-filter.model.mjs +18 -0
  67. package/esm2022/lib/models/task-cloud.model.mjs +23 -0
  68. package/esm2022/lib/models/task-list-sorting.model.mjs +40 -0
  69. package/esm2022/lib/models/variable-definition.mjs +18 -0
  70. package/esm2022/lib/people/components/people-cloud.component.mjs +499 -0
  71. package/esm2022/lib/people/models/identity-user.model.mjs +18 -0
  72. package/esm2022/lib/people/people-cloud.module.mjs +33 -0
  73. package/esm2022/lib/people/public-api.mjs +21 -0
  74. package/esm2022/lib/people/services/identity-user.service.mjs +119 -0
  75. package/esm2022/lib/process/process-cloud.module.mjs +40 -0
  76. package/esm2022/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.mjs +802 -0
  77. package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +59 -0
  78. package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +290 -0
  79. package/esm2022/lib/process/process-filters/models/process-filter-cloud.model.mjs +169 -0
  80. package/esm2022/lib/process/process-filters/process-filters-cloud.module.mjs +44 -0
  81. package/esm2022/lib/process/process-filters/public-api.mjs +23 -0
  82. package/esm2022/lib/process/process-filters/services/process-filter-cloud.service.mjs +405 -0
  83. package/esm2022/lib/process/process-header/components/process-header-cloud.component.mjs +137 -0
  84. package/esm2022/lib/process/process-header/process-header-cloud.module.mjs +33 -0
  85. package/esm2022/lib/process/process-header/public-api.mjs +19 -0
  86. package/esm2022/lib/process/process-list/components/process-list-cloud.component.mjs +594 -0
  87. package/esm2022/lib/process/process-list/datatable/process-list-datatable-adapter.mjs +31 -0
  88. package/esm2022/lib/process/process-list/models/perocess-instance-cloud-view.model.mjs +18 -0
  89. package/esm2022/lib/process/process-list/models/process-cloud-preferences.mjs +24 -0
  90. package/esm2022/lib/process/process-list/models/process-cloud-preset.model.mjs +37 -0
  91. package/esm2022/lib/process/process-list/models/process-cloud-query-request.model.mjs +107 -0
  92. package/esm2022/lib/process/process-list/models/process-list-sorting.model.mjs +40 -0
  93. package/esm2022/lib/process/process-list/process-list-cloud.module.mjs +45 -0
  94. package/esm2022/lib/process/process-list/public-api.mjs +25 -0
  95. package/esm2022/lib/process/process-list/services/process-list-cloud.service.mjs +253 -0
  96. package/esm2022/lib/process/process-list/services/process-task-list-cloud.service.mjs +109 -0
  97. package/esm2022/lib/process/public-api.mjs +23 -0
  98. package/esm2022/lib/process/services/process-cloud.service.mjs +105 -0
  99. package/esm2022/lib/process/start-process/components/start-process-cloud.component.mjs +481 -0
  100. package/esm2022/lib/process/start-process/models/process-instance-cloud.model.mjs +18 -0
  101. package/esm2022/lib/process/start-process/models/process-payload-cloud.model.mjs +26 -0
  102. package/esm2022/lib/process/start-process/models/process-with-form-payload-cloud.model.mjs +26 -0
  103. package/esm2022/lib/process/start-process/public-api.mjs +21 -0
  104. package/esm2022/lib/process/start-process/services/start-process-cloud.service.mjs +125 -0
  105. package/esm2022/lib/process-services-cloud.module.mjs +91 -0
  106. package/esm2022/lib/rich-text-editor/editorjs-config.mjs +101 -0
  107. package/esm2022/lib/rich-text-editor/index.mjs +18 -0
  108. package/esm2022/lib/rich-text-editor/public-api.mjs +19 -0
  109. package/esm2022/lib/rich-text-editor/rich-text-editor.component.mjs +80 -0
  110. package/esm2022/lib/rich-text-editor/rich-text-editor.module.mjs +33 -0
  111. package/esm2022/lib/screen/components/screen-cloud/screen-cloud.component.mjs +186 -0
  112. package/esm2022/lib/screen/models/screen-cloud.model.mjs +18 -0
  113. package/esm2022/lib/screen/public-api.mjs +18 -0
  114. package/esm2022/lib/services/base-cloud.service.mjs +83 -0
  115. package/esm2022/lib/services/cloud-token.service.mjs +23 -0
  116. package/esm2022/lib/services/form-fields.interfaces.mjs +55 -0
  117. package/esm2022/lib/services/local-preference-cloud.service.mjs +122 -0
  118. package/esm2022/lib/services/notification-cloud.service.mjs +45 -0
  119. package/esm2022/lib/services/preference-cloud.interface.mjs +18 -0
  120. package/esm2022/lib/services/public-api.mjs +28 -0
  121. package/esm2022/lib/services/screen-rendering.service.mjs +30 -0
  122. package/esm2022/lib/services/task-list-cloud.service.interface.mjs +18 -0
  123. package/esm2022/lib/services/user-preference-cloud.service.mjs +105 -0
  124. package/esm2022/lib/services/variable-mapper.sevice.mjs +77 -0
  125. package/esm2022/lib/services/web-socket.service.mjs +146 -0
  126. package/esm2022/lib/task/models/start-task-cloud-request.model.mjs +32 -0
  127. package/esm2022/lib/task/models/task-details-cloud.model.mjs +26 -0
  128. package/esm2022/lib/task/models/task.model.mjs +23 -0
  129. package/esm2022/lib/task/public-api.mjs +26 -0
  130. package/esm2022/lib/task/services/task-cloud.service.mjs +272 -0
  131. package/esm2022/lib/task/task-cloud.module.mjs +45 -0
  132. package/esm2022/lib/task/task-filters/components/base-task-filters-cloud.component.mjs +59 -0
  133. package/esm2022/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.mjs +467 -0
  134. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.mjs +206 -0
  135. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +318 -0
  136. package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +147 -0
  137. package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +143 -0
  138. package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +73 -0
  139. package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +256 -0
  140. package/esm2022/lib/task/task-filters/models/filter-cloud.model.mjs +207 -0
  141. package/esm2022/lib/task/task-filters/public-api.mjs +27 -0
  142. package/esm2022/lib/task/task-filters/services/service-task-filter-cloud.service.mjs +283 -0
  143. package/esm2022/lib/task/task-filters/services/task-filter-cloud.service.mjs +392 -0
  144. package/esm2022/lib/task/task-filters/task-filters-cloud.module.mjs +56 -0
  145. package/esm2022/lib/task/task-form/components/task-form-cloud/task-form-cloud.component.mjs +214 -0
  146. package/esm2022/lib/task/task-form/components/user-task-cloud/complete-task/complete-task.directive.mjs +89 -0
  147. package/esm2022/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.mjs +284 -0
  148. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/claim-task/claim-task-cloud.directive.mjs +101 -0
  149. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/unclaim-task/unclaim-task-cloud.directive.mjs +87 -0
  150. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/user-task-cloud-buttons.component.mjs +79 -0
  151. package/esm2022/lib/task/task-form/public-api.mjs +21 -0
  152. package/esm2022/lib/task/task-form/task-form.module.mjs +36 -0
  153. package/esm2022/lib/task/task-header/components/task-header-cloud.component.mjs +280 -0
  154. package/esm2022/lib/task/task-header/public-api.mjs +19 -0
  155. package/esm2022/lib/task/task-header/task-header-cloud.module.mjs +33 -0
  156. package/esm2022/lib/task/task-list/components/base-task-list-cloud.component.mjs +331 -0
  157. package/esm2022/lib/task/task-list/components/service-task-list/service-task-list-cloud.component.mjs +116 -0
  158. package/esm2022/lib/task/task-list/components/task-list/datatable/task-list-datatable-adapter.mjs +31 -0
  159. package/esm2022/lib/task/task-list/components/task-list/task-list-cloud.component.mjs +390 -0
  160. package/esm2022/lib/task/task-list/models/service-task-cloud.model.mjs +18 -0
  161. package/esm2022/lib/task/task-list/models/task-cloud-view.model.mjs +18 -0
  162. package/esm2022/lib/task/task-list/public-api.mjs +23 -0
  163. package/esm2022/lib/task/task-list/services/service-task-list-cloud.service.mjs +115 -0
  164. package/esm2022/lib/task/task-list/services/task-list-cloud.service.mjs +178 -0
  165. package/esm2022/lib/task/task-list/task-list-cloud.module.mjs +57 -0
  166. package/esm2022/lib/types.mjs +18 -0
  167. package/esm2022/public-api.mjs +40 -0
  168. package/fesm2022/adf-process-services-cloud.mjs +351 -355
  169. package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
  170. package/lib/process/process-filters/models/process-filter-cloud.model.d.ts +0 -1
  171. package/lib/task/task-filters/components/base-task-filters-cloud.component.d.ts +1 -1
  172. package/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.d.ts +1 -1
  173. package/lib/task/task-list/components/base-task-list-cloud.component.d.ts +1 -1
  174. package/package.json +6 -4
@@ -0,0 +1,390 @@
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, Inject, Input, ViewEncapsulation } from '@angular/core';
18
+ import { AdfDateFnsAdapter, AppConfigService, ColumnsSelectorComponent, DataTableComponent, EmptyContentComponent, LoadingContentTemplateDirective, MainMenuDataTableTemplateDirective, MOMENT_DATE_FORMATS, NoContentTemplateDirective, UserPreferencesService } from '@alfresco/adf-core';
19
+ import { TaskListRequestModel, TaskQueryCloudRequestModel } from '../../../../models/filter-cloud-model';
20
+ import { BaseTaskListCloudComponent } from '../base-task-list-cloud.component';
21
+ import { TaskCloudService } from '../../../services/task-cloud.service';
22
+ import { TASK_LIST_CLOUD_TOKEN, TASK_LIST_PREFERENCES_SERVICE_TOKEN } from '../../../../services/cloud-token.service';
23
+ import { BehaviorSubject, combineLatest, Subject } from 'rxjs';
24
+ import { filter, map, switchMap, take, tap } from 'rxjs/operators';
25
+ import { VariableMapperService } from '../../../../services/variable-mapper.sevice';
26
+ import { TasksListDatatableAdapter } from './datatable/task-list-datatable-adapter';
27
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
28
+ import { TaskListRequestSortingModel } from '../../../../models/task-list-sorting.model';
29
+ import { CommonModule } from '@angular/common';
30
+ import { TranslateModule } from '@ngx-translate/core';
31
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
32
+ import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
33
+ import * as i0 from "@angular/core";
34
+ import * as i1 from "@alfresco/adf-core";
35
+ import * as i2 from "../../../services/task-cloud.service";
36
+ import * as i3 from "../../../../services/variable-mapper.sevice";
37
+ import * as i4 from "@angular/common";
38
+ import * as i5 from "@ngx-translate/core";
39
+ import * as i6 from "@angular/material/progress-spinner";
40
+ const PRESET_KEY = 'adf-cloud-task-list.presets';
41
+ export class TaskListCloudComponent extends BaseTaskListCloudComponent {
42
+ constructor(taskListCloudService, appConfigService, taskCloudService, userPreferences, cloudPreferenceService, viewModelCreator) {
43
+ super(appConfigService, taskCloudService, userPreferences, PRESET_KEY, cloudPreferenceService);
44
+ this.taskListCloudService = taskListCloudService;
45
+ this.viewModelCreator = viewModelCreator;
46
+ /**
47
+ * The assignee of the process. Possible values are: "assignee" (the current user is the assignee),
48
+ * "candidate" (the current user is a task candidate", "group_x" (the task is assigned to a group
49
+ * where the current user is a member, no value (the current user is involved).
50
+ */
51
+ this.assignee = '';
52
+ /** Filter the tasks. Display only tasks with createdFrom equal to the supplied date. */
53
+ this.createdFrom = '';
54
+ /** Filter the tasks. Display only tasks with createdTo equal to the supplied date. */
55
+ this.createdTo = '';
56
+ /** Filter the tasks. Display only tasks with lastModifiedFrom equal to the supplied date. */
57
+ this.lastModifiedFrom = '';
58
+ /** Filter the tasks. Display only tasks with lastModifiedTo equal to the supplied date. */
59
+ this.lastModifiedTo = '';
60
+ /** Filter the tasks. Display only tasks with dueDate greater or equal than the supplied date. */
61
+ this.dueDateFrom = '';
62
+ /** Filter the tasks. Display only tasks with dueDate less or equal to the supplied date. */
63
+ this.dueDateTo = '';
64
+ /** Filter the tasks. Display only tasks with id equal to the supplied value. */
65
+ this.id = '';
66
+ /** Filter the tasks. Display only tasks with the supplied name. */
67
+ this.name = '';
68
+ /** Filter the tasks. Display only tasks with parentTaskId equal to the supplied value. */
69
+ this.parentTaskId = '';
70
+ /** Filter the tasks. Display only tasks with processDefinitionName equal to the supplied value. */
71
+ this.processDefinitionName = '';
72
+ /** Filter the tasks. Display only tasks with processDefinitionId equal to the supplied value. */
73
+ this.processDefinitionId = '';
74
+ /** Filter the tasks. Display only tasks with processInstanceId equal to the supplied value. */
75
+ this.processInstanceId = '';
76
+ /** Filter the tasks. Display only tasks with status equal to the supplied value. */
77
+ this.status = '';
78
+ /** Filter the tasks. Display only tasks with owner equal to the supplied value. */
79
+ this.owner = '';
80
+ /** Filter the tasks. Display only the tasks that belong to a process in case is false or tasks that doesn't belong to a process in case of true. */
81
+ this.standalone = false;
82
+ /** Filter the tasks. Display only tasks with completedDate equal to the supplied date. */
83
+ this.completedDate = '';
84
+ /** Filter the tasks. Display only tasks with completedFrom equal to the supplied date. */
85
+ this.completedFrom = '';
86
+ /** Filter the tasks. Display only tasks with completedTo equal to the supplied date. */
87
+ this.completedTo = '';
88
+ /** Filter the tasks. Display only tasks with candidateGroups equal to the supplied value. */
89
+ this.candidateGroupId = '';
90
+ /** From Activiti 8.7.0 forward, use the 'POST' value and array inputs to enable advanced filtering. */
91
+ this.searchApiMethod = 'GET';
92
+ /**
93
+ * Filter the tasks. Display only tasks with names matching any of the supplied strings.
94
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
95
+ */
96
+ this.names = [];
97
+ /**
98
+ * Filter the tasks. Display only tasks with assignees whose usernames are present in the array.
99
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
100
+ */
101
+ this.assignees = [];
102
+ /**
103
+ * Filter the tasks. Display only tasks with provided statuses.
104
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
105
+ */
106
+ this.statuses = [];
107
+ /**
108
+ * Filter the tasks. Display only tasks under processes with provided definition names.
109
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
110
+ */
111
+ this.processDefinitionNames = [];
112
+ /**
113
+ * Filter the tasks. Display only tasks with Ids matching any of the supplied strings.
114
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
115
+ */
116
+ this.ids = [];
117
+ /**
118
+ * Filter the tasks. Display only tasks with parentTaskIds matching any of the supplied strings.
119
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
120
+ */
121
+ this.parentIds = [];
122
+ /**
123
+ * Filter the tasks. Display only tasks with processInstanceIds matching any of the supplied strings.
124
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
125
+ */
126
+ this.processInstanceIds = [];
127
+ /**
128
+ * Filter the tasks. Display only tasks under processes with provided names.
129
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
130
+ */
131
+ this.processNames = [];
132
+ /**
133
+ * Filter the tasks. Display only tasks with provided priorities.
134
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
135
+ */
136
+ this.priorities = [];
137
+ /**
138
+ * Filter the tasks. Display only tasks completed by users whose usernames are present in the array.
139
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
140
+ */
141
+ this.completedByUsers = [];
142
+ this.rows = [];
143
+ this.isReloadingSubject$ = new BehaviorSubject(false);
144
+ this.isLoading$ = combineLatest([this.isLoadingPreferences$, this.isReloadingSubject$]).pipe(map(([isLoadingPreferences, isReloading]) => isLoadingPreferences || isReloading));
145
+ this.fetchProcessesTrigger$ = new Subject();
146
+ combineLatest([this.isLoadingPreferences$, this.isColumnSchemaCreated$, this.fetchProcessesTrigger$])
147
+ .pipe(tap(() => this.isReloadingSubject$.next(true)), filter(([isLoadingPreferences, isColumnSchemaCreated]) => !isLoadingPreferences && !!isColumnSchemaCreated), switchMap(() => {
148
+ if (this.searchApiMethod === 'POST') {
149
+ const requestNode = this.createTaskListRequestNode();
150
+ return this.taskListCloudService.fetchTaskList(requestNode).pipe(take(1));
151
+ }
152
+ else {
153
+ const requestNode = this.createRequestNode();
154
+ this.requestNode = requestNode;
155
+ return this.taskListCloudService.getTaskByRequest(requestNode);
156
+ }
157
+ }), takeUntilDestroyed())
158
+ .subscribe({
159
+ next: (tasks) => {
160
+ const tasksWithVariables = tasks.list.entries.map((task) => ({
161
+ ...task,
162
+ variables: task.processVariables
163
+ }));
164
+ this.rows = this.viewModelCreator.mapVariablesByColumnTitle(tasksWithVariables, this.columns);
165
+ this.dataAdapter = new TasksListDatatableAdapter(this.rows, this.columns);
166
+ this.success.emit(tasks);
167
+ this.isReloadingSubject$.next(false);
168
+ this.pagination.next(tasks.list.pagination);
169
+ },
170
+ error: (error) => {
171
+ console.error(error);
172
+ this.error.emit(error);
173
+ this.isReloadingSubject$.next(false);
174
+ }
175
+ });
176
+ }
177
+ reload() {
178
+ this.isReloadingSubject$.next(true);
179
+ this.fetchProcessesTrigger$.next();
180
+ }
181
+ createTaskListRequestNode() {
182
+ const requestNode = {
183
+ appName: this.appName,
184
+ pagination: {
185
+ maxItems: this.size,
186
+ skipCount: this.skipCount
187
+ },
188
+ sorting: this.getTaskListRequestSorting(),
189
+ onlyStandalone: this.standalone,
190
+ name: this.names,
191
+ processDefinitionName: this.processDefinitionNames,
192
+ id: this.ids,
193
+ parentId: this.parentIds,
194
+ processName: this.processNames,
195
+ processInstanceId: this.processInstanceIds,
196
+ priority: this.priorities,
197
+ status: this.statuses,
198
+ completedBy: this.completedByUsers,
199
+ assignee: this.assignees,
200
+ createdFrom: this.createdFrom,
201
+ createdTo: this.createdTo,
202
+ lastModifiedFrom: this.lastModifiedFrom,
203
+ lastModifiedTo: this.lastModifiedTo,
204
+ dueDateFrom: this.dueDateFrom,
205
+ dueDateTo: this.dueDateTo,
206
+ completedFrom: this.completedFrom,
207
+ completedTo: this.completedTo,
208
+ processVariableKeys: this.getRequestNodeVariables(),
209
+ processVariableFilters: this.processVariableFilters ?? []
210
+ };
211
+ return new TaskListRequestModel(requestNode);
212
+ }
213
+ createRequestNode() {
214
+ const requestNode = {
215
+ appName: this.appName,
216
+ assignee: this.assignee,
217
+ id: this.id,
218
+ name: this.name,
219
+ environmentId: this.environmentId,
220
+ parentTaskId: this.parentTaskId,
221
+ processDefinitionName: this.processDefinitionName,
222
+ processDefinitionId: this.processDefinitionId,
223
+ processInstanceId: this.processInstanceId,
224
+ owner: this.owner,
225
+ priority: this.priority,
226
+ lastModifiedFrom: this.lastModifiedFrom,
227
+ lastModifiedTo: this.lastModifiedTo,
228
+ dueDateFrom: this.dueDateFrom,
229
+ dueDateTo: this.dueDateTo,
230
+ status: this.status,
231
+ dueDate: this.dueDate,
232
+ createdDate: this.createdDate,
233
+ createdFrom: this.createdFrom,
234
+ createdTo: this.createdTo,
235
+ maxItems: this.size,
236
+ skipCount: this.skipCount,
237
+ sorting: this.sorting,
238
+ standalone: this.standalone,
239
+ completedBy: this.completedBy,
240
+ completedFrom: this.completedFrom,
241
+ completedTo: this.completedTo,
242
+ completedDate: this.completedDate,
243
+ candidateGroupId: this.candidateGroupId,
244
+ variableKeys: this.getRequestNodeVariables()
245
+ };
246
+ return new TaskQueryCloudRequestModel(requestNode);
247
+ }
248
+ getRequestNodeVariables() {
249
+ const displayedVariableColumns = (this.columns ?? [])
250
+ .filter((column) => column.customData?.columnType === 'process-variable-column' && column.isHidden !== true)
251
+ .map((column) => {
252
+ const variableDefinitionsPayload = column.customData.variableDefinitionsPayload;
253
+ return variableDefinitionsPayload;
254
+ })
255
+ .reduce((allRequestKeys, requestKeys) => [...requestKeys, ...allRequestKeys], []);
256
+ return displayedVariableColumns.length ? displayedVariableColumns : undefined;
257
+ }
258
+ getTaskListRequestSorting() {
259
+ if (!this.sorting?.length) {
260
+ return new TaskListRequestSortingModel({
261
+ orderBy: this.defaultSorting.key,
262
+ direction: this.defaultSorting.direction,
263
+ isFieldProcessVariable: false
264
+ });
265
+ }
266
+ const orderBy = this.sorting[0]?.orderBy;
267
+ const direction = this.sorting[0]?.direction;
268
+ const orderByColumn = this.columnList?.columns.find((column) => column.key === orderBy);
269
+ const isFieldProcessVariable = orderByColumn?.customData?.columnType === 'process-variable-column';
270
+ if (isFieldProcessVariable) {
271
+ const processDefinitionKey = orderByColumn.customData.variableDefinitionsPayload[0].split('/')[0];
272
+ const variableName = orderByColumn.customData.variableDefinitionsPayload[0].split('/')[1];
273
+ return new TaskListRequestSortingModel({
274
+ orderBy: variableName,
275
+ direction,
276
+ isFieldProcessVariable: true,
277
+ processVariableData: {
278
+ processDefinitionKey,
279
+ type: orderByColumn.customData.variableType
280
+ }
281
+ });
282
+ }
283
+ else {
284
+ return new TaskListRequestSortingModel({ orderBy, direction, isFieldProcessVariable: false });
285
+ }
286
+ }
287
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskListCloudComponent, deps: [{ token: TASK_LIST_CLOUD_TOKEN }, { token: i1.AppConfigService }, { token: i2.TaskCloudService }, { token: i1.UserPreferencesService }, { token: TASK_LIST_PREFERENCES_SERVICE_TOKEN }, { token: i3.VariableMapperService }], target: i0.ɵɵFactoryTarget.Component }); }
288
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TaskListCloudComponent, isStandalone: true, selector: "adf-cloud-task-list", inputs: { assignee: "assignee", createdDate: "createdDate", createdFrom: "createdFrom", createdTo: "createdTo", dueDate: "dueDate", lastModifiedFrom: "lastModifiedFrom", lastModifiedTo: "lastModifiedTo", dueDateFrom: "dueDateFrom", dueDateTo: "dueDateTo", id: "id", name: "name", environmentId: "environmentId", parentTaskId: "parentTaskId", processDefinitionName: "processDefinitionName", processDefinitionId: "processDefinitionId", processInstanceId: "processInstanceId", status: "status", owner: "owner", priority: "priority", completedBy: "completedBy", standalone: "standalone", completedDate: "completedDate", completedFrom: "completedFrom", completedTo: "completedTo", candidateGroupId: "candidateGroupId", searchApiMethod: "searchApiMethod", names: "names", assignees: "assignees", statuses: "statuses", processDefinitionNames: "processDefinitionNames", ids: "ids", parentIds: "parentIds", processInstanceIds: "processInstanceIds", processNames: "processNames", priorities: "priorities", completedByUsers: "completedByUsers", processVariableFilters: "processVariableFilters" }, providers: [
289
+ { provide: DateAdapter, useClass: AdfDateFnsAdapter },
290
+ { provide: MAT_DATE_FORMATS, useValue: MOMENT_DATE_FORMATS }
291
+ ], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"!rows\">{{ 'ADF_CLOUD_TASK_LIST.FILTERS.MESSAGES.NONE' | translate }}</div>\n<ng-container *ngIf=\"rows\">\n <adf-datatable\n [rows]=\"rows\"\n [columns]=\"columns\"\n [data]=\"dataAdapter\"\n [loading]=\"isLoading$ | async\"\n [sorting]=\"formattedSorting\"\n [multiselect]=\"multiselect\"\n [selectionMode]=\"selectionMode\"\n [stickyHeader]=\"stickyHeader\"\n [actions]=\"showActions\"\n [actionsPosition]=\"actionsPosition\"\n [contextMenu]=\"showContextMenu\"\n [resolverFn]=\"boundReplacePriorityValues\"\n [showProvidedActions]=\"showProvidedActions\"\n [showMainDatatableActions]=\"showMainDatatableActions\"\n [isResizingEnabled]=\"isResizingEnabled\"\n (showRowActionsMenu)=\"onShowRowActionsMenu($event)\"\n (showRowContextMenu)=\"onShowRowContextMenu($event)\"\n (executeRowAction)=\"onExecuteRowAction($event)\"\n (row-select)=\"onRowSelect($any($event))\"\n (row-unselect)=\"onRowUnselect($any($event))\"\n (rowClick)=\"onRowClick($any($event))\"\n (row-keyup)=\"onRowKeyUp($any($event))\"\n (sorting-changed)=\"onSortingChanged($any($event))\"\n (columnOrderChanged)=\"onColumnOrderChanged($event)\"\n (columnsWidthChanged)=\"onColumnsWidthChanged($event)\"\n >\n <adf-loading-content-template>\n <ng-template>\n <mat-progress-spinner\n class=\"adf-cloud-task-list-loading-margin\"\n [color]=\"'primary'\"\n [mode]=\"'indeterminate'\" />\n </ng-template>\n </adf-loading-content-template>\n <adf-no-content-template>\n <ng-template>\n <adf-empty-content\n *ngIf=\"!emptyCustomContent\"\n icon=\"assignment\"\n [title]=\"'ADF_CLOUD_TASK_LIST.LIST.MESSAGES.TITLE' | translate\"\n [subtitle]=\"'ADF_CLOUD_TASK_LIST.LIST.MESSAGES.SUBTITLE' | translate\" />\n <ng-content select=\"adf-custom-empty-content-template\" />\n </ng-template>\n </adf-no-content-template>\n\n <adf-main-menu-datatable-template>\n <ng-template let-mainMenuTrigger>\n <adf-datatable-column-selector\n [columns]=\"columns\"\n [mainMenuTrigger]=\"mainMenuTrigger\"\n (submitColumnsVisibility)=\"onColumnsVisibilityChange($event)\" />\n </ng-template>\n </adf-main-menu-datatable-template>\n </adf-datatable>\n</ng-container>\n", styles: [".adf-cloud-task-list-loading-margin{margin-left:calc((100% - 100px)/2);margin-right:calc((100% - 100px)/2)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "component", type: ColumnsSelectorComponent, selector: "adf-datatable-column-selector", inputs: ["columns", "mainMenuTrigger", "columnsSorting", "maxColumnsVisible"], outputs: ["submitColumnsVisibility"] }, { kind: "directive", type: MainMenuDataTableTemplateDirective, selector: "adf-main-menu-datatable-template" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "directive", type: NoContentTemplateDirective, selector: "adf-no-content-template, no-content-template" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: LoadingContentTemplateDirective, selector: "adf-loading-content-template, loading-content-template" }, { kind: "component", type: DataTableComponent, selector: "adf-datatable", inputs: ["data", "rows", "sorting", "columns", "selectionMode", "multiselect", "mainTableAction", "actions", "showMainDatatableActions", "showProvidedActions", "actionsPosition", "actionsVisibleOnHover", "fallbackThumbnail", "contextMenu", "rowStyle", "rowStyleClass", "showHeader", "stickyHeader", "loading", "noPermission", "rowMenuCacheEnabled", "resolverFn", "allowFiltering", "isResizingEnabled", "blurOnResize", "displayCheckboxesOnHover", "enableDragRows"], outputs: ["rowClick", "rowDblClick", "showRowContextMenu", "showRowActionsMenu", "executeRowAction", "columnOrderChanged", "columnsWidthChanged", "selectedItemsCountChanged", "dragDropped"] }], encapsulation: i0.ViewEncapsulation.None }); }
292
+ }
293
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskListCloudComponent, decorators: [{
294
+ type: Component,
295
+ args: [{ selector: 'adf-cloud-task-list', standalone: true, imports: [
296
+ CommonModule,
297
+ ColumnsSelectorComponent,
298
+ MainMenuDataTableTemplateDirective,
299
+ TranslateModule,
300
+ EmptyContentComponent,
301
+ NoContentTemplateDirective,
302
+ MatProgressSpinnerModule,
303
+ LoadingContentTemplateDirective,
304
+ DataTableComponent
305
+ ], providers: [
306
+ { provide: DateAdapter, useClass: AdfDateFnsAdapter },
307
+ { provide: MAT_DATE_FORMATS, useValue: MOMENT_DATE_FORMATS }
308
+ ], encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"!rows\">{{ 'ADF_CLOUD_TASK_LIST.FILTERS.MESSAGES.NONE' | translate }}</div>\n<ng-container *ngIf=\"rows\">\n <adf-datatable\n [rows]=\"rows\"\n [columns]=\"columns\"\n [data]=\"dataAdapter\"\n [loading]=\"isLoading$ | async\"\n [sorting]=\"formattedSorting\"\n [multiselect]=\"multiselect\"\n [selectionMode]=\"selectionMode\"\n [stickyHeader]=\"stickyHeader\"\n [actions]=\"showActions\"\n [actionsPosition]=\"actionsPosition\"\n [contextMenu]=\"showContextMenu\"\n [resolverFn]=\"boundReplacePriorityValues\"\n [showProvidedActions]=\"showProvidedActions\"\n [showMainDatatableActions]=\"showMainDatatableActions\"\n [isResizingEnabled]=\"isResizingEnabled\"\n (showRowActionsMenu)=\"onShowRowActionsMenu($event)\"\n (showRowContextMenu)=\"onShowRowContextMenu($event)\"\n (executeRowAction)=\"onExecuteRowAction($event)\"\n (row-select)=\"onRowSelect($any($event))\"\n (row-unselect)=\"onRowUnselect($any($event))\"\n (rowClick)=\"onRowClick($any($event))\"\n (row-keyup)=\"onRowKeyUp($any($event))\"\n (sorting-changed)=\"onSortingChanged($any($event))\"\n (columnOrderChanged)=\"onColumnOrderChanged($event)\"\n (columnsWidthChanged)=\"onColumnsWidthChanged($event)\"\n >\n <adf-loading-content-template>\n <ng-template>\n <mat-progress-spinner\n class=\"adf-cloud-task-list-loading-margin\"\n [color]=\"'primary'\"\n [mode]=\"'indeterminate'\" />\n </ng-template>\n </adf-loading-content-template>\n <adf-no-content-template>\n <ng-template>\n <adf-empty-content\n *ngIf=\"!emptyCustomContent\"\n icon=\"assignment\"\n [title]=\"'ADF_CLOUD_TASK_LIST.LIST.MESSAGES.TITLE' | translate\"\n [subtitle]=\"'ADF_CLOUD_TASK_LIST.LIST.MESSAGES.SUBTITLE' | translate\" />\n <ng-content select=\"adf-custom-empty-content-template\" />\n </ng-template>\n </adf-no-content-template>\n\n <adf-main-menu-datatable-template>\n <ng-template let-mainMenuTrigger>\n <adf-datatable-column-selector\n [columns]=\"columns\"\n [mainMenuTrigger]=\"mainMenuTrigger\"\n (submitColumnsVisibility)=\"onColumnsVisibilityChange($event)\" />\n </ng-template>\n </adf-main-menu-datatable-template>\n </adf-datatable>\n</ng-container>\n", styles: [".adf-cloud-task-list-loading-margin{margin-left:calc((100% - 100px)/2);margin-right:calc((100% - 100px)/2)}\n"] }]
309
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
310
+ type: Inject,
311
+ args: [TASK_LIST_CLOUD_TOKEN]
312
+ }] }, { type: i1.AppConfigService }, { type: i2.TaskCloudService }, { type: i1.UserPreferencesService }, { type: undefined, decorators: [{
313
+ type: Inject,
314
+ args: [TASK_LIST_PREFERENCES_SERVICE_TOKEN]
315
+ }] }, { type: i3.VariableMapperService }], propDecorators: { assignee: [{
316
+ type: Input
317
+ }], createdDate: [{
318
+ type: Input
319
+ }], createdFrom: [{
320
+ type: Input
321
+ }], createdTo: [{
322
+ type: Input
323
+ }], dueDate: [{
324
+ type: Input
325
+ }], lastModifiedFrom: [{
326
+ type: Input
327
+ }], lastModifiedTo: [{
328
+ type: Input
329
+ }], dueDateFrom: [{
330
+ type: Input
331
+ }], dueDateTo: [{
332
+ type: Input
333
+ }], id: [{
334
+ type: Input
335
+ }], name: [{
336
+ type: Input
337
+ }], environmentId: [{
338
+ type: Input
339
+ }], parentTaskId: [{
340
+ type: Input
341
+ }], processDefinitionName: [{
342
+ type: Input
343
+ }], processDefinitionId: [{
344
+ type: Input
345
+ }], processInstanceId: [{
346
+ type: Input
347
+ }], status: [{
348
+ type: Input
349
+ }], owner: [{
350
+ type: Input
351
+ }], priority: [{
352
+ type: Input
353
+ }], completedBy: [{
354
+ type: Input
355
+ }], standalone: [{
356
+ type: Input
357
+ }], completedDate: [{
358
+ type: Input
359
+ }], completedFrom: [{
360
+ type: Input
361
+ }], completedTo: [{
362
+ type: Input
363
+ }], candidateGroupId: [{
364
+ type: Input
365
+ }], searchApiMethod: [{
366
+ type: Input
367
+ }], names: [{
368
+ type: Input
369
+ }], assignees: [{
370
+ type: Input
371
+ }], statuses: [{
372
+ type: Input
373
+ }], processDefinitionNames: [{
374
+ type: Input
375
+ }], ids: [{
376
+ type: Input
377
+ }], parentIds: [{
378
+ type: Input
379
+ }], processInstanceIds: [{
380
+ type: Input
381
+ }], processNames: [{
382
+ type: Input
383
+ }], priorities: [{
384
+ type: Input
385
+ }], completedByUsers: [{
386
+ type: Input
387
+ }], processVariableFilters: [{
388
+ type: Input
389
+ }] } });
390
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWxpc3QvY29tcG9uZW50cy90YXNrLWxpc3QvdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWxpc3QvY29tcG9uZW50cy90YXNrLWxpc3QvdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQiwrQkFBK0IsRUFDL0Isa0NBQWtDLEVBQ2xDLG1CQUFtQixFQUNuQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3pCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHdEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFB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Z0JBUU4sc0JBQXNCO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFkZkRhdGVGbnNBZGFwdGVyLFxuICAgIEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgQ29sdW1uc1NlbGVjdG9yQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBFbXB0eUNvbnRlbnRDb21wb25lbnQsXG4gICAgTG9hZGluZ0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBNYWluTWVudURhdGFUYWJsZVRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIE1PTUVOVF9EQVRFX0ZPUk1BVFMsXG4gICAgTm9Db250ZW50VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgVXNlclByZWZlcmVuY2VzU2VydmljZVxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgVGFza0xpc3RSZXF1ZXN0TW9kZWwsIFRhc2tRdWVyeUNsb3VkUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci1jbG91ZC1tb2RlbCc7XG5pbXBvcnQgeyBCYXNlVGFza0xpc3RDbG91ZENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYXNrQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGFzay1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IFRBU0tfTElTVF9DTE9VRF9UT0tFTiwgVEFTS19MSVNUX1BSRUZFUkVOQ0VTX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9jbG91ZC10b2tlbi5zZXJ2aWNlJztcbmltcG9ydCB7IFByZWZlcmVuY2VDbG91ZFNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9wcmVmZXJlbmNlLWNsb3VkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYXNrTGlzdENsb3VkU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3Rhc2stbGlzdC1jbG91ZC5zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFZhcmlhYmxlTWFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3ZhcmlhYmxlLW1hcHBlci5zZXZpY2UnO1xuaW1wb3J0IHsgUHJvY2Vzc0xpc3REYXRhQ29sdW1uQ3VzdG9tRGF0YSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9kYXRhLWNvbHVtbi1jdXN0b20tZGF0YSc7XG5pbXBvcnQgeyBUYXNrQ2xvdWRNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy90YXNrLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFBhZ2luYXRlZEVudHJpZXMgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IFRhc2tJbnN0YW5jZUNsb3VkTGlzdFZpZXdNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy90YXNrLWNsb3VkLXZpZXcubW9kZWwnO1xuaW1wb3J0IHsgVGFza3NMaXN0RGF0YXRhYmxlQWRhcHRlciB9IGZyb20gJy4vZGF0YXRhYmxlL3Rhc2stbGlzdC1kYXRhdGFibGUtYWRhcHRlcic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBUYXNrTGlzdFJlcXVlc3RTb3J0aW5nTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvdGFzay1saXN0LXNvcnRpbmcubW9kZWwnO1xuaW1wb3J0IHsgUHJvY2Vzc1ZhcmlhYmxlRmlsdGVyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcHJvY2Vzcy12YXJpYWJsZS1maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5jb25zdCBQUkVTRVRfS0VZID0gJ2FkZi1jbG91ZC10YXNrLWxpc3QucHJlc2V0cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNsb3VkLXRhc2stbGlzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQ29sdW1uc1NlbGVjdG9yQ29tcG9uZW50LFxuICAgICAgICBNYWluTWVudURhdGFUYWJsZVRlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIEVtcHR5Q29udGVudENvbXBvbmVudCxcbiAgICAgICAgTm9Db250ZW50VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICAgICAgTG9hZGluZ0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgRGF0YVRhYmxlQ29tcG9uZW50XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IEFkZkRhdGVGbnNBZGFwdGVyIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IE1PTUVOVF9EQVRFX0ZPUk1BVFMgfVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rhc2stbGlzdC1jbG91ZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBUYXNrTGlzdENsb3VkQ29tcG9uZW50IGV4dGVuZHMgQmFzZVRhc2tMaXN0Q2xvdWRDb21wb25lbnQ8UHJvY2Vzc0xpc3REYXRhQ29sdW1uQ3VzdG9tRGF0YT4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBhc3NpZ25lZSBvZiB0aGUgcHJvY2Vzcy4gUG9zc2libGUgdmFsdWVzIGFyZTogXCJhc3NpZ25lZVwiICh0aGUgY3VycmVudCB1c2VyIGlzIHRoZSBhc3NpZ25lZSksXG4gICAgICogXCJjYW5kaWRhdGVcIiAodGhlIGN1cnJlbnQgdXNlciBpcyBhIHRhc2sgY2FuZGlkYXRlXCIsIFwiZ3JvdXBfeFwiICh0aGUgdGFzayBpcyBhc3NpZ25lZCB0byBhIGdyb3VwXG4gICAgICogd2hlcmUgdGhlIGN1cnJlbnQgdXNlciBpcyBhIG1lbWJlciwgbm8gdmFsdWUgKHRoZSBjdXJyZW50IHVzZXIgaXMgaW52b2x2ZWQpLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXNzaWduZWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyBjcmVhdGVkIG9uIHRoZSBzdXBwbGllZCBkYXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY3JlYXRlZERhdGU6IERhdGU7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggY3JlYXRlZEZyb20gZXF1YWwgdG8gdGhlIHN1cHBsaWVkIGRhdGUuICovXG4gICAgQElucHV0KClcbiAgICBjcmVhdGVkRnJvbTogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggY3JlYXRlZFRvIGVxdWFsIHRvIHRoZSBzdXBwbGllZCBkYXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY3JlYXRlZFRvOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBkdWVEYXRlIGVxdWFsIHRvIHRoZSBzdXBwbGllZCBkYXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZHVlRGF0ZTogRGF0ZTtcblxuICAgIC8qKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBsYXN0TW9kaWZpZWRGcm9tIGVxdWFsIHRvIHRoZSBzdXBwbGllZCBkYXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFzdE1vZGlmaWVkRnJvbTogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggbGFzdE1vZGlmaWVkVG8gZXF1YWwgdG8gdGhlIHN1cHBsaWVkIGRhdGUuICovXG4gICAgQElucHV0KClcbiAgICBsYXN0TW9kaWZpZWRUbzogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggZHVlRGF0ZSBncmVhdGVyIG9yIGVxdWFsIHRoYW4gdGhlIHN1cHBsaWVkIGRhdGUuICovXG4gICAgQElucHV0KClcbiAgICBkdWVEYXRlRnJvbTogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggZHVlRGF0ZSBsZXNzIG9yIGVxdWFsIHRvIHRoZSBzdXBwbGllZCBkYXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZHVlRGF0ZVRvOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBpZCBlcXVhbCB0byB0aGUgc3VwcGxpZWQgdmFsdWUuICovXG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggdGhlIHN1cHBsaWVkIG5hbWUuICovXG4gICAgQElucHV0KClcbiAgICBuYW1lOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBGaWx0ZXIgdGhlIHRhc2tzIHRvIGRpc3BsYXkgb25seSB0aGUgb25lcyB3aXRoIHRoaXMgZW52aXJvbm1lbnQgSUQuICovXG4gICAgQElucHV0KClcbiAgICBlbnZpcm9ubWVudElkOiBzdHJpbmc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggcGFyZW50VGFza0lkIGVxdWFsIHRvIHRoZSBzdXBwbGllZCB2YWx1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBhcmVudFRhc2tJZDogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggcHJvY2Vzc0RlZmluaXRpb25OYW1lIGVxdWFsIHRvIHRoZSBzdXBwbGllZCB2YWx1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NEZWZpbml0aW9uTmFtZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggcHJvY2Vzc0RlZmluaXRpb25JZCBlcXVhbCB0byB0aGUgc3VwcGxpZWQgdmFsdWUuICovXG4gICAgQElucHV0KClcbiAgICBwcm9jZXNzRGVmaW5pdGlvbklkOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBwcm9jZXNzSW5zdGFuY2VJZCBlcXVhbCB0byB0aGUgc3VwcGxpZWQgdmFsdWUuICovXG4gICAgQElucHV0KClcbiAgICBwcm9jZXNzSW5zdGFuY2VJZDogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggc3RhdHVzIGVxdWFsIHRvIHRoZSBzdXBwbGllZCB2YWx1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXR1czogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggb3duZXIgZXF1YWwgdG8gdGhlIHN1cHBsaWVkIHZhbHVlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgb3duZXI6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIHByaW9yaXR5IGVxdWFsIHRvIHRoZSBzdXBwbGllZCB2YWx1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHByaW9yaXR5OiBudW1iZXI7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggY3JlYXRlZEJ5IGVxdWFsIHRvIHRoZSBzdXBwbGllZCB2YWx1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbXBsZXRlZEJ5OiBudW1iZXI7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRoZSB0YXNrcyB0aGF0IGJlbG9uZyB0byBhIHByb2Nlc3MgaW4gY2FzZSBpcyBmYWxzZSBvciB0YXNrcyB0aGF0IGRvZXNuJ3QgYmVsb25nIHRvIGEgcHJvY2VzcyBpbiBjYXNlIG9mIHRydWUuICovXG4gICAgQElucHV0KClcbiAgICBzdGFuZGFsb25lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggY29tcGxldGVkRGF0ZSBlcXVhbCB0byB0aGUgc3VwcGxpZWQgZGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbXBsZXRlZERhdGU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIGNvbXBsZXRlZEZyb20gZXF1YWwgdG8gdGhlIHN1cHBsaWVkIGRhdGUuICovXG4gICAgQElucHV0KClcbiAgICBjb21wbGV0ZWRGcm9tOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBjb21wbGV0ZWRUbyBlcXVhbCB0byB0aGUgc3VwcGxpZWQgZGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbXBsZXRlZFRvOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBjYW5kaWRhdGVHcm91cHMgZXF1YWwgdG8gdGhlIHN1cHBsaWVkIHZhbHVlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2FuZGlkYXRlR3JvdXBJZDogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRnJvbSBBY3Rpdml0aSA4LjcuMCBmb3J3YXJkLCB1c2UgdGhlICdQT1NUJyB2YWx1ZSBhbmQgYXJyYXkgaW5wdXRzIHRvIGVuYWJsZSBhZHZhbmNlZCBmaWx0ZXJpbmcuICovXG4gICAgQElucHV0KClcbiAgICBzZWFyY2hBcGlNZXRob2Q6ICdHRVQnIHwgJ1BPU1QnID0gJ0dFVCc7XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBuYW1lcyBtYXRjaGluZyBhbnkgb2YgdGhlIHN1cHBsaWVkIHN0cmluZ3MuXG4gICAgICogVGhpcyBpbnB1dCB3aWxsIGJlIHVzZWQgb25seSBpZiBzZWFyY2hBcGlNZXRob2QgaW5wdXQgaXMgcHJvdmlkZWQgd2l0aCAnUE9TVCcgdmFsdWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBuYW1lczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIGFzc2lnbmVlcyB3aG9zZSB1c2VybmFtZXMgYXJlIHByZXNlbnQgaW4gdGhlIGFycmF5LlxuICAgICAqIFRoaXMgaW5wdXQgd2lsbCBiZSB1c2VkIG9ubHkgaWYgc2VhcmNoQXBpTWV0aG9kIGlucHV0IGlzIHByb3ZpZGVkIHdpdGggJ1BPU1QnIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXNzaWduZWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggcHJvdmlkZWQgc3RhdHVzZXMuXG4gICAgICogVGhpcyBpbnB1dCB3aWxsIGJlIHVzZWQgb25seSBpZiBzZWFyY2hBcGlNZXRob2QgaW5wdXQgaXMgcHJvdmlkZWQgd2l0aCAnUE9TVCcgdmFsdWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGF0dXNlczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB1bmRlciBwcm9jZXNzZXMgd2l0aCBwcm92aWRlZCBkZWZpbml0aW9uIG5hbWVzLlxuICAgICAqIFRoaXMgaW5wdXQgd2lsbCBiZSB1c2VkIG9ubHkgaWYgc2VhcmNoQXBpTWV0aG9kIGlucHV0IGlzIHByb3ZpZGVkIHdpdGggJ1BPU1QnIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHJvY2Vzc0RlZmluaXRpb25OYW1lczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIElkcyBtYXRjaGluZyBhbnkgb2YgdGhlIHN1cHBsaWVkIHN0cmluZ3MuXG4gICAgICogVGhpcyBpbnB1dCB3aWxsIGJlIHVzZWQgb25seSBpZiBzZWFyY2hBcGlNZXRob2QgaW5wdXQgaXMgcHJvdmlkZWQgd2l0aCAnUE9TVCcgdmFsdWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBwYXJlbnRUYXNrSWRzIG1hdGNoaW5nIGFueSBvZiB0aGUgc3VwcGxpZWQgc3RyaW5ncy5cbiAgICAgKiBUaGlzIGlucHV0IHdpbGwgYmUgdXNlZCBvbmx5IGlmIHNlYXJjaEFwaU1ldGhvZCBpbnB1dCBpcyBwcm92aWRlZCB3aXRoICdQT1NUJyB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHBhcmVudElkczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIHByb2Nlc3NJbnN0YW5jZUlkcyBtYXRjaGluZyBhbnkgb2YgdGhlIHN1cHBsaWVkIHN0cmluZ3MuXG4gICAgICogVGhpcyBpbnB1dCB3aWxsIGJlIHVzZWQgb25seSBpZiBzZWFyY2hBcGlNZXRob2QgaW5wdXQgaXMgcHJvdmlkZWQgd2l0aCAnUE9TVCcgdmFsdWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwcm9jZXNzSW5zdGFuY2VJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3MgdW5kZXIgcHJvY2Vzc2VzIHdpdGggcHJvdmlkZWQgbmFtZXMuXG4gICAgICogVGhpcyBpbnB1dCB3aWxsIGJlIHVzZWQgb25seSBpZiBzZWFyY2hBcGlNZXRob2QgaW5wdXQgaXMgcHJvdmlkZWQgd2l0aCAnUE9TVCcgdmFsdWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwcm9jZXNzTmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBwcm92aWRlZCBwcmlvcml0aWVzLlxuICAgICAqIFRoaXMgaW5wdXQgd2lsbCBiZSB1c2VkIG9ubHkgaWYgc2VhcmNoQXBpTWV0aG9kIGlucHV0IGlzIHByb3ZpZGVkIHdpdGggJ1BPU1QnIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHJpb3JpdGllczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyBjb21wbGV0ZWQgYnkgdXNlcnMgd2hvc2UgdXNlcm5hbWVzIGFyZSBwcmVzZW50IGluIHRoZSBhcnJheS5cbiAgICAgKiBUaGlzIGlucHV0IHdpbGwgYmUgdXNlZCBvbmx5IGlmIHNlYXJjaEFwaU1ldGhvZCBpbnB1dCBpcyBwcm92aWRlZCB3aXRoICdQT1NUJyB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbXBsZXRlZEJ5VXNlcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgdGhlIHByb2Nlc3Nlcy4gRGlzcGxheSBvbmx5IHByb2Nlc3NlcyB3aXRoIHNwZWNpZmljIHByb2Nlc3MgdmFyaWFibGVzLlxuICAgICAqIFRoaXMgaW5wdXQgd2lsbCBiZSB1c2VkIG9ubHkgaWYgc2VhcmNoQXBpTWV0aG9kIGlucHV0IGlzIHByb3ZpZGVkIHdpdGggJ1BPU1QnIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHJvY2Vzc1ZhcmlhYmxlRmlsdGVyczogUHJvY2Vzc1ZhcmlhYmxlRmlsdGVyTW9kZWxbXTtcblxuICAgIHJvd3M6IFRhc2tJbnN0YW5jZUNsb3VkTGlzdFZpZXdNb2RlbFtdID0gW107XG4gICAgZGF0YUFkYXB0ZXI6IFRhc2tzTGlzdERhdGF0YWJsZUFkYXB0ZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBwcml2YXRlIGlzUmVsb2FkaW5nU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBpc0xvYWRpbmckID0gY29tYmluZUxhdGVzdChbdGhpcy5pc0xvYWRpbmdQcmVmZXJlbmNlcyQsIHRoaXMuaXNSZWxvYWRpbmdTdWJqZWN0JF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2lzTG9hZGluZ1ByZWZlcmVuY2VzLCBpc1JlbG9hZGluZ10pID0+IGlzTG9hZGluZ1ByZWZlcmVuY2VzIHx8IGlzUmVsb2FkaW5nKVxuICAgICk7XG5cbiAgICBwcml2YXRlIGZldGNoUHJvY2Vzc2VzVHJpZ2dlciQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVEFTS19MSVNUX0NMT1VEX1RPS0VOKSBwdWJsaWMgdGFza0xpc3RDbG91ZFNlcnZpY2U6IFRhc2tMaXN0Q2xvdWRTZXJ2aWNlSW50ZXJmYWNlLFxuICAgICAgICBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLFxuICAgICAgICB0YXNrQ2xvdWRTZXJ2aWNlOiBUYXNrQ2xvdWRTZXJ2aWNlLFxuICAgICAgICB1c2VyUHJlZmVyZW5jZXM6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoVEFTS19MSVNUX1BSRUZFUkVOQ0VTX1NFUlZJQ0VfVE9LRU4pIGNsb3VkUHJlZmVyZW5jZVNlcnZpY2U6IFByZWZlcmVuY2VDbG91ZFNlcnZpY2VJbnRlcmZhY2UsXG4gICAgICAgIHByaXZhdGUgdmlld01vZGVsQ3JlYXRvcjogVmFyaWFibGVNYXBwZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGFwcENvbmZpZ1NlcnZpY2UsIHRhc2tDbG91ZFNlcnZpY2UsIHVzZXJQcmVmZXJlbmNlcywgUFJFU0VUX0tFWSwgY2xvdWRQcmVmZXJlbmNlU2VydmljZSk7XG5cbiAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5pc0xvYWRpbmdQcmVmZXJlbmNlcyQsIHRoaXMuaXNDb2x1bW5TY2hlbWFDcmVhdGVkJCwgdGhpcy5mZXRjaFByb2Nlc3Nlc1RyaWdnZXIkXSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmlzUmVsb2FkaW5nU3ViamVjdCQubmV4dCh0cnVlKSksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChbaXNMb2FkaW5nUHJlZmVyZW5jZXMsIGlzQ29sdW1uU2NoZW1hQ3JlYXRlZF0pID0+ICFpc0xvYWRpbmdQcmVmZXJlbmNlcyAmJiAhIWlzQ29sdW1uU2NoZW1hQ3JlYXRlZCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VhcmNoQXBpTWV0aG9kID09PSAnUE9TVCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3ROb2RlID0gdGhpcy5jcmVhdGVUYXNrTGlzdFJlcXVlc3ROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50YXNrTGlzdENsb3VkU2VydmljZS5mZXRjaFRhc2tMaXN0KHJlcXVlc3ROb2RlKS5waXBlKHRha2UoMSkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdE5vZGUgPSB0aGlzLmNyZWF0ZVJlcXVlc3ROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcXVlc3ROb2RlID0gcmVxdWVzdE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50YXNrTGlzdENsb3VkU2VydmljZS5nZXRUYXNrQnlSZXF1ZXN0KHJlcXVlc3ROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAodGFza3M6IHsgbGlzdDogUGFnaW5hdGVkRW50cmllczxUYXNrQ2xvdWRNb2RlbD4gfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXNrc1dpdGhWYXJpYWJsZXMgPSB0YXNrcy5saXN0LmVudHJpZXMubWFwKCh0YXNrKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGFzayxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczogdGFzay5wcm9jZXNzVmFyaWFibGVzXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd3MgPSB0aGlzLnZpZXdNb2RlbENyZWF0b3IubWFwVmFyaWFibGVzQnlDb2x1bW5UaXRsZSh0YXNrc1dpdGhWYXJpYWJsZXMsIHRoaXMuY29sdW1ucyk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhQWRhcHRlciA9IG5ldyBUYXNrc0xpc3REYXRhdGFibGVBZGFwdGVyKHRoaXMucm93cywgdGhpcy5jb2x1bW5zKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh0YXNrcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZWxvYWRpbmdTdWJqZWN0JC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uLm5leHQodGFza3MubGlzdC5wYWdpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZWxvYWRpbmdTdWJqZWN0JC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWxvYWQoKSB7XG4gICAgICAgIHRoaXMuaXNSZWxvYWRpbmdTdWJqZWN0JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmZldGNoUHJvY2Vzc2VzVHJpZ2dlciQubmV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlVGFza0xpc3RSZXF1ZXN0Tm9kZSgpOiBUYXNrTGlzdFJlcXVlc3RNb2RlbCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3ROb2RlOiBUYXNrTGlzdFJlcXVlc3RNb2RlbCA9IHtcbiAgICAgICAgICAgIGFwcE5hbWU6IHRoaXMuYXBwTmFtZSxcbiAgICAgICAgICAgIHBhZ2luYXRpb246IHtcbiAgICAgICAgICAgICAgICBtYXhJdGVtczogdGhpcy5zaXplLFxuICAgICAgICAgICAgICAgIHNraXBDb3VudDogdGhpcy5za2lwQ291bnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzb3J0aW5nOiB0aGlzLmdldFRhc2tMaXN0UmVxdWVzdFNvcnRpbmcoKSxcbiAgICAgICAgICAgIG9ubHlTdGFuZGFsb25lOiB0aGlzLnN0YW5kYWxvbmUsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWVzLFxuICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25OYW1lOiB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZXMsXG4gICAgICAgICAgICBpZDogdGhpcy5pZHMsXG4gICAgICAgICAgICBwYXJlbnRJZDogdGhpcy5wYXJlbnRJZHMsXG4gICAgICAgICAgICBwcm9jZXNzTmFtZTogdGhpcy5wcm9jZXNzTmFtZXMsXG4gICAgICAgICAgICBwcm9jZXNzSW5zdGFuY2VJZDogdGhpcy5wcm9jZXNzSW5zdGFuY2VJZHMsXG4gICAgICAgICAgICBwcmlvcml0eTogdGhpcy5wcmlvcml0aWVzLFxuICAgICAgICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1c2VzLFxuICAgICAgICAgICAgY29tcGxldGVkQnk6IHRoaXMuY29tcGxldGVkQnlVc2VycyxcbiAgICAgICAgICAgIGFzc2lnbmVlOiB0aGlzLmFzc2lnbmVlcyxcbiAgICAgICAgICAgIGNyZWF0ZWRGcm9tOiB0aGlzLmNyZWF0ZWRGcm9tLFxuICAgICAgICAgICAgY3JlYXRlZFRvOiB0aGlzLmNyZWF0ZWRUbyxcbiAgICAgICAgICAgIGxhc3RNb2RpZmllZEZyb206IHRoaXMubGFzdE1vZGlmaWVkRnJvbSxcbiAgICAgICAgICAgIGxhc3RNb2RpZmllZFRvOiB0aGlzLmxhc3RNb2RpZmllZFRvLFxuICAgICAgICAgICAgZHVlRGF0ZUZyb206IHRoaXMuZHVlRGF0ZUZyb20sXG4gICAgICAgICAgICBkdWVEYXRlVG86IHRoaXMuZHVlRGF0ZVRvLFxuICAgICAgICAgICAgY29tcGxldGVkRnJvbTogdGhpcy5jb21wbGV0ZWRGcm9tLFxuICAgICAgICAgICAgY29tcGxldGVkVG86IHRoaXMuY29tcGxldGVkVG8sXG4gICAgICAgICAgICBwcm9jZXNzVmFyaWFibGVLZXlzOiB0aGlzLmdldFJlcXVlc3ROb2RlVmFyaWFibGVzKCksXG4gICAgICAgICAgICBwcm9jZXNzVmFyaWFibGVGaWx0ZXJzOiB0aGlzLnByb2Nlc3NWYXJpYWJsZUZpbHRlcnMgPz8gW11cbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gbmV3IFRhc2tMaXN0UmVxdWVzdE1vZGVsKHJlcXVlc3ROb2RlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVJlcXVlc3ROb2RlKCk6IFRhc2tRdWVyeUNsb3VkUmVxdWVzdE1vZGVsIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdE5vZGUgPSB7XG4gICAgICAgICAgICBhcHBOYW1lOiB0aGlzLmFwcE5hbWUsXG4gICAgICAgICAgICBhc3NpZ25lZTogdGhpcy5hc3NpZ25lZSxcbiAgICAgICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgZW52aXJvbm1lbnRJZDogdGhpcy5lbnZpcm9ubWVudElkLFxuICAgICAgICAgICAgcGFyZW50VGFza0lkOiB0aGlzLnBhcmVudFRhc2tJZCxcbiAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uTmFtZTogdGhpcy5wcm9jZXNzRGVmaW5pdGlvbk5hbWUsXG4gICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbklkOiB0aGlzLnByb2Nlc3NEZWZpbml0aW9uSWQsXG4gICAgICAgICAgICBwcm9jZXNzSW5zdGFuY2VJZDogdGhpcy5wcm9jZXNzSW5zdGFuY2VJZCxcbiAgICAgICAgICAgIG93bmVyOiB0aGlzLm93bmVyLFxuICAgICAgICAgICAgcHJpb3JpdHk6IHRoaXMucHJpb3JpdHksXG4gICAgICAgICAgICBsYXN0TW9kaWZpZWRGcm9tOiB0aGlzLmxhc3RNb2RpZmllZEZyb20sXG4gICAgICAgICAgICBsYXN0TW9kaWZpZWRUbzogdGhpcy5sYXN0TW9kaWZpZWRUbyxcbiAgICAgICAgICAgIGR1ZURhdGVGcm9tOiB0aGlzLmR1ZURhdGVGcm9tLFxuICAgICAgICAgICAgZHVlRGF0ZVRvOiB0aGlzLmR1ZURhdGVUbyxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICAgICAgICBkdWVEYXRlOiB0aGlzLmR1ZURhdGUsXG4gICAgICAgICAgICBjcmVhdGVkRGF0ZTogdGhpcy5jcmVhdGVkRGF0ZSxcbiAgICAgICAgICAgIGNyZWF0ZWRGcm9tOiB0aGlzLmNyZWF0ZWRGcm9tLFxuICAgICAgICAgICAgY3JlYXRlZFRvOiB0aGlzLmNyZWF0ZWRUbyxcbiAgICAgICAgICAgIG1heEl0ZW1zOiB0aGlzLnNpemUsXG4gICAgICAgICAgICBza2lwQ291bnQ6IHRoaXMuc2tpcENvdW50LFxuICAgICAgICAgICAgc29ydGluZzogdGhpcy5zb3J0aW5nLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogdGhpcy5zdGFuZGFsb25lLFxuICAgICAgICAgICAgY29tcGxldGVkQnk6IHRoaXMuY29tcGxldGVkQnksXG4gICAgICAgICAgICBjb21wbGV0ZWRGcm9tOiB0aGlzLmNvbXBsZXRlZEZyb20sXG4gICAgICAgICAgICBjb21wbGV0ZWRUbzogdGhpcy5jb21wbGV0ZWRUbyxcbiAgICAgICAgICAgIGNvbXBsZXRlZERhdGU6IHRoaXMuY29tcGxldGVkRGF0ZSxcbiAgICAgICAgICAgIGNhbmRpZGF0ZUdyb3VwSWQ6IHRoaXMuY2FuZGlkYXRlR3JvdXBJZCxcbiAgICAgICAgICAgIHZhcmlhYmxlS2V5czogdGhpcy5nZXRSZXF1ZXN0Tm9kZVZhcmlhYmxlcygpXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbChyZXF1ZXN0Tm9kZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSZXF1ZXN0Tm9kZVZhcmlhYmxlcygpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGRpc3BsYXllZFZhcmlhYmxlQ29sdW1uczogc3RyaW5nW10gPSAodGhpcy5jb2x1bW5zID8/IFtdKVxuICAgICAgICAgICAgLmZpbHRlcigoY29sdW1uKSA9PiBjb2x1bW4uY3VzdG9tRGF0YT8uY29sdW1uVHlwZSA9PT0gJ3Byb2Nlc3MtdmFyaWFibGUtY29sdW1uJyAmJiBjb2x1bW4uaXNIaWRkZW4gIT09IHRydWUpXG4gICAgICAgICAgICAubWFwKChjb2x1bW4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YXJpYWJsZURlZmluaXRpb25zUGF5bG9hZCA9IGNvbHVtbi5jdXN0b21EYXRhLnZhcmlhYmxlRGVmaW5pdGlvbnNQYXlsb2FkO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YXJpYWJsZURlZmluaXRpb25zUGF5bG9hZDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucmVkdWNlKChhbGxSZXF1ZXN0S2V5cywgcmVxdWVzdEtleXMpID0+IFsuLi5yZXF1ZXN0S2V5cywgLi4uYWxsUmVxdWVzdEtleXNdLCBbXSk7XG5cbiAgICAgICAgcmV0dXJuIGRpc3BsYXllZFZhcmlhYmxlQ29sdW1ucy5sZW5ndGggPyBkaXNwbGF5ZWRWYXJpYWJsZUNvbHVtbnMgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUYXNrTGlzdFJlcXVlc3RTb3J0aW5nKCk6IFRhc2tMaXN0UmVxdWVzdFNvcnRpbmdNb2RlbCB7XG4gICAgICAgIGlmICghdGhpcy5zb3J0aW5nPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgVGFza0xpc3RSZXF1ZXN0U29ydGluZ01vZGVsKHtcbiAgICAgICAgICAgICAgICBvcmRlckJ5OiB0aGlzLmRlZmF1bHRTb3J0aW5nLmtleSxcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHRoaXMuZGVmYXVsdFNvcnRpbmcuZGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgIGlzRmllbGRQcm9jZXNzVmFyaWFibGU6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9yZGVyQnkgPSB0aGlzLnNvcnRpbmdbMF0/Lm9yZGVyQnk7XG4gICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMuc29ydGluZ1swXT8uZGlyZWN0aW9uO1xuICAgICAgICBjb25zdCBvcmRlckJ5Q29sdW1uID0gdGhpcy5jb2x1bW5MaXN0Py5jb2x1bW5zLmZpbmQoKGNvbHVtbikgPT4gY29sdW1uLmtleSA9PT0gb3JkZXJCeSk7XG4gICAgICAgIGNvbnN0IGlzRmllbGRQcm9jZXNzVmFyaWFibGUgPSBvcmRlckJ5Q29sdW1uPy5jdXN0b21EYXRhPy5jb2x1bW5UeXBlID09PSAncHJvY2Vzcy12YXJpYWJsZS1jb2x1bW4nO1xuXG4gICAgICAgIGlmIChpc0ZpZWxkUHJvY2Vzc1ZhcmlhYmxlKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9jZXNzRGVmaW5pdGlvbktleSA9IG9yZGVyQnlDb2x1bW4uY3VzdG9tRGF0YS52YXJpYWJsZURlZmluaXRpb25zUGF5bG9hZFswXS5zcGxpdCgnLycpWzBdO1xuICAgICAgICAgICAgY29uc3QgdmFyaWFibGVOYW1lID0gb3JkZXJCeUNvbHVtbi5jdXN0b21EYXRhLnZhcmlhYmxlRGVmaW5pdGlvbnNQYXlsb2FkWzBdLnNwbGl0KCcvJylbMV07XG4gICAgICAgICAgICByZXR1cm4gbmV3IFRhc2tMaXN0UmVxdWVzdFNvcnRpbmdNb2RlbCh7XG4gICAgICAgICAgICAgICAgb3JkZXJCeTogdmFyaWFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgICAgICBpc0ZpZWxkUHJvY2Vzc1ZhcmlhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NWYXJpYWJsZURhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IG9yZGVyQnlDb2x1bW4uY3VzdG9tRGF0YS52YXJpYWJsZVR5cGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgVGFza0xpc3RSZXF1ZXN0U29ydGluZ01vZGVsKHsgb3JkZXJCeSwgZGlyZWN0aW9uLCBpc0ZpZWxkUHJvY2Vzc1ZhcmlhYmxlOiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCIhcm93c1wiPnt7ICdBREZfQ0xPVURfVEFTS19MSVNULkZJTFRFUlMuTUVTU0FHRVMuTk9ORScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJyb3dzXCI+XG4gICAgICAgIDxhZGYtZGF0YXRhYmxlXG4gICAgICAgICAgICBbcm93c109XCJyb3dzXCJcbiAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICAgICAgW2RhdGFdPVwiZGF0YUFkYXB0ZXJcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiaXNMb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtzb3J0aW5nXT1cImZvcm1hdHRlZFNvcnRpbmdcIlxuICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cIm11bHRpc2VsZWN0XCJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGVcIlxuICAgICAgICAgICAgW3N0aWNreUhlYWRlcl09XCJzdGlja3lIZWFkZXJcIlxuICAgICAgICAgICAgW2FjdGlvbnNdPVwic2hvd0FjdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGlvbnNQb3NpdGlvbl09XCJhY3Rpb25zUG9zaXRpb25cIlxuICAgICAgICAgICAgW2NvbnRleHRNZW51XT1cInNob3dDb250ZXh0TWVudVwiXG4gICAgICAgICAgICBbcmVzb2x2ZXJGbl09XCJib3VuZFJlcGxhY2VQcmlvcml0eVZhbHVlc1wiXG4gICAgICAgICAgICBbc2hvd1Byb3ZpZGVkQWN0aW9uc109XCJzaG93UHJvdmlkZWRBY3Rpb25zXCJcbiAgICAgICAgICAgIFtzaG93TWFpbkRhdGF0YWJsZUFjdGlvbnNdPVwic2hvd01haW5EYXRhdGFibGVBY3Rpb25zXCJcbiAgICAgICAgICAgIFtpc1Jlc2l6aW5nRW5hYmxlZF09XCJpc1Jlc2l6aW5nRW5hYmxlZFwiXG4gICAgICAgICAgICAoc2hvd1Jvd0FjdGlvbnNNZW51KT1cIm9uU2hvd1Jvd0FjdGlvbnNNZW51KCRldmVudClcIlxuICAgICAgICAgICAgKHNob3dSb3dDb250ZXh0TWVudSk9XCJvblNob3dSb3dDb250ZXh0TWVudSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChleGVjdXRlUm93QWN0aW9uKT1cIm9uRXhlY3V0ZVJvd0FjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgIChyb3ctc2VsZWN0KT1cIm9uUm93U2VsZWN0KCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKHJvdy11bnNlbGVjdCk9XCJvblJvd1Vuc2VsZWN0KCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKHJvd0NsaWNrKT1cIm9uUm93Q2xpY2soJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAocm93LWtleXVwKT1cIm9uUm93S2V5VXAoJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAoc29ydGluZy1jaGFuZ2VkKT1cIm9uU29ydGluZ0NoYW5nZWQoJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAoY29sdW1uT3JkZXJDaGFuZ2VkKT1cIm9uQ29sdW1uT3JkZXJDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgKGNvbHVtbnNXaWR0aENoYW5nZWQpPVwib25Db2x1bW5zV2lkdGhDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGFkZi1sb2FkaW5nLWNvbnRlbnQtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWNsb3VkLXRhc2stbGlzdC1sb2FkaW5nLW1hcmdpblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJ3ByaW1hcnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIidpbmRldGVybWluYXRlJ1wiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvYWRmLWxvYWRpbmctY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxhZGYtbm8tY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtZW1wdHktY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZW1wdHlDdXN0b21Db250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJhc3NpZ25tZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQURGX0NMT1VEX1RBU0tfTElTVC5MSVNULk1FU1NBR0VTLlRJVExFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3VidGl0bGVdPVwiJ0FERl9DTE9VRF9UQVNLX0xJU1QuTElTVC5NRVNTQUdFUy5TVUJUSVRMRScgfCB0cmFuc2xhdGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhZGYtY3VzdG9tLWVtcHR5LWNvbnRlbnQtdGVtcGxhdGVcIiAvPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2FkZi1uby1jb250ZW50LXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8YWRmLW1haW4tbWVudS1kYXRhdGFibGUtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1tYWluTWVudVRyaWdnZXI+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtZGF0YXRhYmxlLWNvbHVtbi1zZWxlY3RvclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWFpbk1lbnVUcmlnZ2VyXT1cIm1haW5NZW51VHJpZ2dlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc3VibWl0Q29sdW1uc1Zpc2liaWxpdHkpPVwib25Db2x1bW5zVmlzaWJpbGl0eUNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9hZGYtbWFpbi1tZW51LWRhdGF0YWJsZS10ZW1wbGF0ZT5cbiAgICAgICAgPC9hZGYtZGF0YXRhYmxlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,18 @@
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
+ export {};
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS10YXNrLWNsb3VkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2stbGlzdC9tb2RlbHMvc2VydmljZS10YXNrLWNsb3VkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgVGFza0xpc3RDbG91ZFNvcnRpbmdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90YXNrLWxpc3Qtc29ydGluZy5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZVRhc2tRdWVyeUNsb3VkUmVxdWVzdE1vZGVsIHtcbiAgICBhcHBOYW1lOiBzdHJpbmc7XG4gICAgYXBwVmVyc2lvbj86IHN0cmluZztcbiAgICBlbnZpcm9ubWVudElkPzogc3RyaW5nO1xuICAgIGlkPzogc3RyaW5nO1xuICAgIHN0YXR1cz86IHN0cmluZztcbiAgICBtYXhJdGVtczogbnVtYmVyO1xuICAgIHNraXBDb3VudDogbnVtYmVyO1xuICAgIHNvcnRpbmc/OiBUYXNrTGlzdENsb3VkU29ydGluZ01vZGVsW107XG4gICAgYWN0aXZpdHlOYW1lPzogc3RyaW5nO1xuICAgIGFjdGl2aXR5VHlwZT86IHN0cmluZztcbiAgICBjb21wbGV0ZWREYXRlPzogRGF0ZTtcbiAgICBlbGVtZW50SWQ/OiBzdHJpbmc7XG4gICAgZXhlY3V0aW9uSWQ/OiBzdHJpbmc7XG4gICAgcHJvY2Vzc0RlZmluaXRpb25JZD86IHN0cmluZztcbiAgICBwcm9jZXNzRGVmaW5pdGlvbktleT86IHN0cmluZztcbiAgICBwcm9jZXNzRGVmaW5pdGlvblZlcnNpb24/OiBudW1iZXI7XG4gICAgcHJvY2Vzc0luc3RhbmNlSWQ/OiBzdHJpbmc7XG4gICAgc2VydmljZUZ1bGxOYW1lPzogc3RyaW5nO1xuICAgIHNlcnZpY2VOYW1lPzogc3RyaW5nO1xuICAgIHNlcnZpY2VWZXJzaW9uPzogc3RyaW5nO1xuICAgIHN0YXJ0ZWREYXRlPzogRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlVGFza0ludGVncmF0aW9uQ29udGV4dENsb3VkTW9kZWwgZXh0ZW5kcyBTZXJ2aWNlVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwge1xuICAgIGVycm9yRGF0ZT86IERhdGU7XG4gICAgZXJyb3JDbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgZXJyb3JDb2RlPzogc3RyaW5nO1xuICAgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,18 @@
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
+ export {};
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jbG91ZC12aWV3Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2stbGlzdC9tb2RlbHMvdGFzay1jbG91ZC12aWV3Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgVGFza0Nsb3VkTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdGFzay1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBXaXRoVmFyaWFibGVzTWFwIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb2Nlc3MtaW5zdGFuY2UtdmFyaWFibGUubW9kZWwnO1xuXG5leHBvcnQgdHlwZSBUYXNrSW5zdGFuY2VDbG91ZExpc3RWaWV3TW9kZWwgPSBXaXRoVmFyaWFibGVzTWFwPFRhc2tDbG91ZE1vZGVsPjtcbiJdfQ==
@@ -0,0 +1,23 @@
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
+ export * from './components/task-list/task-list-cloud.component';
18
+ export * from './components/service-task-list/service-task-list-cloud.component';
19
+ export * from './models/service-task-cloud.model';
20
+ export * from './services/task-list-cloud.service';
21
+ export * from './services/service-task-list-cloud.service';
22
+ export * from './task-list-cloud.module';
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWxpc3QvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsa0VBQWtFLENBQUM7QUFFakYsY0FBYyxtQ0FBbUMsQ0FBQztBQUVsRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNENBQTRDLENBQUM7QUFFM0QsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3Rhc2stbGlzdC90YXNrLWxpc3QtY2xvdWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zZXJ2aWNlLXRhc2stbGlzdC9zZXJ2aWNlLXRhc2stbGlzdC1jbG91ZC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9zZXJ2aWNlLXRhc2stY2xvdWQubW9kZWwnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3Rhc2stbGlzdC1jbG91ZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc2VydmljZS10YXNrLWxpc3QtY2xvdWQuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdGFzay1saXN0LWNsb3VkLm1vZHVsZSc7XG4iXX0=