@alfresco/adf-process-services-cloud 8.1.0-15113180840 → 8.1.0-15139516875

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 +126 -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 +164 -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 +416 -0
  18. package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +54 -0
  19. package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +36 -0
  20. package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +250 -0
  21. package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +137 -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 +121 -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 +190 -0
  26. package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +86 -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 +464 -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 +47 -0
  31. package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +83 -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 +54 -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 +117 -0
  37. package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +188 -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 +422 -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 +497 -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 +802 -0
  76. package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +59 -0
  77. package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +290 -0
  78. package/esm2022/lib/process/process-filters/models/process-filter-cloud.model.mjs +169 -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 +405 -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 +594 -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 +479 -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 +161 -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 +206 -0
  134. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +318 -0
  135. package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +147 -0
  136. package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +143 -0
  137. package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +73 -0
  138. package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +256 -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 +284 -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 +79 -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 +116 -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 +390 -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 +347 -346
  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,331 @@
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 { ContentChild, DestroyRef, Directive, EventEmitter, inject, Input, Output } from '@angular/core';
18
+ import { AppConfigService, CustomEmptyContentTemplateDirective, DataTableSchema, UserPreferencesService, UserPreferenceValues } from '@alfresco/adf-core';
19
+ import { BehaviorSubject } from 'rxjs';
20
+ import { TaskListCloudSortingModel } from '../../../models/task-list-sorting.model';
21
+ import { map, take } from 'rxjs/operators';
22
+ import { TaskCloudService } from '../../services/task-cloud.service';
23
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
24
+ import * as i0 from "@angular/core";
25
+ import * as i1 from "@alfresco/adf-core";
26
+ import * as i2 from "../../services/task-cloud.service";
27
+ // eslint-disable-next-line no-shadow
28
+ export var TasksListCloudPreferences;
29
+ (function (TasksListCloudPreferences) {
30
+ TasksListCloudPreferences["columnOrder"] = "tasks-list-cloud-columns-order";
31
+ TasksListCloudPreferences["columnsVisibility"] = "tasks-list-cloud-columns-visibility";
32
+ TasksListCloudPreferences["columnsWidths"] = "tasks-list-cloud-columns-widths";
33
+ })(TasksListCloudPreferences || (TasksListCloudPreferences = {}));
34
+ const taskPresetsCloudDefaultModel = {
35
+ default: [
36
+ {
37
+ id: 'name',
38
+ key: 'name',
39
+ type: 'text',
40
+ title: 'ADF_CLOUD_TASK_LIST.PROPERTIES.NAME',
41
+ sortable: true
42
+ },
43
+ {
44
+ id: 'created',
45
+ key: 'created',
46
+ type: 'text',
47
+ title: 'ADF_CLOUD_TASK_LIST.PROPERTIES.CREATED',
48
+ cssClass: 'hidden',
49
+ sortable: true
50
+ },
51
+ {
52
+ id: 'assignee',
53
+ key: 'assignee',
54
+ type: 'text',
55
+ title: 'ADF_CLOUD_TASK_LIST.PROPERTIES.ASSIGNEE',
56
+ cssClass: 'hidden',
57
+ sortable: true
58
+ }
59
+ ]
60
+ };
61
+ /* eslint-disable @typescript-eslint/brace-style */
62
+ // eslint-disable-next-line @angular-eslint/directive-class-suffix
63
+ export class BaseTaskListCloudComponent extends DataTableSchema {
64
+ constructor(appConfigService, taskCloudService, userPreferences, presetKey, cloudPreferenceService) {
65
+ super(appConfigService, presetKey, taskPresetsCloudDefaultModel);
66
+ this.taskCloudService = taskCloudService;
67
+ this.userPreferences = userPreferences;
68
+ this.cloudPreferenceService = cloudPreferenceService;
69
+ /** The name of the application. */
70
+ this.appName = '';
71
+ /**
72
+ * Row selection mode. Can be none, `single` or `multiple`. For `multiple` mode,
73
+ * you can use the Cmd (macOS) or Ctrl (Win) modifier key to toggle selection for
74
+ * multiple rows.
75
+ */
76
+ this.selectionMode = 'single'; // none|single|multiple
77
+ /** Toggles multiple row selection, rendering a checkbox at the beginning of each row. */
78
+ this.multiselect = false;
79
+ /** Toggles the sticky header mode. */
80
+ this.stickyHeader = false;
81
+ /** Toggles the data actions column. */
82
+ this.showActions = false;
83
+ /** Position of the actions dropdown menu. Can be "left" or "right". */
84
+ this.actionsPosition = 'right'; // left|right
85
+ /** Toggles custom context menu for the component. */
86
+ this.showContextMenu = false;
87
+ /** Toggles the provided actions. */
88
+ this.showProvidedActions = false;
89
+ /** Toggles main datatable actions. */
90
+ this.showMainDatatableActions = false;
91
+ /** Toggles main datatable column resizing feature. */
92
+ this.isResizingEnabled = false;
93
+ /** Emitted before the context menu is displayed for a row. */
94
+ this.showRowContextMenu = new EventEmitter();
95
+ /** Emitted before the actions menu is displayed for a row. */
96
+ this.showRowActionsMenu = new EventEmitter();
97
+ /** Emitted when the user executes a row action. */
98
+ this.executeRowAction = new EventEmitter();
99
+ /** Emitted when a task in the list is clicked */
100
+ this.rowClick = new EventEmitter();
101
+ /** Emitted when rows are selected/unselected */
102
+ this.rowsSelected = new EventEmitter();
103
+ /** Emitted when the task list is loaded */
104
+ this.success = new EventEmitter();
105
+ /** Emitted when an error occurs. */
106
+ this.error = new EventEmitter();
107
+ this.rows = [];
108
+ this.skipCount = 0;
109
+ this.defaultSorting = { key: 'startDate', direction: 'desc' };
110
+ this.isLoadingPreferences$ = new BehaviorSubject(true);
111
+ this.destroyRef = inject(DestroyRef);
112
+ this.size = userPreferences.paginationSize;
113
+ this.pagination = new BehaviorSubject({
114
+ maxItems: this.size,
115
+ skipCount: 0,
116
+ totalItems: 0
117
+ });
118
+ this.boundReplacePriorityValues = this.replacePriorityValues.bind(this);
119
+ }
120
+ ngOnInit() {
121
+ this.userPreferences
122
+ .select(UserPreferenceValues.PaginationSize)
123
+ .pipe(takeUntilDestroyed(this.destroyRef))
124
+ .subscribe((pageSize) => (this.size = pageSize));
125
+ }
126
+ ngOnChanges(changes) {
127
+ if (changes['sorting']) {
128
+ this.formatSorting(changes['sorting'].currentValue);
129
+ }
130
+ if (changes['appName']) {
131
+ this.retrieveTasksPreferences();
132
+ }
133
+ this.reload();
134
+ }
135
+ retrieveTasksPreferences() {
136
+ this.isLoadingPreferences$.next(true);
137
+ this.cloudPreferenceService
138
+ .getPreferences(this.appName)
139
+ .pipe(take(1), map((preferences) => {
140
+ const preferencesList = preferences?.list?.entries ?? [];
141
+ const columnsOrder = preferencesList.find((preference) => preference.entry.key === TasksListCloudPreferences.columnOrder);
142
+ const columnsVisibility = preferencesList.find((preference) => preference.entry.key === TasksListCloudPreferences.columnsVisibility);
143
+ const columnsWidths = preferencesList.find((preference) => preference.entry.key === TasksListCloudPreferences.columnsWidths);
144
+ return {
145
+ columnsOrder: columnsOrder ? JSON.parse(columnsOrder.entry.value) : undefined,
146
+ columnsVisibility: columnsVisibility ? JSON.parse(columnsVisibility.entry.value) : undefined,
147
+ columnsWidths: columnsWidths ? JSON.parse(columnsWidths.entry.value) : undefined
148
+ };
149
+ }))
150
+ .subscribe(({ columnsOrder, columnsVisibility, columnsWidths }) => {
151
+ if (columnsOrder) {
152
+ this.columnsOrder = columnsOrder;
153
+ }
154
+ if (columnsVisibility) {
155
+ this.columnsVisibility = columnsVisibility;
156
+ }
157
+ if (columnsWidths) {
158
+ this.columnsWidths = columnsWidths;
159
+ }
160
+ this.createDatatableSchema();
161
+ this.createColumns();
162
+ this.isLoadingPreferences$.next(false);
163
+ }, (error) => {
164
+ this.error.emit(error);
165
+ this.isLoadingPreferences$.next(false);
166
+ });
167
+ }
168
+ ngAfterContentInit() {
169
+ this.retrieveTasksPreferences();
170
+ }
171
+ isListEmpty() {
172
+ return !this.rows || this.rows.length === 0;
173
+ }
174
+ /**
175
+ * Resets the pagination values
176
+ */
177
+ resetPagination() {
178
+ this.skipCount = 0;
179
+ this.size = this.userPreferences.paginationSize;
180
+ this.pagination.next({
181
+ skipCount: 0,
182
+ maxItems: this.size
183
+ });
184
+ }
185
+ /**
186
+ * Resets the pagination values and
187
+ * Reloads the task list
188
+ *
189
+ * @param pagination Pagination values to be set
190
+ */
191
+ updatePagination(pagination) {
192
+ this.size = pagination.maxItems;
193
+ this.skipCount = pagination.skipCount;
194
+ this.pagination.next(pagination);
195
+ this.reload();
196
+ }
197
+ onSortingChanged(event) {
198
+ this.setSorting(event.detail);
199
+ this.formatSorting(this.sorting);
200
+ this.reload();
201
+ }
202
+ onRowClick(item) {
203
+ this.currentInstanceId = item.value.getValue('id');
204
+ this.rowClick.emit(this.currentInstanceId);
205
+ }
206
+ onRowSelect(event) {
207
+ this.selectedInstances = [...event.detail.selection];
208
+ this.rowsSelected.emit(this.selectedInstances);
209
+ }
210
+ onRowUnselect(event) {
211
+ this.selectedInstances = [...event.detail.selection];
212
+ this.rowsSelected.emit(this.selectedInstances);
213
+ }
214
+ onRowKeyUp(event) {
215
+ if (event.detail.keyboardEvent.key === 'Enter') {
216
+ event.preventDefault();
217
+ this.currentInstanceId = event.detail.row.getValue('id');
218
+ this.rowClick.emit(this.currentInstanceId);
219
+ }
220
+ }
221
+ onShowRowActionsMenu(event) {
222
+ this.showRowActionsMenu.emit(event);
223
+ }
224
+ onShowRowContextMenu(event) {
225
+ this.showRowContextMenu.emit(event);
226
+ }
227
+ onExecuteRowAction(row) {
228
+ this.executeRowAction.emit(row);
229
+ }
230
+ onColumnOrderChanged(columnsWithNewOrder) {
231
+ this.columnsOrder = columnsWithNewOrder.map((column) => column.id);
232
+ this.createColumns();
233
+ if (this.appName) {
234
+ this.cloudPreferenceService.updatePreference(this.appName, TasksListCloudPreferences.columnOrder, this.columnsOrder);
235
+ }
236
+ }
237
+ onColumnsVisibilityChange(columns) {
238
+ this.columnsVisibility = columns.reduce((visibleColumnsMap, column) => {
239
+ if (column.isHidden !== undefined) {
240
+ visibleColumnsMap[column.id] = !column.isHidden;
241
+ }
242
+ return visibleColumnsMap;
243
+ }, {});
244
+ this.createColumns();
245
+ this.createDatatableSchema();
246
+ if (this.appName) {
247
+ this.cloudPreferenceService.updatePreference(this.appName, TasksListCloudPreferences.columnsVisibility, this.columnsVisibility);
248
+ }
249
+ }
250
+ onColumnsWidthChanged(columns) {
251
+ const newColumnsWidths = columns.reduce((widthsColumnsMap, column) => {
252
+ if (column.width) {
253
+ widthsColumnsMap[column.id] = Math.ceil(column.width);
254
+ }
255
+ return widthsColumnsMap;
256
+ }, {});
257
+ this.columnsWidths = { ...this.columnsWidths, ...newColumnsWidths };
258
+ this.createColumns();
259
+ if (this.appName) {
260
+ this.cloudPreferenceService.updatePreference(this.appName, TasksListCloudPreferences.columnsWidths, this.columnsWidths);
261
+ }
262
+ }
263
+ setSorting(sortDetail) {
264
+ const sorting = sortDetail
265
+ ? {
266
+ orderBy: sortDetail.sortingKey || sortDetail.key,
267
+ direction: sortDetail.direction.toUpperCase()
268
+ }
269
+ : { ...this.defaultSorting };
270
+ this.sorting = [new TaskListCloudSortingModel(sorting)];
271
+ }
272
+ formatSorting(sorting) {
273
+ this.formattedSorting = this.isValidSorting(sorting) ? [sorting[0].orderBy, sorting[0].direction.toLocaleLowerCase()] : null;
274
+ }
275
+ isValidSorting(sorting) {
276
+ return sorting?.length && sorting[0].orderBy && sorting[0].direction;
277
+ }
278
+ replacePriorityValues(row, column) {
279
+ return column.key.split('.').reduce((source, key) => {
280
+ if (key === 'priority' && source && typeof source[key] === 'number') {
281
+ return (source[key] = this.taskCloudService.getPriorityLabel(source[key]));
282
+ }
283
+ return source && typeof source === 'object' ? source[key] : undefined;
284
+ }, row.obj);
285
+ }
286
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseTaskListCloudComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
287
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: BaseTaskListCloudComponent, inputs: { appName: "appName", selectionMode: "selectionMode", multiselect: "multiselect", stickyHeader: "stickyHeader", sorting: "sorting", showActions: "showActions", actionsPosition: "actionsPosition", showContextMenu: "showContextMenu", showProvidedActions: "showProvidedActions", showMainDatatableActions: "showMainDatatableActions", isResizingEnabled: "isResizingEnabled" }, outputs: { showRowContextMenu: "showRowContextMenu", showRowActionsMenu: "showRowActionsMenu", executeRowAction: "executeRowAction", rowClick: "rowClick", rowsSelected: "rowsSelected", success: "success", error: "error" }, queries: [{ propertyName: "emptyCustomContent", first: true, predicate: CustomEmptyContentTemplateDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
288
+ }
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseTaskListCloudComponent, decorators: [{
290
+ type: Directive
291
+ }], ctorParameters: () => [{ type: i1.AppConfigService }, { type: i2.TaskCloudService }, { type: i1.UserPreferencesService }, { type: undefined }, { type: undefined }], propDecorators: { emptyCustomContent: [{
292
+ type: ContentChild,
293
+ args: [CustomEmptyContentTemplateDirective]
294
+ }], appName: [{
295
+ type: Input
296
+ }], selectionMode: [{
297
+ type: Input
298
+ }], multiselect: [{
299
+ type: Input
300
+ }], stickyHeader: [{
301
+ type: Input
302
+ }], sorting: [{
303
+ type: Input
304
+ }], showActions: [{
305
+ type: Input
306
+ }], actionsPosition: [{
307
+ type: Input
308
+ }], showContextMenu: [{
309
+ type: Input
310
+ }], showProvidedActions: [{
311
+ type: Input
312
+ }], showMainDatatableActions: [{
313
+ type: Input
314
+ }], isResizingEnabled: [{
315
+ type: Input
316
+ }], showRowContextMenu: [{
317
+ type: Output
318
+ }], showRowActionsMenu: [{
319
+ type: Output
320
+ }], executeRowAction: [{
321
+ type: Output
322
+ }], rowClick: [{
323
+ type: Output
324
+ }], rowsSelected: [{
325
+ type: Output
326
+ }], success: [{
327
+ type: Output
328
+ }], error: [{
329
+ type: Output
330
+ }] } });
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10YXNrLWxpc3QtY2xvdWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2stbGlzdC9jb21wb25lbnRzL2Jhc2UtdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBRUgsWUFBWSxFQUNaLFVBQVUsRUFDVixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsbUNBQW1DLEVBTW5DLGVBQWUsRUFJZixzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3ZCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBRWhFLHFDQUFxQztBQUNyQyxNQUFNLENBQU4sSUFBWSx5QkFJWDtBQUpELFdBQVkseUJBQXlCO0lBQ2pDLDJFQUE4QyxDQUFBO0lBQzlDLHNGQUF5RCxDQUFBO0lBQ3pELDhFQUFpRCxDQUFBO0FBQ3JELENBQUMsRUFKVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBSXBDO0FBRUQsTUFBTSw0QkFBNEIsR0FBRztJQUNqQyxPQUFPLEVBQUU7UUFDTDtZQUNJLEVBQUUsRUFBRSxNQUFNO1lBQ1Ys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LEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvRSxDQUFDO1lBQ0QsT0FBTyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMxRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7K0dBeFVpQiwwQkFBMEI7bUdBQTFCLDBCQUEwQixxcUJBSTlCLG1DQUFtQzs7NEZBSi9CLDBCQUEwQjtrQkFGL0MsU0FBUzttTUFPTixrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsbUNBQW1DO2dCQUtqRCxPQUFPO3NCQUROLEtBQUs7Z0JBU04sYUFBYTtzQkFEWixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBT04sT0FBTztzQkFETixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLTix3QkFBd0I7c0JBRHZCLEtBQUs7Z0JBS04saUJBQWlCO3NCQURoQixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsTUFBTTtnQkFLUCxrQkFBa0I7c0JBRGpCLE1BQU07Z0JBS1AsZ0JBQWdCO3NCQURmLE1BQU07Z0JBS1AsUUFBUTtzQkFEUCxNQUFNO2dCQUtQLFlBQVk7c0JBRFgsTUFBTTtnQkFLUCxPQUFPO3NCQUROLE1BQU07Z0JBS1AsS0FBSztzQkFESixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQXBwQ29uZmlnU2VydmljZSxcbiAgICBDdXN0b21FbXB0eUNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBEYXRhQ2VsbEV2ZW50LFxuICAgIERhdGFDb2x1bW4sXG4gICAgRGF0YVJvdyxcbiAgICBEYXRhUm93QWN0aW9uRXZlbnQsXG4gICAgRGF0YVJvd0V2ZW50LFxuICAgIERhdGFUYWJsZVNjaGVtYSxcbiAgICBPYmplY3REYXRhVGFibGVBZGFwdGVyLFxuICAgIFBhZ2luYXRlZENvbXBvbmVudCxcbiAgICBQYWdpbmF0aW9uTW9kZWwsXG4gICAgVXNlclByZWZlcmVuY2VzU2VydmljZSxcbiAgICBVc2VyUHJlZmVyZW5jZVZhbHVlc1xufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZmlsdGVyLWNsb3VkLW1vZGVsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGFza0xpc3RDbG91ZFNvcnRpbmdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90YXNrLWxpc3Qtc29ydGluZy5tb2RlbCc7XG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUYXNrQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFzay1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IFByZWZlcmVuY2VDbG91ZFNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVmZXJlbmNlLWNsb3VkLmludGVyZmFjZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zaGFkb3dcbmV4cG9ydCBlbnVtIFRhc2tzTGlzdENsb3VkUHJlZmVyZW5jZXMge1xuICAgIGNvbHVtbk9yZGVyID0gJ3Rhc2tzLWxpc3QtY2xvdWQtY29sdW1ucy1vcmRlcicsXG4gICAgY29sdW1uc1Zpc2liaWxpdHkgPSAndGFza3MtbGlzdC1jbG91ZC1jb2x1bW5zLXZpc2liaWxpdHknLFxuICAgIGNvbHVtbnNXaWR0aHMgPSAndGFza3MtbGlzdC1jbG91ZC1jb2x1bW5zLXdpZHRocydcbn1cblxuY29uc3QgdGFza1ByZXNldHNDbG91ZERlZmF1bHRNb2RlbCA9IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnbmFtZScsXG4gICAgICAgICAgICBrZXk6ICduYW1lJyxcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgIHRpdGxlOiAnQURGX0NMT1VEX1RBU0tfTElTVC5QUk9QRVJUSUVTLk5BTUUnLFxuICAgICAgICAgICAgc29ydGFibGU6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdjcmVhdGVkJyxcbiAgICAgICAgICAgIGtleTogJ2NyZWF0ZWQnLFxuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgdGl0bGU6ICdBREZfQ0xPVURfVEFTS19MSVNULlBST1BFUlRJRVMuQ1JFQVRFRCcsXG4gICAgICAgICAgICBjc3NDbGFzczogJ2hpZGRlbicsXG4gICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2Fzc2lnbmVlJyxcbiAgICAgICAgICAgIGtleTogJ2Fzc2lnbmVlJyxcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgIHRpdGxlOiAnQURGX0NMT1VEX1RBU0tfTElTVC5QUk9QRVJUSUVTLkFTU0lHTkVFJyxcbiAgICAgICAgICAgIGNzc0NsYXNzOiAnaGlkZGVuJyxcbiAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59O1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYnJhY2Utc3R5bGUgKi9cblxuQERpcmVjdGl2ZSgpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlVGFza0xpc3RDbG91ZENvbXBvbmVudDxUID0gdW5rbm93bj5cbiAgICBleHRlbmRzIERhdGFUYWJsZVNjaGVtYTxUPlxuICAgIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBQYWdpbmF0ZWRDb21wb25lbnQsIE9uSW5pdFxue1xuICAgIEBDb250ZW50Q2hpbGQoQ3VzdG9tRW1wdHlDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUpXG4gICAgZW1wdHlDdXN0b21Db250ZW50OiBDdXN0b21FbXB0eUNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZTtcblxuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBhcHBOYW1lOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFJvdyBzZWxlY3Rpb24gbW9kZS4gQ2FuIGJlIG5vbmUsIGBzaW5nbGVgIG9yIGBtdWx0aXBsZWAuIEZvciBgbXVsdGlwbGVgIG1vZGUsXG4gICAgICogeW91IGNhbiB1c2UgdGhlIENtZCAobWFjT1MpIG9yIEN0cmwgKFdpbikgbW9kaWZpZXIga2V5IHRvIHRvZ2dsZSBzZWxlY3Rpb24gZm9yXG4gICAgICogbXVsdGlwbGUgcm93cy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGlvbk1vZGU6IHN0cmluZyA9ICdzaW5nbGUnOyAvLyBub25lfHNpbmdsZXxtdWx0aXBsZVxuXG4gICAgLyoqIFRvZ2dsZXMgbXVsdGlwbGUgcm93IHNlbGVjdGlvbiwgcmVuZGVyaW5nIGEgY2hlY2tib3ggYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIHJvdy4gKi9cbiAgICBASW5wdXQoKVxuICAgIG11bHRpc2VsZWN0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgc3RpY2t5IGhlYWRlciBtb2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RpY2t5SGVhZGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgaG93IHRoZSB0YWJsZSBzaG91bGQgYmUgc29ydGVkLiBUaGUgcGFyYW1ldGVycyBhcmUgZm9yIEJFIHNvcnRpbmcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzb3J0aW5nOiBUYXNrTGlzdENsb3VkU29ydGluZ01vZGVsW107XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgZGF0YSBhY3Rpb25zIGNvbHVtbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dBY3Rpb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogUG9zaXRpb24gb2YgdGhlIGFjdGlvbnMgZHJvcGRvd24gbWVudS4gQ2FuIGJlIFwibGVmdFwiIG9yIFwicmlnaHRcIi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFjdGlvbnNQb3NpdGlvbjogc3RyaW5nID0gJ3JpZ2h0JzsgLy8gbGVmdHxyaWdodFxuXG4gICAgLyoqIFRvZ2dsZXMgY3VzdG9tIGNvbnRleHQgbWVudSBmb3IgdGhlIGNvbXBvbmVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dDb250ZXh0TWVudTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIFRvZ2dsZXMgdGhlIHByb3ZpZGVkIGFjdGlvbnMuICovXG4gICAgQElucHV0KClcbiAgICBzaG93UHJvdmlkZWRBY3Rpb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyBtYWluIGRhdGF0YWJsZSBhY3Rpb25zLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd01haW5EYXRhdGFibGVBY3Rpb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyBtYWluIGRhdGF0YWJsZSBjb2x1bW4gcmVzaXppbmcgZmVhdHVyZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlzUmVzaXppbmdFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogRW1pdHRlZCBiZWZvcmUgdGhlIGNvbnRleHQgbWVudSBpcyBkaXNwbGF5ZWQgZm9yIGEgcm93LiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNob3dSb3dDb250ZXh0TWVudSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YUNlbGxFdmVudD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIGJlZm9yZSB0aGUgYWN0aW9ucyBtZW51IGlzIGRpc3BsYXllZCBmb3IgYSByb3cuICovXG4gICAgQE91dHB1dCgpXG4gICAgc2hvd1Jvd0FjdGlvbnNNZW51ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhQ2VsbEV2ZW50PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBleGVjdXRlcyBhIHJvdyBhY3Rpb24uICovXG4gICAgQE91dHB1dCgpXG4gICAgZXhlY3V0ZVJvd0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YVJvd0FjdGlvbkV2ZW50PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIHRhc2sgaW4gdGhlIGxpc3QgaXMgY2xpY2tlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiByb3dzIGFyZSBzZWxlY3RlZC91bnNlbGVjdGVkICovXG4gICAgQE91dHB1dCgpXG4gICAgcm93c1NlbGVjdGVkOiBFdmVudEVtaXR0ZXI8dW5rbm93bltdPiA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bltdPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdGFzayBsaXN0IGlzIGxvYWRlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjx1bmtub3duPiA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yOiBFdmVudEVtaXR0ZXI8dW5rbm93bj4gPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KCk7XG5cbiAgICBwYWdpbmF0aW9uOiBCZWhhdmlvclN1YmplY3Q8UGFnaW5hdGlvbk1vZGVsPjtcblxuICAgIHJlcXVlc3ROb2RlOiBUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbDtcbiAgICByb3dzID0gW107XG4gICAgc2l6ZTogbnVtYmVyO1xuICAgIHNraXBDb3VudDogbnVtYmVyID0gMDtcbiAgICBjdXJyZW50SW5zdGFuY2VJZDogc3RyaW5nO1xuICAgIHNlbGVjdGVkSW5zdGFuY2VzOiBzdHJpbmdbXTtcbiAgICBmb3JtYXR0ZWRTb3J0aW5nOiBzdHJpbmdbXTtcbiAgICBkYXRhQWRhcHRlcjogT2JqZWN0RGF0YVRhYmxlQWRhcHRlciB8IHVuZGVmaW5lZDtcblxuICAgIHByb3RlY3RlZCBkZWZhdWx0U29ydGluZyA9IHsga2V5OiAnc3RhcnREYXRlJywgZGlyZWN0aW9uOiAnZGVzYycgfTtcbiAgICBib3VuZFJlcGxhY2VQcmlvcml0eVZhbHVlczogKHJvdzogRGF0YVJvdywgY29sOiBEYXRhQ29sdW1uKSA9PiB1bmtub3duO1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGlzTG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcHJvdGVjdGVkIGlzTG9hZGluZ1ByZWZlcmVuY2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRhc2tDbG91ZFNlcnZpY2U6IFRhc2tDbG91ZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdXNlclByZWZlcmVuY2VzOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgICAgICBwcmVzZXRLZXk6IHN0cmluZyxcbiAgICAgICAgcHJpdmF0ZSBjbG91ZFByZWZlcmVuY2VTZXJ2aWNlOiBQcmVmZXJlbmNlQ2xvdWRTZXJ2aWNlSW50ZXJmYWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGFwcENvbmZpZ1NlcnZpY2UsIHByZXNldEtleSwgdGFza1ByZXNldHNDbG91ZERlZmF1bHRNb2RlbCk7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHVzZXJQcmVmZXJlbmNlcy5wYWdpbmF0aW9uU2l6ZTtcblxuICAgICAgICB0aGlzLnBhZ2luYXRpb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhZ2luYXRpb25Nb2RlbD4oe1xuICAgICAgICAgICAgbWF4SXRlbXM6IHRoaXMuc2l6ZSxcbiAgICAgICAgICAgIHNraXBDb3VudDogMCxcbiAgICAgICAgICAgIHRvdGFsSXRlbXM6IDBcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5ib3VuZFJlcGxhY2VQcmlvcml0eVZhbHVlcyA9IHRoaXMucmVwbGFjZVByaW9yaXR5VmFsdWVzLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudXNlclByZWZlcmVuY2VzXG4gICAgICAgICAgICAuc2VsZWN0KFVzZXJQcmVmZXJlbmNlVmFsdWVzLlBhZ2luYXRpb25TaXplKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwYWdlU2l6ZSkgPT4gKHRoaXMuc2l6ZSA9IHBhZ2VTaXplKSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1snc29ydGluZyddKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1hdFNvcnRpbmcoY2hhbmdlc1snc29ydGluZyddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXNbJ2FwcE5hbWUnXSkge1xuICAgICAgICAgICAgdGhpcy5yZXRyaWV2ZVRhc2tzUHJlZmVyZW5jZXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmV0cmlldmVUYXNrc1ByZWZlcmVuY2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTG9hZGluZ1ByZWZlcmVuY2VzJC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmNsb3VkUHJlZmVyZW5jZVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRQcmVmZXJlbmNlcyh0aGlzLmFwcE5hbWUpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgIG1hcCgocHJlZmVyZW5jZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJlZmVyZW5jZXNMaXN0ID0gcHJlZmVyZW5jZXM/Lmxpc3Q/LmVudHJpZXMgPz8gW107XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbnNPcmRlciA9IHByZWZlcmVuY2VzTGlzdC5maW5kKChwcmVmZXJlbmNlKSA9PiBwcmVmZXJlbmNlLmVudHJ5LmtleSA9PT0gVGFza3NMaXN0Q2xvdWRQcmVmZXJlbmNlcy5jb2x1bW5PcmRlcik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbnNWaXNpYmlsaXR5ID0gcHJlZmVyZW5jZXNMaXN0LmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICAocHJlZmVyZW5jZSkgPT4gcHJlZmVyZW5jZS5lbnRyeS5rZXkgPT09IFRhc2tzTGlzdENsb3VkUHJlZmVyZW5jZXMuY29sdW1uc1Zpc2liaWxpdHlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sdW1uc1dpZHRocyA9IHByZWZlcmVuY2VzTGlzdC5maW5kKChwcmVmZXJlbmNlKSA9PiBwcmVmZXJlbmNlLmVudHJ5LmtleSA9PT0gVGFza3NMaXN0Q2xvdWRQcmVmZXJlbmNlcy5jb2x1bW5zV2lkdGhzKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uc09yZGVyOiBjb2x1bW5zT3JkZXIgPyBKU09OLnBhcnNlKGNvbHVtbnNPcmRlci5lbnRyeS52YWx1ZSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zVmlzaWJpbGl0eTogY29sdW1uc1Zpc2liaWxpdHkgPyBKU09OLnBhcnNlKGNvbHVtbnNWaXNpYmlsaXR5LmVudHJ5LnZhbHVlKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnNXaWR0aHM6IGNvbHVtbnNXaWR0aHMgPyBKU09OLnBhcnNlKGNvbHVtbnNXaWR0aHMuZW50cnkudmFsdWUpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKHsgY29sdW1uc09yZGVyLCBjb2x1bW5zVmlzaWJpbGl0eSwgY29sdW1uc1dpZHRocyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW5zT3JkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29sdW1uc09yZGVyID0gY29sdW1uc09yZGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbnNWaXNpYmlsaXR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnNWaXNpYmlsaXR5ID0gY29sdW1uc1Zpc2liaWxpdHk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoY29sdW1uc1dpZHRocykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zV2lkdGhzID0gY29sdW1uc1dpZHRocztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlRGF0YXRhYmxlU2NoZW1hKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlQ29sdW1ucygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZ1ByZWZlcmVuY2VzJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZ1ByZWZlcmVuY2VzJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXRyaWV2ZVRhc2tzUHJlZmVyZW5jZXMoKTtcbiAgICB9XG5cbiAgICBpc0xpc3RFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJvd3MgfHwgdGhpcy5yb3dzLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNldHMgdGhlIHBhZ2luYXRpb24gdmFsdWVzXG4gICAgICovXG4gICAgcmVzZXRQYWdpbmF0aW9uKCkge1xuICAgICAgICB0aGlzLnNraXBDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMudXNlclByZWZlcmVuY2VzLnBhZ2luYXRpb25TaXplO1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24ubmV4dCh7XG4gICAgICAgICAgICBza2lwQ291bnQ6IDAsXG4gICAgICAgICAgICBtYXhJdGVtczogdGhpcy5zaXplXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc2V0cyB0aGUgcGFnaW5hdGlvbiB2YWx1ZXMgYW5kXG4gICAgICogUmVsb2FkcyB0aGUgdGFzayBsaXN0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFnaW5hdGlvbiBQYWdpbmF0aW9uIHZhbHVlcyB0byBiZSBzZXRcbiAgICAgKi9cbiAgICB1cGRhdGVQYWdpbmF0aW9uKHBhZ2luYXRpb246IFBhZ2luYXRpb25Nb2RlbCkge1xuICAgICAgICB0aGlzLnNpemUgPSBwYWdpbmF0aW9uLm1heEl0ZW1zO1xuICAgICAgICB0aGlzLnNraXBDb3VudCA9IHBhZ2luYXRpb24uc2tpcENvdW50O1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24ubmV4dChwYWdpbmF0aW9uKTtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICB9XG5cbiAgICBvblNvcnRpbmdDaGFuZ2VkKGV2ZW50OiBDdXN0b21FdmVudCkge1xuICAgICAgICB0aGlzLnNldFNvcnRpbmcoZXZlbnQuZGV0YWlsKTtcbiAgICAgICAgdGhpcy5mb3JtYXRTb3J0aW5nKHRoaXMuc29ydGluZyk7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgfVxuXG4gICAgb25Sb3dDbGljayhpdGVtOiBEYXRhUm93RXZlbnQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5zdGFuY2VJZCA9IGl0ZW0udmFsdWUuZ2V0VmFsdWUoJ2lkJyk7XG4gICAgICAgIHRoaXMucm93Q2xpY2suZW1pdCh0aGlzLmN1cnJlbnRJbnN0YW5jZUlkKTtcbiAgICB9XG5cbiAgICBvblJvd1NlbGVjdChldmVudDogQ3VzdG9tRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluc3RhbmNlcyA9IFsuLi5ldmVudC5kZXRhaWwuc2VsZWN0aW9uXTtcbiAgICAgICAgdGhpcy5yb3dzU2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkSW5zdGFuY2VzKTtcbiAgICB9XG5cbiAgICBvblJvd1Vuc2VsZWN0KGV2ZW50OiBDdXN0b21FdmVudCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5zdGFuY2VzID0gWy4uLmV2ZW50LmRldGFpbC5zZWxlY3Rpb25dO1xuICAgICAgICB0aGlzLnJvd3NTZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0ZWRJbnN0YW5jZXMpO1xuICAgIH1cblxuICAgIG9uUm93S2V5VXAoZXZlbnQ6IEN1c3RvbUV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5kZXRhaWwua2V5Ym9hcmRFdmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbnN0YW5jZUlkID0gZXZlbnQuZGV0YWlsLnJvdy5nZXRWYWx1ZSgnaWQnKTtcbiAgICAgICAgICAgIHRoaXMucm93Q2xpY2suZW1pdCh0aGlzLmN1cnJlbnRJbnN0YW5jZUlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2hvd1Jvd0FjdGlvbnNNZW51KGV2ZW50OiBEYXRhQ2VsbEV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2hvd1Jvd0FjdGlvbnNNZW51LmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uU2hvd1Jvd0NvbnRleHRNZW51KGV2ZW50OiBEYXRhQ2VsbEV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2hvd1Jvd0NvbnRleHRNZW51LmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uRXhlY3V0ZVJvd0FjdGlvbihyb3c6IERhdGFSb3dBY3Rpb25FdmVudCkge1xuICAgICAgICB0aGlzLmV4ZWN1dGVSb3dBY3Rpb24uZW1pdChyb3cpO1xuICAgIH1cblxuICAgIG9uQ29sdW1uT3JkZXJDaGFuZ2VkKGNvbHVtbnNXaXRoTmV3T3JkZXI6IERhdGFDb2x1bW5bXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbHVtbnNPcmRlciA9IGNvbHVtbnNXaXRoTmV3T3JkZXIubWFwKChjb2x1bW4pID0+IGNvbHVtbi5pZCk7XG4gICAgICAgIHRoaXMuY3JlYXRlQ29sdW1ucygpO1xuXG4gICAgICAgIGlmICh0aGlzLmFwcE5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvdWRQcmVmZXJlbmNlU2VydmljZS51cGRhdGVQcmVmZXJlbmNlKHRoaXMuYXBwTmFtZSwgVGFza3NMaXN0Q2xvdWRQcmVmZXJlbmNlcy5jb2x1bW5PcmRlciwgdGhpcy5jb2x1bW5zT3JkZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Db2x1bW5zVmlzaWJpbGl0eUNoYW5nZShjb2x1bW5zOiBEYXRhQ29sdW1uW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2x1bW5zVmlzaWJpbGl0eSA9IGNvbHVtbnMucmVkdWNlKCh2aXNpYmxlQ29sdW1uc01hcCwgY29sdW1uKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29sdW1uLmlzSGlkZGVuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB2aXNpYmxlQ29sdW1uc01hcFtjb2x1bW4uaWRdID0gIWNvbHVtbi5pc0hpZGRlbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZpc2libGVDb2x1bW5zTWFwO1xuICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVDb2x1bW5zKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlRGF0YXRhYmxlU2NoZW1hKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXBwTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5jbG91ZFByZWZlcmVuY2VTZXJ2aWNlLnVwZGF0ZVByZWZlcmVuY2UodGhpcy5hcHBOYW1lLCBUYXNrc0xpc3RDbG91ZFByZWZlcmVuY2VzLmNvbHVtbnNWaXNpYmlsaXR5LCB0aGlzLmNvbHVtbnNWaXNpYmlsaXR5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ29sdW1uc1dpZHRoQ2hhbmdlZChjb2x1bW5zOiBEYXRhQ29sdW1uW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uc1dpZHRocyA9IGNvbHVtbnMucmVkdWNlKCh3aWR0aHNDb2x1bW5zTWFwLCBjb2x1bW4pID0+IHtcbiAgICAgICAgICAgIGlmIChjb2x1bW4ud2lkdGgpIHtcbiAgICAgICAgICAgICAgICB3aWR0aHNDb2x1bW5zTWFwW2NvbHVtbi5pZF0gPSBNYXRoLmNlaWwoY29sdW1uLndpZHRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB3aWR0aHNDb2x1bW5zTWFwO1xuICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgdGhpcy5jb2x1bW5zV2lkdGhzID0geyAuLi50aGlzLmNvbHVtbnNXaWR0aHMsIC4uLm5ld0NvbHVtbnNXaWR0aHMgfTtcblxuICAgICAgICB0aGlzLmNyZWF0ZUNvbHVtbnMoKTtcblxuICAgICAgICBpZiAodGhpcy5hcHBOYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3VkUHJlZmVyZW5jZVNlcnZpY2UudXBkYXRlUHJlZmVyZW5jZSh0aGlzLmFwcE5hbWUsIFRhc2tzTGlzdENsb3VkUHJlZmVyZW5jZXMuY29sdW1uc1dpZHRocywgdGhpcy5jb2x1bW5zV2lkdGhzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFNvcnRpbmcoc29ydERldGFpbCkge1xuICAgICAgICBjb25zdCBzb3J0aW5nID0gc29ydERldGFpbFxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBvcmRlckJ5OiBzb3J0RGV0YWlsLnNvcnRpbmdLZXkgfHwgc29ydERldGFpbC5rZXksXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHNvcnREZXRhaWwuZGlyZWN0aW9uLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7IC4uLnRoaXMuZGVmYXVsdFNvcnRpbmcgfTtcbiAgICAgICAgdGhpcy5zb3J0aW5nID0gW25ldyBUYXNrTGlzdENsb3VkU29ydGluZ01vZGVsKHNvcnRpbmcpXTtcbiAgICB9XG5cbiAgICBmb3JtYXRTb3J0aW5nKHNvcnRpbmc6IFRhc2tMaXN0Q2xvdWRTb3J0aW5nTW9kZWxbXSkge1xuICAgICAgICB0aGlzLmZvcm1hdHRlZFNvcnRpbmcgPSB0aGlzLmlzVmFsaWRTb3J0aW5nKHNvcnRpbmcpID8gW3NvcnRpbmdbMF0ub3JkZXJCeSwgc29ydGluZ1swXS5kaXJlY3Rpb24udG9Mb2NhbGVMb3dlckNhc2UoKV0gOiBudWxsO1xuICAgIH1cblxuICAgIGlzVmFsaWRTb3J0aW5nKHNvcnRpbmc6IFRhc2tMaXN0Q2xvdWRTb3J0aW5nTW9kZWxbXSkge1xuICAgICAgICByZXR1cm4gc29ydGluZz8ubGVuZ3RoICYmIHNvcnRpbmdbMF0ub3JkZXJCeSAmJiBzb3J0aW5nWzBdLmRpcmVjdGlvbjtcbiAgICB9XG5cbiAgICByZXBsYWNlUHJpb3JpdHlWYWx1ZXMocm93OiBEYXRhUm93LCBjb2x1bW46IERhdGFDb2x1bW4pIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5rZXkuc3BsaXQoJy4nKS5yZWR1Y2UoKHNvdXJjZSwga2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAncHJpb3JpdHknICYmIHNvdXJjZSAmJiB0eXBlb2Ygc291cmNlW2tleV0gPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChzb3VyY2Vba2V5XSA9IHRoaXMudGFza0Nsb3VkU2VydmljZS5nZXRQcmlvcml0eUxhYmVsKHNvdXJjZVtrZXldKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc291cmNlICYmIHR5cGVvZiBzb3VyY2UgPT09ICdvYmplY3QnID8gc291cmNlW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgICAgIH0sIHJvdy5vYmopO1xuICAgIH1cblxuICAgIGFic3RyYWN0IHJlbG9hZCgpO1xufVxuIl19
@@ -0,0 +1,116 @@
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 { AppConfigService, ColumnsSelectorComponent, DataTableComponent, EmptyContentComponent, LoadingContentTemplateDirective, MainMenuDataTableTemplateDirective, NoContentTemplateDirective, UserPreferencesService } from '@alfresco/adf-core';
19
+ import { BaseTaskListCloudComponent } from '../base-task-list-cloud.component';
20
+ import { ServiceTaskListCloudService } from '../../services/service-task-list-cloud.service';
21
+ import { TaskCloudService } from '../../../services/task-cloud.service';
22
+ import { BehaviorSubject, combineLatest } from 'rxjs';
23
+ import { TASK_LIST_PREFERENCES_SERVICE_TOKEN } from '../../../../services/public-api';
24
+ import { map } from 'rxjs/operators';
25
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
26
+ import { CommonModule } from '@angular/common';
27
+ import { TranslateModule } from '@ngx-translate/core';
28
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
29
+ import * as i0 from "@angular/core";
30
+ import * as i1 from "../../services/service-task-list-cloud.service";
31
+ import * as i2 from "@alfresco/adf-core";
32
+ import * as i3 from "../../../services/task-cloud.service";
33
+ import * as i4 from "@angular/common";
34
+ import * as i5 from "@ngx-translate/core";
35
+ import * as i6 from "@angular/material/progress-spinner";
36
+ const PRESET_KEY = 'adf-cloud-service-task-list.presets';
37
+ export class ServiceTaskListCloudComponent extends BaseTaskListCloudComponent {
38
+ constructor(serviceTaskListCloudService, appConfigService, taskCloudService, userPreferences, cloudPreferenceService) {
39
+ super(appConfigService, taskCloudService, userPreferences, PRESET_KEY, cloudPreferenceService);
40
+ this.serviceTaskListCloudService = serviceTaskListCloudService;
41
+ this.queryParams = {};
42
+ this.isReloadingSubject$ = new BehaviorSubject(false);
43
+ this.isLoading$ = combineLatest([this.isLoadingPreferences$, this.isReloadingSubject$]).pipe(map(([isLoadingPreferences, isReloading]) => isLoadingPreferences || isReloading));
44
+ }
45
+ reload() {
46
+ this.isReloadingSubject$.next(true);
47
+ this.requestNode = this.createRequestNode();
48
+ if (this.requestNode.appName || this.requestNode.appName === '') {
49
+ combineLatest([this.serviceTaskListCloudService.getServiceTaskByRequest(this.requestNode), this.isColumnSchemaCreated$])
50
+ .pipe(takeUntilDestroyed(this.destroyRef))
51
+ .subscribe(([tasks]) => {
52
+ this.rows = tasks.list.entries.map((task) => task.entry);
53
+ this.success.emit(tasks);
54
+ this.pagination.next(tasks.list.pagination);
55
+ this.isReloadingSubject$.next(false);
56
+ }, (error) => {
57
+ this.error.emit(error);
58
+ this.isReloadingSubject$.next(false);
59
+ });
60
+ }
61
+ else {
62
+ this.rows = [];
63
+ }
64
+ }
65
+ createRequestNode() {
66
+ const requestNode = {
67
+ appName: this.appName,
68
+ maxItems: this.size,
69
+ skipCount: this.skipCount,
70
+ sorting: this.sorting,
71
+ id: this.queryParams?.serviceTaskId,
72
+ environmentId: this.queryParams?.environmentId,
73
+ activityName: this.queryParams?.activityName,
74
+ activityType: this.queryParams?.activityType,
75
+ completedDate: this.queryParams?.completedDate,
76
+ completedFrom: this.queryParams?.completedFrom,
77
+ completedTo: this.queryParams?.completedTo,
78
+ elementId: this.queryParams?.elementId,
79
+ executionId: this.queryParams?.executionId,
80
+ processDefinitionId: this.queryParams?.processDefinitionId,
81
+ processDefinitionKey: this.queryParams?.processDefinitionKey,
82
+ processDefinitionVersion: this.queryParams?.processDefinitionVersion,
83
+ processInstanceId: this.queryParams?.processInstanceId,
84
+ serviceFullName: this.queryParams?.serviceFullName,
85
+ serviceName: this.queryParams?.serviceName,
86
+ serviceVersion: this.queryParams?.serviceVersion,
87
+ startedDate: this.queryParams?.startedDate,
88
+ startedFrom: this.queryParams?.startedFrom,
89
+ startedTo: this.queryParams?.startedTo,
90
+ status: this.queryParams?.status
91
+ };
92
+ return requestNode;
93
+ }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceTaskListCloudComponent, deps: [{ token: i1.ServiceTaskListCloudService }, { token: i2.AppConfigService }, { token: i3.TaskCloudService }, { token: i2.UserPreferencesService }, { token: TASK_LIST_PREFERENCES_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ServiceTaskListCloudComponent, isStandalone: true, selector: "adf-cloud-service-task-list", inputs: { queryParams: "queryParams" }, 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 }); }
96
+ }
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceTaskListCloudComponent, decorators: [{
98
+ type: Component,
99
+ args: [{ selector: 'adf-cloud-service-task-list', standalone: true, imports: [
100
+ CommonModule,
101
+ ColumnsSelectorComponent,
102
+ MainMenuDataTableTemplateDirective,
103
+ TranslateModule,
104
+ EmptyContentComponent,
105
+ NoContentTemplateDirective,
106
+ MatProgressSpinnerModule,
107
+ LoadingContentTemplateDirective,
108
+ DataTableComponent
109
+ ], 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"] }]
110
+ }], ctorParameters: () => [{ type: i1.ServiceTaskListCloudService }, { type: i2.AppConfigService }, { type: i3.TaskCloudService }, { type: i2.UserPreferencesService }, { type: undefined, decorators: [{
111
+ type: Inject,
112
+ args: [TASK_LIST_PREFERENCES_SERVICE_TOKEN]
113
+ }] }], propDecorators: { queryParams: [{
114
+ type: Input
115
+ }] } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS10YXNrLWxpc3QtY2xvdWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2stbGlzdC9jb21wb25lbnRzL3NlcnZpY2UtdGFzay1saXN0L3NlcnZpY2UtdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWxpc3QvY29tcG9uZW50cy9zZXJ2aWNlLXRhc2stbGlzdC9zZXJ2aWNlLXRhc2stbGlzdC1jbG91ZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUNILGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQiwrQkFBK0IsRUFDL0Isa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDekIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQW1DLG1DQUFtQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkgsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7O0FBRTlFLE1BQU0sVUFBVSxHQUFHLHFDQUFxQyxDQUFDO0FBb0J6RCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsMEJBQTBCO0lBU3pFLFlBQ1ksMkJBQXdELEVBQ2hFLGdCQUFrQyxFQUNsQyxnQkFBa0MsRUFDbEMsZUFBdUMsRUFDTSxzQkFBdUQ7UUFFcEcsS0FBSyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQU52RixnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBUnBFLGdCQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUVqQyx3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsRSxlQUFVLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNuRixHQUFHLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsSUFBSSxXQUFXLENBQUMsQ0FDcEYsQ0FBQztJQVVGLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRTVDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDOUQsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztpQkFDbkgsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDekMsU0FBUyxDQUNOLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFO2dCQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLENBQUMsQ0FDSixDQUFDO1FBQ1YsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE1BQU0sV0FBVyxHQUFzQztZQUNuRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYTtZQUNuQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhO1lBQzlDLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLFlBQVk7WUFDNUMsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsWUFBWTtZQUM1QyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhO1lBQzlDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWE7WUFDOUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVztZQUMxQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTO1lBQ3RDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVc7WUFDMUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxtQkFBbUI7WUFDMUQsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxvQkFBb0I7WUFDNUQsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSx3QkFBd0I7WUFDcEUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxpQkFBaUI7WUFDdEQsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZTtZQUNsRCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXO1lBQzFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLGNBQWM7WUFDaEQsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVztZQUMxQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXO1lBQzFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVM7WUFDdEMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTTtTQUNFLENBQUM7UUFDdkMsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQzsrR0F4RVEsNkJBQTZCLG1LQWMxQixtQ0FBbUM7bUdBZHRDLDZCQUE2QixzSkM1RDFDLHMwRkEwREEsc0tEWlEsWUFBWSx3TEFDWix3QkFBd0IsK0xBQ3hCLGtDQUFrQyw0RUFDbEMsZUFBZSw0RkFDZixxQkFBcUIscUdBQ3JCLDBCQUEwQix3RkFDMUIsd0JBQXdCLG1PQUN4QiwrQkFBK0IsbUdBQy9CLGtCQUFrQjs7NEZBTWIsNkJBQTZCO2tCQWxCekMsU0FBUzsrQkFDSSw2QkFBNkIsY0FDM0IsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4QixrQ0FBa0M7d0JBQ2xDLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQiwwQkFBMEI7d0JBQzFCLHdCQUF3Qjt3QkFDeEIsK0JBQStCO3dCQUMvQixrQkFBa0I7cUJBQ3JCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7OzBCQWdCaEMsTUFBTTsyQkFBQyxtQ0FBbUM7eUNBWi9DLFdBQVc7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBcHBDb25maWdTZXJ2aWNlLFxuICAgIENvbHVtbnNTZWxlY3RvckNvbXBvbmVudCxcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgRW1wdHlDb250ZW50Q29tcG9uZW50LFxuICAgIExvYWRpbmdDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgTWFpbk1lbnVEYXRhVGFibGVUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBOb0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBTZXJ2aWNlVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VydmljZS10YXNrLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IEJhc2VUYXNrTGlzdENsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS10YXNrLWxpc3QtY2xvdWQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlcnZpY2VUYXNrTGlzdENsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlcnZpY2UtdGFzay1saXN0LWNsb3VkLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFza0Nsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Rhc2stY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByZWZlcmVuY2VDbG91ZFNlcnZpY2VJbnRlcmZhY2UsIFRBU0tfTElTVF9QUkVGRVJFTkNFU19TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcblxuY29uc3QgUFJFU0VUX0tFWSA9ICdhZGYtY2xvdWQtc2VydmljZS10YXNrLWxpc3QucHJlc2V0cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNsb3VkLXNlcnZpY2UtdGFzay1saXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBDb2x1bW5zU2VsZWN0b3JDb21wb25lbnQsXG4gICAgICAgIE1haW5NZW51RGF0YVRhYmxlVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgRW1wdHlDb250ZW50Q29tcG9uZW50LFxuICAgICAgICBOb0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBMb2FkaW5nQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBEYXRhVGFibGVDb21wb25lbnRcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZXJ2aWNlLXRhc2stbGlzdC1jbG91ZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VydmljZS10YXNrLWxpc3QtY2xvdWQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFNlcnZpY2VUYXNrTGlzdENsb3VkQ29tcG9uZW50IGV4dGVuZHMgQmFzZVRhc2tMaXN0Q2xvdWRDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgcXVlcnlQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcblxuICAgIHByaXZhdGUgaXNSZWxvYWRpbmdTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIGlzTG9hZGluZyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlzTG9hZGluZ1ByZWZlcmVuY2VzJCwgdGhpcy5pc1JlbG9hZGluZ1N1YmplY3QkXSkucGlwZShcbiAgICAgICAgbWFwKChbaXNMb2FkaW5nUHJlZmVyZW5jZXMsIGlzUmVsb2FkaW5nXSkgPT4gaXNMb2FkaW5nUHJlZmVyZW5jZXMgfHwgaXNSZWxvYWRpbmcpXG4gICAgKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHNlcnZpY2VUYXNrTGlzdENsb3VkU2VydmljZTogU2VydmljZVRhc2tMaXN0Q2xvdWRTZXJ2aWNlLFxuICAgICAgICBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLFxuICAgICAgICB0YXNrQ2xvdWRTZXJ2aWNlOiBUYXNrQ2xvdWRTZXJ2aWNlLFxuICAgICAgICB1c2VyUHJlZmVyZW5jZXM6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoVEFTS19MSVNUX1BSRUZFUkVOQ0VTX1NFUlZJQ0VfVE9LRU4pIGNsb3VkUHJlZmVyZW5jZVNlcnZpY2U6IFByZWZlcmVuY2VDbG91ZFNlcnZpY2VJbnRlcmZhY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoYXBwQ29uZmlnU2VydmljZSwgdGFza0Nsb3VkU2VydmljZSwgdXNlclByZWZlcmVuY2VzLCBQUkVTRVRfS0VZLCBjbG91ZFByZWZlcmVuY2VTZXJ2aWNlKTtcbiAgICB9XG5cbiAgICByZWxvYWQoKSB7XG4gICAgICAgIHRoaXMuaXNSZWxvYWRpbmdTdWJqZWN0JC5uZXh0KHRydWUpO1xuXG4gICAgICAgIHRoaXMucmVxdWVzdE5vZGUgPSB0aGlzLmNyZWF0ZVJlcXVlc3ROb2RlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMucmVxdWVzdE5vZGUuYXBwTmFtZSB8fCB0aGlzLnJlcXVlc3ROb2RlLmFwcE5hbWUgPT09ICcnKSB7XG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlcnZpY2VUYXNrTGlzdENsb3VkU2VydmljZS5nZXRTZXJ2aWNlVGFza0J5UmVxdWVzdCh0aGlzLnJlcXVlc3ROb2RlKSwgdGhpcy5pc0NvbHVtblNjaGVtYUNyZWF0ZWQkXSlcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAoW3Rhc2tzXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3dzID0gdGFza3MubGlzdC5lbnRyaWVzLm1hcCgodGFzaykgPT4gdGFzay5lbnRyeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh0YXNrcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRpb24ubmV4dCh0YXNrcy5saXN0LnBhZ2luYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1JlbG9hZGluZ1N1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVsb2FkaW5nU3ViamVjdCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yb3dzID0gW107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGVSZXF1ZXN0Tm9kZSgpOiBTZXJ2aWNlVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwge1xuICAgICAgICBjb25zdCByZXF1ZXN0Tm9kZTogU2VydmljZVRhc2tRdWVyeUNsb3VkUmVxdWVzdE1vZGVsID0ge1xuICAgICAgICAgICAgYXBwTmFtZTogdGhpcy5hcHBOYW1lLFxuICAgICAgICAgICAgbWF4SXRlbXM6IHRoaXMuc2l6ZSxcbiAgICAgICAgICAgIHNraXBDb3VudDogdGhpcy5za2lwQ291bnQsXG4gICAgICAgICAgICBzb3J0aW5nOiB0aGlzLnNvcnRpbmcsXG4gICAgICAgICAgICBpZDogdGhpcy5xdWVyeVBhcmFtcz8uc2VydmljZVRhc2tJZCxcbiAgICAgICAgICAgIGVudmlyb25tZW50SWQ6IHRoaXMucXVlcnlQYXJhbXM/LmVudmlyb25tZW50SWQsXG4gICAgICAgICAgICBhY3Rpdml0eU5hbWU6IHRoaXMucXVlcnlQYXJhbXM/LmFjdGl2aXR5TmFtZSxcbiAgICAgICAgICAgIGFjdGl2aXR5VHlwZTogdGhpcy5xdWVyeVBhcmFtcz8uYWN0aXZpdHlUeXBlLFxuICAgICAgICAgICAgY29tcGxldGVkRGF0ZTogdGhpcy5xdWVyeVBhcmFtcz8uY29tcGxldGVkRGF0ZSxcbiAgICAgICAgICAgIGNvbXBsZXRlZEZyb206IHRoaXMucXVlcnlQYXJhbXM/LmNvbXBsZXRlZEZyb20sXG4gICAgICAgICAgICBjb21wbGV0ZWRUbzogdGhpcy5xdWVyeVBhcmFtcz8uY29tcGxldGVkVG8sXG4gICAgICAgICAgICBlbGVtZW50SWQ6IHRoaXMucXVlcnlQYXJhbXM/LmVsZW1lbnRJZCxcbiAgICAgICAgICAgIGV4ZWN1dGlvbklkOiB0aGlzLnF1ZXJ5UGFyYW1zPy5leGVjdXRpb25JZCxcbiAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uSWQ6IHRoaXMucXVlcnlQYXJhbXM/LnByb2Nlc3NEZWZpbml0aW9uSWQsXG4gICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbktleTogdGhpcy5xdWVyeVBhcmFtcz8ucHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvblZlcnNpb246IHRoaXMucXVlcnlQYXJhbXM/LnByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbixcbiAgICAgICAgICAgIHByb2Nlc3NJbnN0YW5jZUlkOiB0aGlzLnF1ZXJ5UGFyYW1zPy5wcm9jZXNzSW5zdGFuY2VJZCxcbiAgICAgICAgICAgIHNlcnZpY2VGdWxsTmFtZTogdGhpcy5xdWVyeVBhcmFtcz8uc2VydmljZUZ1bGxOYW1lLFxuICAgICAgICAgICAgc2VydmljZU5hbWU6IHRoaXMucXVlcnlQYXJhbXM/LnNlcnZpY2VOYW1lLFxuICAgICAgICAgICAgc2VydmljZVZlcnNpb246IHRoaXMucXVlcnlQYXJhbXM/LnNlcnZpY2VWZXJzaW9uLFxuICAgICAgICAgICAgc3RhcnRlZERhdGU6IHRoaXMucXVlcnlQYXJhbXM/LnN0YXJ0ZWREYXRlLFxuICAgICAgICAgICAgc3RhcnRlZEZyb206IHRoaXMucXVlcnlQYXJhbXM/LnN0YXJ0ZWRGcm9tLFxuICAgICAgICAgICAgc3RhcnRlZFRvOiB0aGlzLnF1ZXJ5UGFyYW1zPy5zdGFydGVkVG8sXG4gICAgICAgICAgICBzdGF0dXM6IHRoaXMucXVlcnlQYXJhbXM/LnN0YXR1c1xuICAgICAgICB9IGFzIFNlcnZpY2VUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbDtcbiAgICAgICAgcmV0dXJuIHJlcXVlc3ROb2RlO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCIhcm93c1wiPnt7ICdBREZfQ0xPVURfVEFTS19MSVNULkZJTFRFUlMuTUVTU0FHRVMuTk9ORScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJyb3dzXCI+XG4gICAgICAgIDxhZGYtZGF0YXRhYmxlXG4gICAgICAgICAgICBbcm93c109XCJyb3dzXCJcbiAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICAgICAgW2RhdGFdPVwiZGF0YUFkYXB0ZXJcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiaXNMb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtzb3J0aW5nXT1cImZvcm1hdHRlZFNvcnRpbmdcIlxuICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cIm11bHRpc2VsZWN0XCJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGVcIlxuICAgICAgICAgICAgW3N0aWNreUhlYWRlcl09XCJzdGlja3lIZWFkZXJcIlxuICAgICAgICAgICAgW2FjdGlvbnNdPVwic2hvd0FjdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGlvbnNQb3NpdGlvbl09XCJhY3Rpb25zUG9zaXRpb25cIlxuICAgICAgICAgICAgW2NvbnRleHRNZW51XT1cInNob3dDb250ZXh0TWVudVwiXG4gICAgICAgICAgICBbcmVzb2x2ZXJGbl09XCJib3VuZFJlcGxhY2VQcmlvcml0eVZhbHVlc1wiXG4gICAgICAgICAgICBbc2hvd1Byb3ZpZGVkQWN0aW9uc109XCJzaG93UHJvdmlkZWRBY3Rpb25zXCJcbiAgICAgICAgICAgIFtzaG93TWFpbkRhdGF0YWJsZUFjdGlvbnNdPVwic2hvd01haW5EYXRhdGFibGVBY3Rpb25zXCJcbiAgICAgICAgICAgIFtpc1Jlc2l6aW5nRW5hYmxlZF09XCJpc1Jlc2l6aW5nRW5hYmxlZFwiXG4gICAgICAgICAgICAoc2hvd1Jvd0FjdGlvbnNNZW51KT1cIm9uU2hvd1Jvd0FjdGlvbnNNZW51KCRldmVudClcIlxuICAgICAgICAgICAgKHNob3dSb3dDb250ZXh0TWVudSk9XCJvblNob3dSb3dDb250ZXh0TWVudSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChleGVjdXRlUm93QWN0aW9uKT1cIm9uRXhlY3V0ZVJvd0FjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgIChyb3ctc2VsZWN0KT1cIm9uUm93U2VsZWN0KCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKHJvdy11bnNlbGVjdCk9XCJvblJvd1Vuc2VsZWN0KCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKHJvd0NsaWNrKT1cIm9uUm93Q2xpY2soJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAocm93LWtleXVwKT1cIm9uUm93S2V5VXAoJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAoc29ydGluZy1jaGFuZ2VkKT1cIm9uU29ydGluZ0NoYW5nZWQoJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAoY29sdW1uT3JkZXJDaGFuZ2VkKT1cIm9uQ29sdW1uT3JkZXJDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgKGNvbHVtbnNXaWR0aENoYW5nZWQpPVwib25Db2x1bW5zV2lkdGhDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGFkZi1sb2FkaW5nLWNvbnRlbnQtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWNsb3VkLXRhc2stbGlzdC1sb2FkaW5nLW1hcmdpblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJ3ByaW1hcnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIidpbmRldGVybWluYXRlJ1wiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvYWRmLWxvYWRpbmctY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxhZGYtbm8tY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtZW1wdHktY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZW1wdHlDdXN0b21Db250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJhc3NpZ25tZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQURGX0NMT1VEX1RBU0tfTElTVC5MSVNULk1FU1NBR0VTLlRJVExFJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3VidGl0bGVdPVwiJ0FERl9DTE9VRF9UQVNLX0xJU1QuTElTVC5NRVNTQUdFUy5TVUJUSVRMRScgfCB0cmFuc2xhdGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhZGYtY3VzdG9tLWVtcHR5LWNvbnRlbnQtdGVtcGxhdGVcIiAvPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2FkZi1uby1jb250ZW50LXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8YWRmLW1haW4tbWVudS1kYXRhdGFibGUtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1tYWluTWVudVRyaWdnZXI+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtZGF0YXRhYmxlLWNvbHVtbi1zZWxlY3RvclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWFpbk1lbnVUcmlnZ2VyXT1cIm1haW5NZW51VHJpZ2dlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc3VibWl0Q29sdW1uc1Zpc2liaWxpdHkpPVwib25Db2x1bW5zVmlzaWJpbGl0eUNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9hZGYtbWFpbi1tZW51LWRhdGF0YWJsZS10ZW1wbGF0ZT5cbiAgICAgICAgPC9hZGYtZGF0YXRhYmxlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,31 @@
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 { ObjectDataTableAdapter } from '@alfresco/adf-core';
18
+ import { PROCESS_LIST_CUSTOM_VARIABLE_COLUMN } from '../../../../../models/data-column-custom-data';
19
+ export class TasksListDatatableAdapter extends ObjectDataTableAdapter {
20
+ constructor(data, schema) {
21
+ super(data, schema, 'server');
22
+ }
23
+ getColumnType(row, col) {
24
+ if (col.customData?.columnType === PROCESS_LIST_CUSTOM_VARIABLE_COLUMN) {
25
+ const columnType = row.obj.variablesMap?.[col.id]?.type;
26
+ return columnType ?? 'text';
27
+ }
28
+ return super.getColumnType(row, col);
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1saXN0LWRhdGF0YWJsZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2stbGlzdC9jb21wb25lbnRzL3Rhc2stbGlzdC9kYXRhdGFibGUvdGFzay1saXN0LWRhdGF0YWJsZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBdUIsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRixPQUFPLEVBQW1DLG1DQUFtQyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFHckksTUFBTSxPQUFPLHlCQUEwQixTQUFRLHNCQUFzQjtJQUNqRSxZQUFZLElBQXNDLEVBQUUsTUFBcUQ7UUFDckcsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFZLEVBQUUsR0FBZ0Q7UUFDeEUsSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsS0FBSyxtQ0FBbUMsRUFBRSxDQUFDO1lBQ3JFLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQztZQUN4RCxPQUFPLFVBQVUsSUFBSSxNQUFNLENBQUM7UUFDaEMsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBEYXRhQ29sdW1uLCBEYXRhUm93LCBPYmplY3REYXRhVGFibGVBZGFwdGVyIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFByb2Nlc3NMaXN0RGF0YUNvbHVtbkN1c3RvbURhdGEsIFBST0NFU1NfTElTVF9DVVNUT01fVkFSSUFCTEVfQ09MVU1OIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbW9kZWxzL2RhdGEtY29sdW1uLWN1c3RvbS1kYXRhJztcbmltcG9ydCB7IFRhc2tJbnN0YW5jZUNsb3VkTGlzdFZpZXdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90YXNrLWNsb3VkLXZpZXcubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgVGFza3NMaXN0RGF0YXRhYmxlQWRhcHRlciBleHRlbmRzIE9iamVjdERhdGFUYWJsZUFkYXB0ZXIge1xuICAgIGNvbnN0cnVjdG9yKGRhdGE6IFRhc2tJbnN0YW5jZUNsb3VkTGlzdFZpZXdNb2RlbFtdLCBzY2hlbWE6IERhdGFDb2x1bW48UHJvY2Vzc0xpc3REYXRhQ29sdW1uQ3VzdG9tRGF0YT5bXSkge1xuICAgICAgICBzdXBlcihkYXRhLCBzY2hlbWEsICdzZXJ2ZXInKTtcbiAgICB9XG5cbiAgICBnZXRDb2x1bW5UeXBlKHJvdzogRGF0YVJvdywgY29sOiBEYXRhQ29sdW1uPFByb2Nlc3NMaXN0RGF0YUNvbHVtbkN1c3RvbURhdGE+KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGNvbC5jdXN0b21EYXRhPy5jb2x1bW5UeXBlID09PSBQUk9DRVNTX0xJU1RfQ1VTVE9NX1ZBUklBQkxFX0NPTFVNTikge1xuICAgICAgICAgICAgY29uc3QgY29sdW1uVHlwZSA9IHJvdy5vYmoudmFyaWFibGVzTWFwPy5bY29sLmlkXT8udHlwZTtcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW5UeXBlID8/ICd0ZXh0JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdXBlci5nZXRDb2x1bW5UeXBlKHJvdywgY29sKTtcbiAgICB9XG59XG4iXX0=