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

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/esm2022/adf-process-services-cloud.mjs +5 -0
  2. package/esm2022/lib/app/app-list-cloud.module.mjs +20 -0
  3. package/esm2022/lib/app/components/app-details-cloud/app-details-cloud.component.mjs +67 -0
  4. package/esm2022/lib/app/components/app-list-cloud/app-list-cloud.component.mjs +125 -0
  5. package/esm2022/lib/app/models/application-instance.model.mjs +24 -0
  6. package/esm2022/lib/app/public-api.mjs +22 -0
  7. package/esm2022/lib/app/services/apps-process-cloud.service.mjs +97 -0
  8. package/esm2022/lib/common/date-range-filter/date-range-filter.component.mjs +163 -0
  9. package/esm2022/lib/common/date-range-filter/date-range-filter.service.mjs +97 -0
  10. package/esm2022/lib/common/index.mjs +18 -0
  11. package/esm2022/lib/common/interface/environment.interface.mjs +18 -0
  12. package/esm2022/lib/common/interface/index.mjs +18 -0
  13. package/esm2022/lib/common/interface/public-api.mjs +18 -0
  14. package/esm2022/lib/common/public-api.mjs +19 -0
  15. package/esm2022/lib/form/components/cloud-form-rendering.service.mjs +57 -0
  16. package/esm2022/lib/form/components/form-cloud-custom-outcomes.component.mjs +31 -0
  17. package/esm2022/lib/form/components/form-cloud.component.mjs +415 -0
  18. package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +53 -0
  19. package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +35 -0
  20. package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +249 -0
  21. package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +136 -0
  22. package/esm2022/lib/form/components/widgets/data-table/data-table-adapter.widget.mjs +107 -0
  23. package/esm2022/lib/form/components/widgets/data-table/data-table.widget.mjs +120 -0
  24. package/esm2022/lib/form/components/widgets/data-table/helpers/data-table-path-parser.helper.mjs +122 -0
  25. package/esm2022/lib/form/components/widgets/date/date-cloud.widget.mjs +189 -0
  26. package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +85 -0
  27. package/esm2022/lib/form/components/widgets/display-rich-text/display-rich-text.widget.mjs +80 -0
  28. package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +463 -0
  29. package/esm2022/lib/form/components/widgets/dropdown/validators.mjs +29 -0
  30. package/esm2022/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +46 -0
  31. package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +82 -0
  32. package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +91 -0
  33. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.mjs +81 -0
  34. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +53 -0
  35. package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.schema.mjs +86 -0
  36. package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +116 -0
  37. package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +187 -0
  38. package/esm2022/lib/form/form-cloud.module.mjs +103 -0
  39. package/esm2022/lib/form/models/form-cloud-representation.model.mjs +48 -0
  40. package/esm2022/lib/form/models/task-variable-cloud.model.mjs +28 -0
  41. package/esm2022/lib/form/public-api.mjs +44 -0
  42. package/esm2022/lib/form/services/content-cloud-node-selector.service.mjs +120 -0
  43. package/esm2022/lib/form/services/display-mode.service.mjs +146 -0
  44. package/esm2022/lib/form/services/form-cloud.service.interface.mjs +18 -0
  45. package/esm2022/lib/form/services/form-cloud.service.mjs +201 -0
  46. package/esm2022/lib/form/services/form-definition-selector-cloud.service.interface.mjs +18 -0
  47. package/esm2022/lib/form/services/form-definition-selector-cloud.service.mjs +51 -0
  48. package/esm2022/lib/form/services/form-utils.service.mjs +37 -0
  49. package/esm2022/lib/form/services/process-cloud-content.service.mjs +71 -0
  50. package/esm2022/lib/form/services/spinner/form-cloud-spinner.service.mjs +52 -0
  51. package/esm2022/lib/group/components/group-cloud.component.mjs +423 -0
  52. package/esm2022/lib/group/group-cloud.module.mjs +33 -0
  53. package/esm2022/lib/group/models/identity-group.model.mjs +18 -0
  54. package/esm2022/lib/group/public-api.mjs +21 -0
  55. package/esm2022/lib/group/services/identity-group.service.mjs +89 -0
  56. package/esm2022/lib/models/application-version.model.mjs +21 -0
  57. package/esm2022/lib/models/constant-values.type.mjs +18 -0
  58. package/esm2022/lib/models/data-column-custom-data.mjs +18 -0
  59. package/esm2022/lib/models/date-cloud-filter.model.mjs +31 -0
  60. package/esm2022/lib/models/date-format-cloud.model.mjs +18 -0
  61. package/esm2022/lib/models/engine-event-cloud.model.mjs +18 -0
  62. package/esm2022/lib/models/filter-cloud-model.mjs +128 -0
  63. package/esm2022/lib/models/process-definition-cloud.model.mjs +32 -0
  64. package/esm2022/lib/models/process-instance-variable.model.mjs +18 -0
  65. package/esm2022/lib/models/process-variable-filter.model.mjs +18 -0
  66. package/esm2022/lib/models/task-cloud.model.mjs +23 -0
  67. package/esm2022/lib/models/task-list-sorting.model.mjs +40 -0
  68. package/esm2022/lib/models/variable-definition.mjs +18 -0
  69. package/esm2022/lib/people/components/people-cloud.component.mjs +498 -0
  70. package/esm2022/lib/people/models/identity-user.model.mjs +18 -0
  71. package/esm2022/lib/people/people-cloud.module.mjs +33 -0
  72. package/esm2022/lib/people/public-api.mjs +21 -0
  73. package/esm2022/lib/people/services/identity-user.service.mjs +119 -0
  74. package/esm2022/lib/process/process-cloud.module.mjs +40 -0
  75. package/esm2022/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.mjs +801 -0
  76. package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +58 -0
  77. package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +292 -0
  78. package/esm2022/lib/process/process-filters/models/process-filter-cloud.model.mjs +170 -0
  79. package/esm2022/lib/process/process-filters/process-filters-cloud.module.mjs +44 -0
  80. package/esm2022/lib/process/process-filters/public-api.mjs +23 -0
  81. package/esm2022/lib/process/process-filters/services/process-filter-cloud.service.mjs +408 -0
  82. package/esm2022/lib/process/process-header/components/process-header-cloud.component.mjs +137 -0
  83. package/esm2022/lib/process/process-header/process-header-cloud.module.mjs +33 -0
  84. package/esm2022/lib/process/process-header/public-api.mjs +19 -0
  85. package/esm2022/lib/process/process-list/components/process-list-cloud.component.mjs +593 -0
  86. package/esm2022/lib/process/process-list/datatable/process-list-datatable-adapter.mjs +31 -0
  87. package/esm2022/lib/process/process-list/models/perocess-instance-cloud-view.model.mjs +18 -0
  88. package/esm2022/lib/process/process-list/models/process-cloud-preferences.mjs +24 -0
  89. package/esm2022/lib/process/process-list/models/process-cloud-preset.model.mjs +37 -0
  90. package/esm2022/lib/process/process-list/models/process-cloud-query-request.model.mjs +107 -0
  91. package/esm2022/lib/process/process-list/models/process-list-sorting.model.mjs +40 -0
  92. package/esm2022/lib/process/process-list/process-list-cloud.module.mjs +45 -0
  93. package/esm2022/lib/process/process-list/public-api.mjs +25 -0
  94. package/esm2022/lib/process/process-list/services/process-list-cloud.service.mjs +253 -0
  95. package/esm2022/lib/process/process-list/services/process-task-list-cloud.service.mjs +109 -0
  96. package/esm2022/lib/process/public-api.mjs +23 -0
  97. package/esm2022/lib/process/services/process-cloud.service.mjs +105 -0
  98. package/esm2022/lib/process/start-process/components/start-process-cloud.component.mjs +480 -0
  99. package/esm2022/lib/process/start-process/models/process-instance-cloud.model.mjs +18 -0
  100. package/esm2022/lib/process/start-process/models/process-payload-cloud.model.mjs +26 -0
  101. package/esm2022/lib/process/start-process/models/process-with-form-payload-cloud.model.mjs +26 -0
  102. package/esm2022/lib/process/start-process/public-api.mjs +21 -0
  103. package/esm2022/lib/process/start-process/services/start-process-cloud.service.mjs +125 -0
  104. package/esm2022/lib/process-services-cloud.module.mjs +91 -0
  105. package/esm2022/lib/rich-text-editor/editorjs-config.mjs +101 -0
  106. package/esm2022/lib/rich-text-editor/index.mjs +18 -0
  107. package/esm2022/lib/rich-text-editor/public-api.mjs +19 -0
  108. package/esm2022/lib/rich-text-editor/rich-text-editor.component.mjs +80 -0
  109. package/esm2022/lib/rich-text-editor/rich-text-editor.module.mjs +33 -0
  110. package/esm2022/lib/screen/components/screen-cloud/screen-cloud.component.mjs +186 -0
  111. package/esm2022/lib/screen/models/screen-cloud.model.mjs +18 -0
  112. package/esm2022/lib/screen/public-api.mjs +18 -0
  113. package/esm2022/lib/services/base-cloud.service.mjs +83 -0
  114. package/esm2022/lib/services/cloud-token.service.mjs +23 -0
  115. package/esm2022/lib/services/form-fields.interfaces.mjs +55 -0
  116. package/esm2022/lib/services/local-preference-cloud.service.mjs +122 -0
  117. package/esm2022/lib/services/notification-cloud.service.mjs +45 -0
  118. package/esm2022/lib/services/preference-cloud.interface.mjs +18 -0
  119. package/esm2022/lib/services/public-api.mjs +28 -0
  120. package/esm2022/lib/services/screen-rendering.service.mjs +30 -0
  121. package/esm2022/lib/services/task-list-cloud.service.interface.mjs +18 -0
  122. package/esm2022/lib/services/user-preference-cloud.service.mjs +105 -0
  123. package/esm2022/lib/services/variable-mapper.sevice.mjs +77 -0
  124. package/esm2022/lib/services/web-socket.service.mjs +146 -0
  125. package/esm2022/lib/task/models/start-task-cloud-request.model.mjs +32 -0
  126. package/esm2022/lib/task/models/task-details-cloud.model.mjs +26 -0
  127. package/esm2022/lib/task/models/task.model.mjs +23 -0
  128. package/esm2022/lib/task/public-api.mjs +26 -0
  129. package/esm2022/lib/task/services/task-cloud.service.mjs +272 -0
  130. package/esm2022/lib/task/task-cloud.module.mjs +45 -0
  131. package/esm2022/lib/task/task-filters/components/base-task-filters-cloud.component.mjs +59 -0
  132. package/esm2022/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.mjs +467 -0
  133. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.mjs +205 -0
  134. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +317 -0
  135. package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +146 -0
  136. package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +142 -0
  137. package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +72 -0
  138. package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +255 -0
  139. package/esm2022/lib/task/task-filters/models/filter-cloud.model.mjs +207 -0
  140. package/esm2022/lib/task/task-filters/public-api.mjs +27 -0
  141. package/esm2022/lib/task/task-filters/services/service-task-filter-cloud.service.mjs +283 -0
  142. package/esm2022/lib/task/task-filters/services/task-filter-cloud.service.mjs +392 -0
  143. package/esm2022/lib/task/task-filters/task-filters-cloud.module.mjs +56 -0
  144. package/esm2022/lib/task/task-form/components/task-form-cloud/task-form-cloud.component.mjs +214 -0
  145. package/esm2022/lib/task/task-form/components/user-task-cloud/complete-task/complete-task.directive.mjs +89 -0
  146. package/esm2022/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.mjs +283 -0
  147. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/claim-task/claim-task-cloud.directive.mjs +101 -0
  148. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/unclaim-task/unclaim-task-cloud.directive.mjs +87 -0
  149. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/user-task-cloud-buttons.component.mjs +78 -0
  150. package/esm2022/lib/task/task-form/public-api.mjs +21 -0
  151. package/esm2022/lib/task/task-form/task-form.module.mjs +36 -0
  152. package/esm2022/lib/task/task-header/components/task-header-cloud.component.mjs +280 -0
  153. package/esm2022/lib/task/task-header/public-api.mjs +19 -0
  154. package/esm2022/lib/task/task-header/task-header-cloud.module.mjs +33 -0
  155. package/esm2022/lib/task/task-list/components/base-task-list-cloud.component.mjs +331 -0
  156. package/esm2022/lib/task/task-list/components/service-task-list/service-task-list-cloud.component.mjs +115 -0
  157. package/esm2022/lib/task/task-list/components/task-list/datatable/task-list-datatable-adapter.mjs +31 -0
  158. package/esm2022/lib/task/task-list/components/task-list/task-list-cloud.component.mjs +389 -0
  159. package/esm2022/lib/task/task-list/models/service-task-cloud.model.mjs +18 -0
  160. package/esm2022/lib/task/task-list/models/task-cloud-view.model.mjs +18 -0
  161. package/esm2022/lib/task/task-list/public-api.mjs +23 -0
  162. package/esm2022/lib/task/task-list/services/service-task-list-cloud.service.mjs +115 -0
  163. package/esm2022/lib/task/task-list/services/task-list-cloud.service.mjs +178 -0
  164. package/esm2022/lib/task/task-list/task-list-cloud.module.mjs +57 -0
  165. package/esm2022/lib/types.mjs +18 -0
  166. package/esm2022/public-api.mjs +40 -0
  167. package/fesm2022/adf-process-services-cloud.mjs +355 -350
  168. package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
  169. package/lib/task/task-filters/components/base-task-filters-cloud.component.d.ts +1 -1
  170. package/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.d.ts +1 -1
  171. package/lib/task/task-list/components/base-task-list-cloud.component.d.ts +1 -1
  172. package/package.json +6 -4
@@ -0,0 +1,389 @@
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 { TranslatePipe } 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 "@angular/material/progress-spinner";
39
+ const PRESET_KEY = 'adf-cloud-task-list.presets';
40
+ export class TaskListCloudComponent extends BaseTaskListCloudComponent {
41
+ constructor(taskListCloudService, appConfigService, taskCloudService, userPreferences, cloudPreferenceService, viewModelCreator) {
42
+ super(appConfigService, taskCloudService, userPreferences, PRESET_KEY, cloudPreferenceService);
43
+ this.taskListCloudService = taskListCloudService;
44
+ this.viewModelCreator = viewModelCreator;
45
+ /**
46
+ * The assignee of the process. Possible values are: "assignee" (the current user is the assignee),
47
+ * "candidate" (the current user is a task candidate", "group_x" (the task is assigned to a group
48
+ * where the current user is a member, no value (the current user is involved).
49
+ */
50
+ this.assignee = '';
51
+ /** Filter the tasks. Display only tasks with createdFrom equal to the supplied date. */
52
+ this.createdFrom = '';
53
+ /** Filter the tasks. Display only tasks with createdTo equal to the supplied date. */
54
+ this.createdTo = '';
55
+ /** Filter the tasks. Display only tasks with lastModifiedFrom equal to the supplied date. */
56
+ this.lastModifiedFrom = '';
57
+ /** Filter the tasks. Display only tasks with lastModifiedTo equal to the supplied date. */
58
+ this.lastModifiedTo = '';
59
+ /** Filter the tasks. Display only tasks with dueDate greater or equal than the supplied date. */
60
+ this.dueDateFrom = '';
61
+ /** Filter the tasks. Display only tasks with dueDate less or equal to the supplied date. */
62
+ this.dueDateTo = '';
63
+ /** Filter the tasks. Display only tasks with id equal to the supplied value. */
64
+ this.id = '';
65
+ /** Filter the tasks. Display only tasks with the supplied name. */
66
+ this.name = '';
67
+ /** Filter the tasks. Display only tasks with parentTaskId equal to the supplied value. */
68
+ this.parentTaskId = '';
69
+ /** Filter the tasks. Display only tasks with processDefinitionName equal to the supplied value. */
70
+ this.processDefinitionName = '';
71
+ /** Filter the tasks. Display only tasks with processDefinitionId equal to the supplied value. */
72
+ this.processDefinitionId = '';
73
+ /** Filter the tasks. Display only tasks with processInstanceId equal to the supplied value. */
74
+ this.processInstanceId = '';
75
+ /** Filter the tasks. Display only tasks with status equal to the supplied value. */
76
+ this.status = '';
77
+ /** Filter the tasks. Display only tasks with owner equal to the supplied value. */
78
+ this.owner = '';
79
+ /** 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. */
80
+ this.standalone = false;
81
+ /** Filter the tasks. Display only tasks with completedDate equal to the supplied date. */
82
+ this.completedDate = '';
83
+ /** Filter the tasks. Display only tasks with completedFrom equal to the supplied date. */
84
+ this.completedFrom = '';
85
+ /** Filter the tasks. Display only tasks with completedTo equal to the supplied date. */
86
+ this.completedTo = '';
87
+ /** Filter the tasks. Display only tasks with candidateGroups equal to the supplied value. */
88
+ this.candidateGroupId = '';
89
+ /** From Activiti 8.7.0 forward, use the 'POST' value and array inputs to enable advanced filtering. */
90
+ this.searchApiMethod = 'GET';
91
+ /**
92
+ * Filter the tasks. Display only tasks with names matching any of the supplied strings.
93
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
94
+ */
95
+ this.names = [];
96
+ /**
97
+ * Filter the tasks. Display only tasks with assignees whose usernames are present in the array.
98
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
99
+ */
100
+ this.assignees = [];
101
+ /**
102
+ * Filter the tasks. Display only tasks with provided statuses.
103
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
104
+ */
105
+ this.statuses = [];
106
+ /**
107
+ * Filter the tasks. Display only tasks under processes with provided definition names.
108
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
109
+ */
110
+ this.processDefinitionNames = [];
111
+ /**
112
+ * Filter the tasks. Display only tasks with Ids matching any of the supplied strings.
113
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
114
+ */
115
+ this.ids = [];
116
+ /**
117
+ * Filter the tasks. Display only tasks with parentTaskIds matching any of the supplied strings.
118
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
119
+ */
120
+ this.parentIds = [];
121
+ /**
122
+ * Filter the tasks. Display only tasks with processInstanceIds matching any of the supplied strings.
123
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
124
+ */
125
+ this.processInstanceIds = [];
126
+ /**
127
+ * Filter the tasks. Display only tasks under processes with provided names.
128
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
129
+ */
130
+ this.processNames = [];
131
+ /**
132
+ * Filter the tasks. Display only tasks with provided priorities.
133
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
134
+ */
135
+ this.priorities = [];
136
+ /**
137
+ * Filter the tasks. Display only tasks completed by users whose usernames are present in the array.
138
+ * This input will be used only if searchApiMethod input is provided with 'POST' value.
139
+ */
140
+ this.completedByUsers = [];
141
+ this.rows = [];
142
+ this.isReloadingSubject$ = new BehaviorSubject(false);
143
+ this.isLoading$ = combineLatest([this.isLoadingPreferences$, this.isReloadingSubject$]).pipe(map(([isLoadingPreferences, isReloading]) => isLoadingPreferences || isReloading));
144
+ this.fetchProcessesTrigger$ = new Subject();
145
+ combineLatest([this.isLoadingPreferences$, this.isColumnSchemaCreated$, this.fetchProcessesTrigger$])
146
+ .pipe(tap(() => this.isReloadingSubject$.next(true)), filter(([isLoadingPreferences, isColumnSchemaCreated]) => !isLoadingPreferences && !!isColumnSchemaCreated), switchMap(() => {
147
+ if (this.searchApiMethod === 'POST') {
148
+ const requestNode = this.createTaskListRequestNode();
149
+ return this.taskListCloudService.fetchTaskList(requestNode).pipe(take(1));
150
+ }
151
+ else {
152
+ const requestNode = this.createRequestNode();
153
+ this.requestNode = requestNode;
154
+ return this.taskListCloudService.getTaskByRequest(requestNode);
155
+ }
156
+ }), takeUntilDestroyed())
157
+ .subscribe({
158
+ next: (tasks) => {
159
+ const tasksWithVariables = tasks.list.entries.map((task) => ({
160
+ ...task,
161
+ variables: task.processVariables
162
+ }));
163
+ this.rows = this.viewModelCreator.mapVariablesByColumnTitle(tasksWithVariables, this.columns);
164
+ this.dataAdapter = new TasksListDatatableAdapter(this.rows, this.columns);
165
+ this.success.emit(tasks);
166
+ this.isReloadingSubject$.next(false);
167
+ this.pagination.next(tasks.list.pagination);
168
+ },
169
+ error: (error) => {
170
+ console.error(error);
171
+ this.error.emit(error);
172
+ this.isReloadingSubject$.next(false);
173
+ }
174
+ });
175
+ }
176
+ reload() {
177
+ this.isReloadingSubject$.next(true);
178
+ this.fetchProcessesTrigger$.next();
179
+ }
180
+ createTaskListRequestNode() {
181
+ const requestNode = {
182
+ appName: this.appName,
183
+ pagination: {
184
+ maxItems: this.size,
185
+ skipCount: this.skipCount
186
+ },
187
+ sorting: this.getTaskListRequestSorting(),
188
+ onlyStandalone: this.standalone,
189
+ name: this.names,
190
+ processDefinitionName: this.processDefinitionNames,
191
+ id: this.ids,
192
+ parentId: this.parentIds,
193
+ processName: this.processNames,
194
+ processInstanceId: this.processInstanceIds,
195
+ priority: this.priorities,
196
+ status: this.statuses,
197
+ completedBy: this.completedByUsers,
198
+ assignee: this.assignees,
199
+ createdFrom: this.createdFrom,
200
+ createdTo: this.createdTo,
201
+ lastModifiedFrom: this.lastModifiedFrom,
202
+ lastModifiedTo: this.lastModifiedTo,
203
+ dueDateFrom: this.dueDateFrom,
204
+ dueDateTo: this.dueDateTo,
205
+ completedFrom: this.completedFrom,
206
+ completedTo: this.completedTo,
207
+ processVariableKeys: this.getRequestNodeVariables(),
208
+ processVariableFilters: this.processVariableFilters ?? []
209
+ };
210
+ return new TaskListRequestModel(requestNode);
211
+ }
212
+ createRequestNode() {
213
+ const requestNode = {
214
+ appName: this.appName,
215
+ assignee: this.assignee,
216
+ id: this.id,
217
+ name: this.name,
218
+ environmentId: this.environmentId,
219
+ parentTaskId: this.parentTaskId,
220
+ processDefinitionName: this.processDefinitionName,
221
+ processDefinitionId: this.processDefinitionId,
222
+ processInstanceId: this.processInstanceId,
223
+ owner: this.owner,
224
+ priority: this.priority,
225
+ lastModifiedFrom: this.lastModifiedFrom,
226
+ lastModifiedTo: this.lastModifiedTo,
227
+ dueDateFrom: this.dueDateFrom,
228
+ dueDateTo: this.dueDateTo,
229
+ status: this.status,
230
+ dueDate: this.dueDate,
231
+ createdDate: this.createdDate,
232
+ createdFrom: this.createdFrom,
233
+ createdTo: this.createdTo,
234
+ maxItems: this.size,
235
+ skipCount: this.skipCount,
236
+ sorting: this.sorting,
237
+ standalone: this.standalone,
238
+ completedBy: this.completedBy,
239
+ completedFrom: this.completedFrom,
240
+ completedTo: this.completedTo,
241
+ completedDate: this.completedDate,
242
+ candidateGroupId: this.candidateGroupId,
243
+ variableKeys: this.getRequestNodeVariables()
244
+ };
245
+ return new TaskQueryCloudRequestModel(requestNode);
246
+ }
247
+ getRequestNodeVariables() {
248
+ const displayedVariableColumns = (this.columns ?? [])
249
+ .filter((column) => column.customData?.columnType === 'process-variable-column' && column.isHidden !== true)
250
+ .map((column) => {
251
+ const variableDefinitionsPayload = column.customData.variableDefinitionsPayload;
252
+ return variableDefinitionsPayload;
253
+ })
254
+ .reduce((allRequestKeys, requestKeys) => [...requestKeys, ...allRequestKeys], []);
255
+ return displayedVariableColumns.length ? displayedVariableColumns : undefined;
256
+ }
257
+ getTaskListRequestSorting() {
258
+ if (!this.sorting?.length) {
259
+ return new TaskListRequestSortingModel({
260
+ orderBy: this.defaultSorting.key,
261
+ direction: this.defaultSorting.direction,
262
+ isFieldProcessVariable: false
263
+ });
264
+ }
265
+ const orderBy = this.sorting[0]?.orderBy;
266
+ const direction = this.sorting[0]?.direction;
267
+ const orderByColumn = this.columnList?.columns.find((column) => column.key === orderBy);
268
+ const isFieldProcessVariable = orderByColumn?.customData?.columnType === 'process-variable-column';
269
+ if (isFieldProcessVariable) {
270
+ const processDefinitionKey = orderByColumn.customData.variableDefinitionsPayload[0].split('/')[0];
271
+ const variableName = orderByColumn.customData.variableDefinitionsPayload[0].split('/')[1];
272
+ return new TaskListRequestSortingModel({
273
+ orderBy: variableName,
274
+ direction,
275
+ isFieldProcessVariable: true,
276
+ processVariableData: {
277
+ processDefinitionKey,
278
+ type: orderByColumn.customData.variableType
279
+ }
280
+ });
281
+ }
282
+ else {
283
+ return new TaskListRequestSortingModel({ orderBy, direction, isFieldProcessVariable: false });
284
+ }
285
+ }
286
+ 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 }); }
287
+ 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: [
288
+ { provide: DateAdapter, useClass: AdfDateFnsAdapter },
289
+ { provide: MAT_DATE_FORMATS, useValue: MOMENT_DATE_FORMATS }
290
+ ], 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: "pipe", type: 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: i5.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 }); }
291
+ }
292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskListCloudComponent, decorators: [{
293
+ type: Component,
294
+ args: [{ selector: 'adf-cloud-task-list', standalone: true, imports: [
295
+ CommonModule,
296
+ ColumnsSelectorComponent,
297
+ MainMenuDataTableTemplateDirective,
298
+ TranslatePipe,
299
+ EmptyContentComponent,
300
+ NoContentTemplateDirective,
301
+ MatProgressSpinnerModule,
302
+ LoadingContentTemplateDirective,
303
+ DataTableComponent
304
+ ], providers: [
305
+ { provide: DateAdapter, useClass: AdfDateFnsAdapter },
306
+ { provide: MAT_DATE_FORMATS, useValue: MOMENT_DATE_FORMATS }
307
+ ], 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"] }]
308
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
309
+ type: Inject,
310
+ args: [TASK_LIST_CLOUD_TOKEN]
311
+ }] }, { type: i1.AppConfigService }, { type: i2.TaskCloudService }, { type: i1.UserPreferencesService }, { type: undefined, decorators: [{
312
+ type: Inject,
313
+ args: [TASK_LIST_PREFERENCES_SERVICE_TOKEN]
314
+ }] }, { type: i3.VariableMapperService }], propDecorators: { assignee: [{
315
+ type: Input
316
+ }], createdDate: [{
317
+ type: Input
318
+ }], createdFrom: [{
319
+ type: Input
320
+ }], createdTo: [{
321
+ type: Input
322
+ }], dueDate: [{
323
+ type: Input
324
+ }], lastModifiedFrom: [{
325
+ type: Input
326
+ }], lastModifiedTo: [{
327
+ type: Input
328
+ }], dueDateFrom: [{
329
+ type: Input
330
+ }], dueDateTo: [{
331
+ type: Input
332
+ }], id: [{
333
+ type: Input
334
+ }], name: [{
335
+ type: Input
336
+ }], environmentId: [{
337
+ type: Input
338
+ }], parentTaskId: [{
339
+ type: Input
340
+ }], processDefinitionName: [{
341
+ type: Input
342
+ }], processDefinitionId: [{
343
+ type: Input
344
+ }], processInstanceId: [{
345
+ type: Input
346
+ }], status: [{
347
+ type: Input
348
+ }], owner: [{
349
+ type: Input
350
+ }], priority: [{
351
+ type: Input
352
+ }], completedBy: [{
353
+ type: Input
354
+ }], standalone: [{
355
+ type: Input
356
+ }], completedDate: [{
357
+ type: Input
358
+ }], completedFrom: [{
359
+ type: Input
360
+ }], completedTo: [{
361
+ type: Input
362
+ }], candidateGroupId: [{
363
+ type: Input
364
+ }], searchApiMethod: [{
365
+ type: Input
366
+ }], names: [{
367
+ type: Input
368
+ }], assignees: [{
369
+ type: Input
370
+ }], statuses: [{
371
+ type: Input
372
+ }], processDefinitionNames: [{
373
+ type: Input
374
+ }], ids: [{
375
+ type: Input
376
+ }], parentIds: [{
377
+ type: Input
378
+ }], processInstanceIds: [{
379
+ type: Input
380
+ }], processNames: [{
381
+ type: Input
382
+ }], priorities: [{
383
+ type: Input
384
+ }], completedByUsers: [{
385
+ type: Input
386
+ }], processVariableFilters: [{
387
+ type: Input
388
+ }] } });
389
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWxpc3QvY29tcG9uZW50cy90YXNrLWxpc3QvdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWxpc3QvY29tcG9uZW50cy90YXNrLWxpc3QvdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQiwrQkFBK0IsRUFDL0Isa0NBQWtDLEVBQ2xDLG1CQUFtQixFQUNuQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3pCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHdEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFB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QkFRTixzQkFBc0I7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWRmRGF0ZUZuc0FkYXB0ZXIsXG4gICAgQXBwQ29uZmlnU2VydmljZSxcbiAgICBDb2x1bW5zU2VsZWN0b3JDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIEVtcHR5Q29udGVudENvbXBvbmVudCxcbiAgICBMb2FkaW5nQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIE1haW5NZW51RGF0YVRhYmxlVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgTU9NRU5UX0RBVEVfRk9STUFUUyxcbiAgICBOb0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBUYXNrTGlzdFJlcXVlc3RNb2RlbCwgVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLWNsb3VkLW1vZGVsJztcbmltcG9ydCB7IEJhc2VUYXNrTGlzdENsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS10YXNrLWxpc3QtY2xvdWQuY29tcG9uZW50JztcbmltcG9ydCB7IFRhc2tDbG91ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90YXNrLWNsb3VkLnNlcnZpY2UnO1xuaW1wb3J0IHsgVEFTS19MSVNUX0NMT1VEX1RPS0VOLCBUQVNLX0xJU1RfUFJFRkVSRU5DRVNfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2Nsb3VkLXRva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlZmVyZW5jZUNsb3VkU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3ByZWZlcmVuY2UtY2xvdWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhc2tMaXN0Q2xvdWRTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdGFzay1saXN0LWNsb3VkLnNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVmFyaWFibGVNYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdmFyaWFibGUtbWFwcGVyLnNldmljZSc7XG5pbXBvcnQgeyBQcm9jZXNzTGlzdERhdGFDb2x1bW5DdXN0b21EYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2RhdGEtY29sdW1uLWN1c3RvbS1kYXRhJztcbmltcG9ydCB7IFRhc2tDbG91ZE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3Rhc2stY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgUGFnaW5hdGVkRW50cmllcyB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgVGFza0luc3RhbmNlQ2xvdWRMaXN0Vmlld01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Rhc2stY2xvdWQtdmlldy5tb2RlbCc7XG5pbXBvcnQgeyBUYXNrc0xpc3REYXRhdGFibGVBZGFwdGVyIH0gZnJvbSAnLi9kYXRhdGFibGUvdGFzay1saXN0LWRhdGF0YWJsZS1hZGFwdGVyJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFRhc2tMaXN0UmVxdWVzdFNvcnRpbmdNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy90YXNrLWxpc3Qtc29ydGluZy5tb2RlbCc7XG5pbXBvcnQgeyBQcm9jZXNzVmFyaWFibGVGaWx0ZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9wcm9jZXNzLXZhcmlhYmxlLWZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5jb25zdCBQUkVTRVRfS0VZID0gJ2FkZi1jbG91ZC10YXNrLWxpc3QucHJlc2V0cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNsb3VkLXRhc2stbGlzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQ29sdW1uc1NlbGVjdG9yQ29tcG9uZW50LFxuICAgICAgICBNYWluTWVudURhdGFUYWJsZVRlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBUcmFuc2xhdGVQaXBlLFxuICAgICAgICBFbXB0eUNvbnRlbnRDb21wb25lbnQsXG4gICAgICAgIE5vQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgICAgIExvYWRpbmdDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIERhdGFUYWJsZUNvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBBZGZEYXRlRm5zQWRhcHRlciB9LFxuICAgICAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBNT01FTlRfREFURV9GT1JNQVRTIH1cbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YXNrLWxpc3QtY2xvdWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Rhc2stbGlzdC1jbG91ZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgVGFza0xpc3RDbG91ZENvbXBvbmVudCBleHRlbmRzIEJhc2VUYXNrTGlzdENsb3VkQ29tcG9uZW50PFByb2Nlc3NMaXN0RGF0YUNvbHVtbkN1c3RvbURhdGE+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgYXNzaWduZWUgb2YgdGhlIHByb2Nlc3MuIFBvc3NpYmxlIHZhbHVlcyBhcmU6IFwiYXNzaWduZWVcIiAodGhlIGN1cnJlbnQgdXNlciBpcyB0aGUgYXNzaWduZWUpLFxuICAgICAqIFwiY2FuZGlkYXRlXCIgKHRoZSBjdXJyZW50IHVzZXIgaXMgYSB0YXNrIGNhbmRpZGF0ZVwiLCBcImdyb3VwX3hcIiAodGhlIHRhc2sgaXMgYXNzaWduZWQgdG8gYSBncm91cFxuICAgICAqIHdoZXJlIHRoZSBjdXJyZW50IHVzZXIgaXMgYSBtZW1iZXIsIG5vIHZhbHVlICh0aGUgY3VycmVudCB1c2VyIGlzIGludm9sdmVkKS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFzc2lnbmVlOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3MgY3JlYXRlZCBvbiB0aGUgc3VwcGxpZWQgZGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNyZWF0ZWREYXRlOiBEYXRlO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIGNyZWF0ZWRGcm9tIGVxdWFsIHRvIHRoZSBzdXBwbGllZCBkYXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY3JlYXRlZEZyb206IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIGNyZWF0ZWRUbyBlcXVhbCB0byB0aGUgc3VwcGxpZWQgZGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNyZWF0ZWRUbzogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggZHVlRGF0ZSBlcXVhbCB0byB0aGUgc3VwcGxpZWQgZGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGR1ZURhdGU6IERhdGU7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggbGFzdE1vZGlmaWVkRnJvbSBlcXVhbCB0byB0aGUgc3VwcGxpZWQgZGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGxhc3RNb2RpZmllZEZyb206IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIGxhc3RNb2RpZmllZFRvIGVxdWFsIHRvIHRoZSBzdXBwbGllZCBkYXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFzdE1vZGlmaWVkVG86IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIGR1ZURhdGUgZ3JlYXRlciBvciBlcXVhbCB0aGFuIHRoZSBzdXBwbGllZCBkYXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZHVlRGF0ZUZyb206IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIGR1ZURhdGUgbGVzcyBvciBlcXVhbCB0byB0aGUgc3VwcGxpZWQgZGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGR1ZURhdGVUbzogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggaWQgZXF1YWwgdG8gdGhlIHN1cHBsaWVkIHZhbHVlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIHRoZSBzdXBwbGllZCBuYW1lLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcyB0byBkaXNwbGF5IG9ubHkgdGhlIG9uZXMgd2l0aCB0aGlzIGVudmlyb25tZW50IElELiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZW52aXJvbm1lbnRJZDogc3RyaW5nO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIHBhcmVudFRhc2tJZCBlcXVhbCB0byB0aGUgc3VwcGxpZWQgdmFsdWUuICovXG4gICAgQElucHV0KClcbiAgICBwYXJlbnRUYXNrSWQ6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIHByb2Nlc3NEZWZpbml0aW9uTmFtZSBlcXVhbCB0byB0aGUgc3VwcGxpZWQgdmFsdWUuICovXG4gICAgQElucHV0KClcbiAgICBwcm9jZXNzRGVmaW5pdGlvbk5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIHByb2Nlc3NEZWZpbml0aW9uSWQgZXF1YWwgdG8gdGhlIHN1cHBsaWVkIHZhbHVlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHJvY2Vzc0RlZmluaXRpb25JZDogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggcHJvY2Vzc0luc3RhbmNlSWQgZXF1YWwgdG8gdGhlIHN1cHBsaWVkIHZhbHVlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIHN0YXR1cyBlcXVhbCB0byB0aGUgc3VwcGxpZWQgdmFsdWUuICovXG4gICAgQElucHV0KClcbiAgICBzdGF0dXM6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIG93bmVyIGVxdWFsIHRvIHRoZSBzdXBwbGllZCB2YWx1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG93bmVyOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBwcmlvcml0eSBlcXVhbCB0byB0aGUgc3VwcGxpZWQgdmFsdWUuICovXG4gICAgQElucHV0KClcbiAgICBwcmlvcml0eTogbnVtYmVyO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIGNyZWF0ZWRCeSBlcXVhbCB0byB0aGUgc3VwcGxpZWQgdmFsdWUuICovXG4gICAgQElucHV0KClcbiAgICBjb21wbGV0ZWRCeTogbnVtYmVyO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0aGUgdGFza3MgdGhhdCBiZWxvbmcgdG8gYSBwcm9jZXNzIGluIGNhc2UgaXMgZmFsc2Ugb3IgdGFza3MgdGhhdCBkb2Vzbid0IGJlbG9uZyB0byBhIHByb2Nlc3MgaW4gY2FzZSBvZiB0cnVlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhbmRhbG9uZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIGNvbXBsZXRlZERhdGUgZXF1YWwgdG8gdGhlIHN1cHBsaWVkIGRhdGUuICovXG4gICAgQElucHV0KClcbiAgICBjb21wbGV0ZWREYXRlOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBjb21wbGV0ZWRGcm9tIGVxdWFsIHRvIHRoZSBzdXBwbGllZCBkYXRlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29tcGxldGVkRnJvbTogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggY29tcGxldGVkVG8gZXF1YWwgdG8gdGhlIHN1cHBsaWVkIGRhdGUuICovXG4gICAgQElucHV0KClcbiAgICBjb21wbGV0ZWRUbzogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggY2FuZGlkYXRlR3JvdXBzIGVxdWFsIHRvIHRoZSBzdXBwbGllZCB2YWx1ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNhbmRpZGF0ZUdyb3VwSWQ6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEZyb20gQWN0aXZpdGkgOC43LjAgZm9yd2FyZCwgdXNlIHRoZSAnUE9TVCcgdmFsdWUgYW5kIGFycmF5IGlucHV0cyB0byBlbmFibGUgYWR2YW5jZWQgZmlsdGVyaW5nLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VhcmNoQXBpTWV0aG9kOiAnR0VUJyB8ICdQT1NUJyA9ICdHRVQnO1xuXG4gICAgLyoqXG4gICAgICogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggbmFtZXMgbWF0Y2hpbmcgYW55IG9mIHRoZSBzdXBwbGllZCBzdHJpbmdzLlxuICAgICAqIFRoaXMgaW5wdXQgd2lsbCBiZSB1c2VkIG9ubHkgaWYgc2VhcmNoQXBpTWV0aG9kIGlucHV0IGlzIHByb3ZpZGVkIHdpdGggJ1BPU1QnIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBhc3NpZ25lZXMgd2hvc2UgdXNlcm5hbWVzIGFyZSBwcmVzZW50IGluIHRoZSBhcnJheS5cbiAgICAgKiBUaGlzIGlucHV0IHdpbGwgYmUgdXNlZCBvbmx5IGlmIHNlYXJjaEFwaU1ldGhvZCBpbnB1dCBpcyBwcm92aWRlZCB3aXRoICdQT1NUJyB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFzc2lnbmVlczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEZpbHRlciB0aGUgdGFza3MuIERpc3BsYXkgb25seSB0YXNrcyB3aXRoIHByb3ZpZGVkIHN0YXR1c2VzLlxuICAgICAqIFRoaXMgaW5wdXQgd2lsbCBiZSB1c2VkIG9ubHkgaWYgc2VhcmNoQXBpTWV0aG9kIGlucHV0IGlzIHByb3ZpZGVkIHdpdGggJ1BPU1QnIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdHVzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3MgdW5kZXIgcHJvY2Vzc2VzIHdpdGggcHJvdmlkZWQgZGVmaW5pdGlvbiBuYW1lcy5cbiAgICAgKiBUaGlzIGlucHV0IHdpbGwgYmUgdXNlZCBvbmx5IGlmIHNlYXJjaEFwaU1ldGhvZCBpbnB1dCBpcyBwcm92aWRlZCB3aXRoICdQT1NUJyB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NEZWZpbml0aW9uTmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBJZHMgbWF0Y2hpbmcgYW55IG9mIHRoZSBzdXBwbGllZCBzdHJpbmdzLlxuICAgICAqIFRoaXMgaW5wdXQgd2lsbCBiZSB1c2VkIG9ubHkgaWYgc2VhcmNoQXBpTWV0aG9kIGlucHV0IGlzIHByb3ZpZGVkIHdpdGggJ1BPU1QnIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggcGFyZW50VGFza0lkcyBtYXRjaGluZyBhbnkgb2YgdGhlIHN1cHBsaWVkIHN0cmluZ3MuXG4gICAgICogVGhpcyBpbnB1dCB3aWxsIGJlIHVzZWQgb25seSBpZiBzZWFyY2hBcGlNZXRob2QgaW5wdXQgaXMgcHJvdmlkZWQgd2l0aCAnUE9TVCcgdmFsdWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwYXJlbnRJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3Mgd2l0aCBwcm9jZXNzSW5zdGFuY2VJZHMgbWF0Y2hpbmcgYW55IG9mIHRoZSBzdXBwbGllZCBzdHJpbmdzLlxuICAgICAqIFRoaXMgaW5wdXQgd2lsbCBiZSB1c2VkIG9ubHkgaWYgc2VhcmNoQXBpTWV0aG9kIGlucHV0IGlzIHByb3ZpZGVkIHdpdGggJ1BPU1QnIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHJvY2Vzc0luc3RhbmNlSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHVuZGVyIHByb2Nlc3NlcyB3aXRoIHByb3ZpZGVkIG5hbWVzLlxuICAgICAqIFRoaXMgaW5wdXQgd2lsbCBiZSB1c2VkIG9ubHkgaWYgc2VhcmNoQXBpTWV0aG9kIGlucHV0IGlzIHByb3ZpZGVkIHdpdGggJ1BPU1QnIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHJvY2Vzc05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogRmlsdGVyIHRoZSB0YXNrcy4gRGlzcGxheSBvbmx5IHRhc2tzIHdpdGggcHJvdmlkZWQgcHJpb3JpdGllcy5cbiAgICAgKiBUaGlzIGlucHV0IHdpbGwgYmUgdXNlZCBvbmx5IGlmIHNlYXJjaEFwaU1ldGhvZCBpbnB1dCBpcyBwcm92aWRlZCB3aXRoICdQT1NUJyB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByaW9yaXRpZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgdGhlIHRhc2tzLiBEaXNwbGF5IG9ubHkgdGFza3MgY29tcGxldGVkIGJ5IHVzZXJzIHdob3NlIHVzZXJuYW1lcyBhcmUgcHJlc2VudCBpbiB0aGUgYXJyYXkuXG4gICAgICogVGhpcyBpbnB1dCB3aWxsIGJlIHVzZWQgb25seSBpZiBzZWFyY2hBcGlNZXRob2QgaW5wdXQgaXMgcHJvdmlkZWQgd2l0aCAnUE9TVCcgdmFsdWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjb21wbGV0ZWRCeVVzZXJzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogRmlsdGVyIHRoZSBwcm9jZXNzZXMuIERpc3BsYXkgb25seSBwcm9jZXNzZXMgd2l0aCBzcGVjaWZpYyBwcm9jZXNzIHZhcmlhYmxlcy5cbiAgICAgKiBUaGlzIGlucHV0IHdpbGwgYmUgdXNlZCBvbmx5IGlmIHNlYXJjaEFwaU1ldGhvZCBpbnB1dCBpcyBwcm92aWRlZCB3aXRoICdQT1NUJyB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NWYXJpYWJsZUZpbHRlcnM6IFByb2Nlc3NWYXJpYWJsZUZpbHRlck1vZGVsW107XG5cbiAgICByb3dzOiBUYXNrSW5zdGFuY2VDbG91ZExpc3RWaWV3TW9kZWxbXSA9IFtdO1xuICAgIGRhdGFBZGFwdGVyOiBUYXNrc0xpc3REYXRhdGFibGVBZGFwdGVyIHwgdW5kZWZpbmVkO1xuXG4gICAgcHJpdmF0ZSBpc1JlbG9hZGluZ1N1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgaXNMb2FkaW5nJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuaXNMb2FkaW5nUHJlZmVyZW5jZXMkLCB0aGlzLmlzUmVsb2FkaW5nU3ViamVjdCRdKS5waXBlKFxuICAgICAgICBtYXAoKFtpc0xvYWRpbmdQcmVmZXJlbmNlcywgaXNSZWxvYWRpbmddKSA9PiBpc0xvYWRpbmdQcmVmZXJlbmNlcyB8fCBpc1JlbG9hZGluZylcbiAgICApO1xuXG4gICAgcHJpdmF0ZSBmZXRjaFByb2Nlc3Nlc1RyaWdnZXIkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRBU0tfTElTVF9DTE9VRF9UT0tFTikgcHVibGljIHRhc2tMaXN0Q2xvdWRTZXJ2aWNlOiBUYXNrTGlzdENsb3VkU2VydmljZUludGVyZmFjZSxcbiAgICAgICAgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcbiAgICAgICAgdGFza0Nsb3VkU2VydmljZTogVGFza0Nsb3VkU2VydmljZSxcbiAgICAgICAgdXNlclByZWZlcmVuY2VzOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFRBU0tfTElTVF9QUkVGRVJFTkNFU19TRVJWSUNFX1RPS0VOKSBjbG91ZFByZWZlcmVuY2VTZXJ2aWNlOiBQcmVmZXJlbmNlQ2xvdWRTZXJ2aWNlSW50ZXJmYWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdNb2RlbENyZWF0b3I6IFZhcmlhYmxlTWFwcGVyU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihhcHBDb25maWdTZXJ2aWNlLCB0YXNrQ2xvdWRTZXJ2aWNlLCB1c2VyUHJlZmVyZW5jZXMsIFBSRVNFVF9LRVksIGNsb3VkUHJlZmVyZW5jZVNlcnZpY2UpO1xuXG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuaXNMb2FkaW5nUHJlZmVyZW5jZXMkLCB0aGlzLmlzQ29sdW1uU2NoZW1hQ3JlYXRlZCQsIHRoaXMuZmV0Y2hQcm9jZXNzZXNUcmlnZ2VyJF0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5pc1JlbG9hZGluZ1N1YmplY3QkLm5leHQodHJ1ZSkpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoW2lzTG9hZGluZ1ByZWZlcmVuY2VzLCBpc0NvbHVtblNjaGVtYUNyZWF0ZWRdKSA9PiAhaXNMb2FkaW5nUHJlZmVyZW5jZXMgJiYgISFpc0NvbHVtblNjaGVtYUNyZWF0ZWQpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlYXJjaEFwaU1ldGhvZCA9PT0gJ1BPU1QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0Tm9kZSA9IHRoaXMuY3JlYXRlVGFza0xpc3RSZXF1ZXN0Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGFza0xpc3RDbG91ZFNlcnZpY2UuZmV0Y2hUYXNrTGlzdChyZXF1ZXN0Tm9kZSkucGlwZSh0YWtlKDEpKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3ROb2RlID0gdGhpcy5jcmVhdGVSZXF1ZXN0Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0Tm9kZSA9IHJlcXVlc3ROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudGFza0xpc3RDbG91ZFNlcnZpY2UuZ2V0VGFza0J5UmVxdWVzdChyZXF1ZXN0Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKHRhc2tzOiB7IGxpc3Q6IFBhZ2luYXRlZEVudHJpZXM8VGFza0Nsb3VkTW9kZWw+IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFza3NXaXRoVmFyaWFibGVzID0gdGFza3MubGlzdC5lbnRyaWVzLm1hcCgodGFzaykgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRhc2ssXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHRhc2sucHJvY2Vzc1ZhcmlhYmxlc1xuICAgICAgICAgICAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3dzID0gdGhpcy52aWV3TW9kZWxDcmVhdG9yLm1hcFZhcmlhYmxlc0J5Q29sdW1uVGl0bGUodGFza3NXaXRoVmFyaWFibGVzLCB0aGlzLmNvbHVtbnMpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YUFkYXB0ZXIgPSBuZXcgVGFza3NMaXN0RGF0YXRhYmxlQWRhcHRlcih0aGlzLnJvd3MsIHRoaXMuY29sdW1ucyk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGFza3MpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVsb2FkaW5nU3ViamVjdCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbi5uZXh0KHRhc2tzLmxpc3QucGFnaW5hdGlvbik7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVsb2FkaW5nU3ViamVjdCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVsb2FkKCkge1xuICAgICAgICB0aGlzLmlzUmVsb2FkaW5nU3ViamVjdCQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5mZXRjaFByb2Nlc3Nlc1RyaWdnZXIkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVRhc2tMaXN0UmVxdWVzdE5vZGUoKTogVGFza0xpc3RSZXF1ZXN0TW9kZWwge1xuICAgICAgICBjb25zdCByZXF1ZXN0Tm9kZTogVGFza0xpc3RSZXF1ZXN0TW9kZWwgPSB7XG4gICAgICAgICAgICBhcHBOYW1lOiB0aGlzLmFwcE5hbWUsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgbWF4SXRlbXM6IHRoaXMuc2l6ZSxcbiAgICAgICAgICAgICAgICBza2lwQ291bnQ6IHRoaXMuc2tpcENvdW50XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc29ydGluZzogdGhpcy5nZXRUYXNrTGlzdFJlcXVlc3RTb3J0aW5nKCksXG4gICAgICAgICAgICBvbmx5U3RhbmRhbG9uZTogdGhpcy5zdGFuZGFsb25lLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lcyxcbiAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uTmFtZTogdGhpcy5wcm9jZXNzRGVmaW5pdGlvbk5hbWVzLFxuICAgICAgICAgICAgaWQ6IHRoaXMuaWRzLFxuICAgICAgICAgICAgcGFyZW50SWQ6IHRoaXMucGFyZW50SWRzLFxuICAgICAgICAgICAgcHJvY2Vzc05hbWU6IHRoaXMucHJvY2Vzc05hbWVzLFxuICAgICAgICAgICAgcHJvY2Vzc0luc3RhbmNlSWQ6IHRoaXMucHJvY2Vzc0luc3RhbmNlSWRzLFxuICAgICAgICAgICAgcHJpb3JpdHk6IHRoaXMucHJpb3JpdGllcyxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXNlcyxcbiAgICAgICAgICAgIGNvbXBsZXRlZEJ5OiB0aGlzLmNvbXBsZXRlZEJ5VXNlcnMsXG4gICAgICAgICAgICBhc3NpZ25lZTogdGhpcy5hc3NpZ25lZXMsXG4gICAgICAgICAgICBjcmVhdGVkRnJvbTogdGhpcy5jcmVhdGVkRnJvbSxcbiAgICAgICAgICAgIGNyZWF0ZWRUbzogdGhpcy5jcmVhdGVkVG8sXG4gICAgICAgICAgICBsYXN0TW9kaWZpZWRGcm9tOiB0aGlzLmxhc3RNb2RpZmllZEZyb20sXG4gICAgICAgICAgICBsYXN0TW9kaWZpZWRUbzogdGhpcy5sYXN0TW9kaWZpZWRUbyxcbiAgICAgICAgICAgIGR1ZURhdGVGcm9tOiB0aGlzLmR1ZURhdGVGcm9tLFxuICAgICAgICAgICAgZHVlRGF0ZVRvOiB0aGlzLmR1ZURhdGVUbyxcbiAgICAgICAgICAgIGNvbXBsZXRlZEZyb206IHRoaXMuY29tcGxldGVkRnJvbSxcbiAgICAgICAgICAgIGNvbXBsZXRlZFRvOiB0aGlzLmNvbXBsZXRlZFRvLFxuICAgICAgICAgICAgcHJvY2Vzc1ZhcmlhYmxlS2V5czogdGhpcy5nZXRSZXF1ZXN0Tm9kZVZhcmlhYmxlcygpLFxuICAgICAgICAgICAgcHJvY2Vzc1ZhcmlhYmxlRmlsdGVyczogdGhpcy5wcm9jZXNzVmFyaWFibGVGaWx0ZXJzID8/IFtdXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUYXNrTGlzdFJlcXVlc3RNb2RlbChyZXF1ZXN0Tm9kZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVSZXF1ZXN0Tm9kZSgpOiBUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3ROb2RlID0ge1xuICAgICAgICAgICAgYXBwTmFtZTogdGhpcy5hcHBOYW1lLFxuICAgICAgICAgICAgYXNzaWduZWU6IHRoaXMuYXNzaWduZWUsXG4gICAgICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIGVudmlyb25tZW50SWQ6IHRoaXMuZW52aXJvbm1lbnRJZCxcbiAgICAgICAgICAgIHBhcmVudFRhc2tJZDogdGhpcy5wYXJlbnRUYXNrSWQsXG4gICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbk5hbWU6IHRoaXMucHJvY2Vzc0RlZmluaXRpb25OYW1lLFxuICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25JZDogdGhpcy5wcm9jZXNzRGVmaW5pdGlvbklkLFxuICAgICAgICAgICAgcHJvY2Vzc0luc3RhbmNlSWQ6IHRoaXMucHJvY2Vzc0luc3RhbmNlSWQsXG4gICAgICAgICAgICBvd25lcjogdGhpcy5vd25lcixcbiAgICAgICAgICAgIHByaW9yaXR5OiB0aGlzLnByaW9yaXR5LFxuICAgICAgICAgICAgbGFzdE1vZGlmaWVkRnJvbTogdGhpcy5sYXN0TW9kaWZpZWRGcm9tLFxuICAgICAgICAgICAgbGFzdE1vZGlmaWVkVG86IHRoaXMubGFzdE1vZGlmaWVkVG8sXG4gICAgICAgICAgICBkdWVEYXRlRnJvbTogdGhpcy5kdWVEYXRlRnJvbSxcbiAgICAgICAgICAgIGR1ZURhdGVUbzogdGhpcy5kdWVEYXRlVG8sXG4gICAgICAgICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgICAgICAgICAgZHVlRGF0ZTogdGhpcy5kdWVEYXRlLFxuICAgICAgICAgICAgY3JlYXRlZERhdGU6IHRoaXMuY3JlYXRlZERhdGUsXG4gICAgICAgICAgICBjcmVhdGVkRnJvbTogdGhpcy5jcmVhdGVkRnJvbSxcbiAgICAgICAgICAgIGNyZWF0ZWRUbzogdGhpcy5jcmVhdGVkVG8sXG4gICAgICAgICAgICBtYXhJdGVtczogdGhpcy5zaXplLFxuICAgICAgICAgICAgc2tpcENvdW50OiB0aGlzLnNraXBDb3VudCxcbiAgICAgICAgICAgIHNvcnRpbmc6IHRoaXMuc29ydGluZyxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6IHRoaXMuc3RhbmRhbG9uZSxcbiAgICAgICAgICAgIGNvbXBsZXRlZEJ5OiB0aGlzLmNvbXBsZXRlZEJ5LFxuICAgICAgICAgICAgY29tcGxldGVkRnJvbTogdGhpcy5jb21wbGV0ZWRGcm9tLFxuICAgICAgICAgICAgY29tcGxldGVkVG86IHRoaXMuY29tcGxldGVkVG8sXG4gICAgICAgICAgICBjb21wbGV0ZWREYXRlOiB0aGlzLmNvbXBsZXRlZERhdGUsXG4gICAgICAgICAgICBjYW5kaWRhdGVHcm91cElkOiB0aGlzLmNhbmRpZGF0ZUdyb3VwSWQsXG4gICAgICAgICAgICB2YXJpYWJsZUtleXM6IHRoaXMuZ2V0UmVxdWVzdE5vZGVWYXJpYWJsZXMoKVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBuZXcgVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwocmVxdWVzdE5vZGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UmVxdWVzdE5vZGVWYXJpYWJsZXMoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBkaXNwbGF5ZWRWYXJpYWJsZUNvbHVtbnM6IHN0cmluZ1tdID0gKHRoaXMuY29sdW1ucyA/PyBbXSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGNvbHVtbikgPT4gY29sdW1uLmN1c3RvbURhdGE/LmNvbHVtblR5cGUgPT09ICdwcm9jZXNzLXZhcmlhYmxlLWNvbHVtbicgJiYgY29sdW1uLmlzSGlkZGVuICE9PSB0cnVlKVxuICAgICAgICAgICAgLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGVEZWZpbml0aW9uc1BheWxvYWQgPSBjb2x1bW4uY3VzdG9tRGF0YS52YXJpYWJsZURlZmluaXRpb25zUGF5bG9hZDtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFyaWFibGVEZWZpbml0aW9uc1BheWxvYWQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnJlZHVjZSgoYWxsUmVxdWVzdEtleXMsIHJlcXVlc3RLZXlzKSA9PiBbLi4ucmVxdWVzdEtleXMsIC4uLmFsbFJlcXVlc3RLZXlzXSwgW10pO1xuXG4gICAgICAgIHJldHVybiBkaXNwbGF5ZWRWYXJpYWJsZUNvbHVtbnMubGVuZ3RoID8gZGlzcGxheWVkVmFyaWFibGVDb2x1bW5zIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGFza0xpc3RSZXF1ZXN0U29ydGluZygpOiBUYXNrTGlzdFJlcXVlc3RTb3J0aW5nTW9kZWwge1xuICAgICAgICBpZiAoIXRoaXMuc29ydGluZz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFRhc2tMaXN0UmVxdWVzdFNvcnRpbmdNb2RlbCh7XG4gICAgICAgICAgICAgICAgb3JkZXJCeTogdGhpcy5kZWZhdWx0U29ydGluZy5rZXksXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLmRlZmF1bHRTb3J0aW5nLmRpcmVjdGlvbixcbiAgICAgICAgICAgICAgICBpc0ZpZWxkUHJvY2Vzc1ZhcmlhYmxlOiBmYWxzZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvcmRlckJ5ID0gdGhpcy5zb3J0aW5nWzBdPy5vcmRlckJ5O1xuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLnNvcnRpbmdbMF0/LmRpcmVjdGlvbjtcbiAgICAgICAgY29uc3Qgb3JkZXJCeUNvbHVtbiA9IHRoaXMuY29sdW1uTGlzdD8uY29sdW1ucy5maW5kKChjb2x1bW4pID0+IGNvbHVtbi5rZXkgPT09IG9yZGVyQnkpO1xuICAgICAgICBjb25zdCBpc0ZpZWxkUHJvY2Vzc1ZhcmlhYmxlID0gb3JkZXJCeUNvbHVtbj8uY3VzdG9tRGF0YT8uY29sdW1uVHlwZSA9PT0gJ3Byb2Nlc3MtdmFyaWFibGUtY29sdW1uJztcblxuICAgICAgICBpZiAoaXNGaWVsZFByb2Nlc3NWYXJpYWJsZSkge1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc0RlZmluaXRpb25LZXkgPSBvcmRlckJ5Q29sdW1uLmN1c3RvbURhdGEudmFyaWFibGVEZWZpbml0aW9uc1BheWxvYWRbMF0uc3BsaXQoJy8nKVswXTtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IG9yZGVyQnlDb2x1bW4uY3VzdG9tRGF0YS52YXJpYWJsZURlZmluaXRpb25zUGF5bG9hZFswXS5zcGxpdCgnLycpWzFdO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYXNrTGlzdFJlcXVlc3RTb3J0aW5nTW9kZWwoe1xuICAgICAgICAgICAgICAgIG9yZGVyQnk6IHZhcmlhYmxlTmFtZSxcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgaXNGaWVsZFByb2Nlc3NWYXJpYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzVmFyaWFibGVEYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uS2V5LFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBvcmRlckJ5Q29sdW1uLmN1c3RvbURhdGEudmFyaWFibGVUeXBlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFRhc2tMaXN0UmVxdWVzdFNvcnRpbmdNb2RlbCh7IG9yZGVyQnksIGRpcmVjdGlvbiwgaXNGaWVsZFByb2Nlc3NWYXJpYWJsZTogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIXJvd3NcIj57eyAnQURGX0NMT1VEX1RBU0tfTElTVC5GSUxURVJTLk1FU1NBR0VTLk5PTkUnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwicm93c1wiPlxuICAgICAgICA8YWRmLWRhdGF0YWJsZVxuICAgICAgICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgICAgIFtkYXRhXT1cImRhdGFBZGFwdGVyXCJcbiAgICAgICAgICAgIFtsb2FkaW5nXT1cImlzTG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICBbc29ydGluZ109XCJmb3JtYXR0ZWRTb3J0aW5nXCJcbiAgICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJtdWx0aXNlbGVjdFwiXG4gICAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlXCJcbiAgICAgICAgICAgIFtzdGlja3lIZWFkZXJdPVwic3RpY2t5SGVhZGVyXCJcbiAgICAgICAgICAgIFthY3Rpb25zXT1cInNob3dBY3Rpb25zXCJcbiAgICAgICAgICAgIFthY3Rpb25zUG9zaXRpb25dPVwiYWN0aW9uc1Bvc2l0aW9uXCJcbiAgICAgICAgICAgIFtjb250ZXh0TWVudV09XCJzaG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgW3Jlc29sdmVyRm5dPVwiYm91bmRSZXBsYWNlUHJpb3JpdHlWYWx1ZXNcIlxuICAgICAgICAgICAgW3Nob3dQcm92aWRlZEFjdGlvbnNdPVwic2hvd1Byb3ZpZGVkQWN0aW9uc1wiXG4gICAgICAgICAgICBbc2hvd01haW5EYXRhdGFibGVBY3Rpb25zXT1cInNob3dNYWluRGF0YXRhYmxlQWN0aW9uc1wiXG4gICAgICAgICAgICBbaXNSZXNpemluZ0VuYWJsZWRdPVwiaXNSZXNpemluZ0VuYWJsZWRcIlxuICAgICAgICAgICAgKHNob3dSb3dBY3Rpb25zTWVudSk9XCJvblNob3dSb3dBY3Rpb25zTWVudSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzaG93Um93Q29udGV4dE1lbnUpPVwib25TaG93Um93Q29udGV4dE1lbnUoJGV2ZW50KVwiXG4gICAgICAgICAgICAoZXhlY3V0ZVJvd0FjdGlvbik9XCJvbkV4ZWN1dGVSb3dBY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAocm93LXNlbGVjdCk9XCJvblJvd1NlbGVjdCgkYW55KCRldmVudCkpXCJcbiAgICAgICAgICAgIChyb3ctdW5zZWxlY3QpPVwib25Sb3dVbnNlbGVjdCgkYW55KCRldmVudCkpXCJcbiAgICAgICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKHJvdy1rZXl1cCk9XCJvblJvd0tleVVwKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKHNvcnRpbmctY2hhbmdlZCk9XCJvblNvcnRpbmdDaGFuZ2VkKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKGNvbHVtbk9yZGVyQ2hhbmdlZCk9XCJvbkNvbHVtbk9yZGVyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChjb2x1bW5zV2lkdGhDaGFuZ2VkKT1cIm9uQ29sdW1uc1dpZHRoQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxhZGYtbG9hZGluZy1jb250ZW50LXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1jbG91ZC10YXNrLWxpc3QtbG9hZGluZy1tYXJnaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIidwcmltYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCInaW5kZXRlcm1pbmF0ZSdcIiAvPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2FkZi1sb2FkaW5nLWNvbnRlbnQtdGVtcGxhdGU+XG4gICAgICAgICAgICA8YWRmLW5vLWNvbnRlbnQtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8YWRmLWVtcHR5LWNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWVtcHR5Q3VzdG9tQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiYXNzaWdubWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FERl9DTE9VRF9UQVNLX0xJU1QuTElTVC5NRVNTQUdFUy5USVRMRScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N1YnRpdGxlXT1cIidBREZfQ0xPVURfVEFTS19MSVNULkxJU1QuTUVTU0FHRVMuU1VCVElUTEUnIHwgdHJhbnNsYXRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYWRmLWN1c3RvbS1lbXB0eS1jb250ZW50LXRlbXBsYXRlXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9hZGYtbm8tY29udGVudC10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPGFkZi1tYWluLW1lbnUtZGF0YXRhYmxlLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbWFpbk1lbnVUcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICA8YWRmLWRhdGF0YWJsZS1jb2x1bW4tc2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21haW5NZW51VHJpZ2dlcl09XCJtYWluTWVudVRyaWdnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHN1Ym1pdENvbHVtbnNWaXNpYmlsaXR5KT1cIm9uQ29sdW1uc1Zpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvYWRmLW1haW4tbWVudS1kYXRhdGFibGUtdGVtcGxhdGU+XG4gICAgICAgIDwvYWRmLWRhdGF0YWJsZT5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -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=