@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,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,115 @@
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 { TranslatePipe } 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 "@angular/material/progress-spinner";
35
+ const PRESET_KEY = 'adf-cloud-service-task-list.presets';
36
+ export class ServiceTaskListCloudComponent extends BaseTaskListCloudComponent {
37
+ constructor(serviceTaskListCloudService, appConfigService, taskCloudService, userPreferences, cloudPreferenceService) {
38
+ super(appConfigService, taskCloudService, userPreferences, PRESET_KEY, cloudPreferenceService);
39
+ this.serviceTaskListCloudService = serviceTaskListCloudService;
40
+ this.queryParams = {};
41
+ this.isReloadingSubject$ = new BehaviorSubject(false);
42
+ this.isLoading$ = combineLatest([this.isLoadingPreferences$, this.isReloadingSubject$]).pipe(map(([isLoadingPreferences, isReloading]) => isLoadingPreferences || isReloading));
43
+ }
44
+ reload() {
45
+ this.isReloadingSubject$.next(true);
46
+ this.requestNode = this.createRequestNode();
47
+ if (this.requestNode.appName || this.requestNode.appName === '') {
48
+ combineLatest([this.serviceTaskListCloudService.getServiceTaskByRequest(this.requestNode), this.isColumnSchemaCreated$])
49
+ .pipe(takeUntilDestroyed(this.destroyRef))
50
+ .subscribe(([tasks]) => {
51
+ this.rows = tasks.list.entries.map((task) => task.entry);
52
+ this.success.emit(tasks);
53
+ this.pagination.next(tasks.list.pagination);
54
+ this.isReloadingSubject$.next(false);
55
+ }, (error) => {
56
+ this.error.emit(error);
57
+ this.isReloadingSubject$.next(false);
58
+ });
59
+ }
60
+ else {
61
+ this.rows = [];
62
+ }
63
+ }
64
+ createRequestNode() {
65
+ const requestNode = {
66
+ appName: this.appName,
67
+ maxItems: this.size,
68
+ skipCount: this.skipCount,
69
+ sorting: this.sorting,
70
+ id: this.queryParams?.serviceTaskId,
71
+ environmentId: this.queryParams?.environmentId,
72
+ activityName: this.queryParams?.activityName,
73
+ activityType: this.queryParams?.activityType,
74
+ completedDate: this.queryParams?.completedDate,
75
+ completedFrom: this.queryParams?.completedFrom,
76
+ completedTo: this.queryParams?.completedTo,
77
+ elementId: this.queryParams?.elementId,
78
+ executionId: this.queryParams?.executionId,
79
+ processDefinitionId: this.queryParams?.processDefinitionId,
80
+ processDefinitionKey: this.queryParams?.processDefinitionKey,
81
+ processDefinitionVersion: this.queryParams?.processDefinitionVersion,
82
+ processInstanceId: this.queryParams?.processInstanceId,
83
+ serviceFullName: this.queryParams?.serviceFullName,
84
+ serviceName: this.queryParams?.serviceName,
85
+ serviceVersion: this.queryParams?.serviceVersion,
86
+ startedDate: this.queryParams?.startedDate,
87
+ startedFrom: this.queryParams?.startedFrom,
88
+ startedTo: this.queryParams?.startedTo,
89
+ status: this.queryParams?.status
90
+ };
91
+ return requestNode;
92
+ }
93
+ 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 }); }
94
+ 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: "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 }); }
95
+ }
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceTaskListCloudComponent, decorators: [{
97
+ type: Component,
98
+ args: [{ selector: 'adf-cloud-service-task-list', standalone: true, imports: [
99
+ CommonModule,
100
+ ColumnsSelectorComponent,
101
+ MainMenuDataTableTemplateDirective,
102
+ TranslatePipe,
103
+ EmptyContentComponent,
104
+ NoContentTemplateDirective,
105
+ MatProgressSpinnerModule,
106
+ LoadingContentTemplateDirective,
107
+ DataTableComponent
108
+ ], 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"] }]
109
+ }], ctorParameters: () => [{ type: i1.ServiceTaskListCloudService }, { type: i2.AppConfigService }, { type: i3.TaskCloudService }, { type: i2.UserPreferencesService }, { type: undefined, decorators: [{
110
+ type: Inject,
111
+ args: [TASK_LIST_PREFERENCES_SERVICE_TOKEN]
112
+ }] }], propDecorators: { queryParams: [{
113
+ type: Input
114
+ }] } });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS10YXNrLWxpc3QtY2xvdWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2stbGlzdC9jb21wb25lbnRzL3NlcnZpY2UtdGFzay1saXN0L3NlcnZpY2UtdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWxpc3QvY29tcG9uZW50cy9zZXJ2aWNlLXRhc2stbGlzdC9zZXJ2aWNlLXRhc2stbGlzdC1jbG91ZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUNILGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQiwrQkFBK0IsRUFDL0Isa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDekIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQW1DLG1DQUFtQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkgsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdC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bUtBYzFCLG1DQUFtQzttR0FkdEMsNkJBQTZCLHNKQzVEMUMsczBGQTBEQSxzS0RaUSxZQUFZLHdMQUNaLHdCQUF3QiwrTEFDeEIsa0NBQWtDLHdFQUNsQyxhQUFhLGtEQUNiLHFCQUFxQixxR0FDckIsMEJBQTBCLHdGQUMxQix3QkFBd0IsbU9BQ3hCLCtCQUErQixtR0FDL0Isa0JBQWtCOzs0RkFNYiw2QkFBNkI7a0JBbEJ6QyxTQUFTOytCQUNJLDZCQUE2QixjQUMzQixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWix3QkFBd0I7d0JBQ3hCLGtDQUFrQzt3QkFDbEMsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLDBCQUEwQjt3QkFDMUIsd0JBQXdCO3dCQUN4QiwrQkFBK0I7d0JBQy9CLGtCQUFrQjtxQkFDckIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTs7MEJBZ0JoQyxNQUFNOzJCQUFDLG1DQUFtQzt5Q0FaL0MsV0FBVztzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgQ29sdW1uc1NlbGVjdG9yQ29tcG9uZW50LFxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBFbXB0eUNvbnRlbnRDb21wb25lbnQsXG4gICAgTG9hZGluZ0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBNYWluTWVudURhdGFUYWJsZVRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIE5vQ29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFNlcnZpY2VUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zZXJ2aWNlLXRhc2stY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgQmFzZVRhc2tMaXN0Q2xvdWRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXRhc2stbGlzdC1jbG91ZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VydmljZVRhc2tMaXN0Q2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VydmljZS10YXNrLWxpc3QtY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBUYXNrQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGFzay1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJlZmVyZW5jZUNsb3VkU2VydmljZUludGVyZmFjZSwgVEFTS19MSVNUX1BSRUZFUkVOQ0VTX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9wdWJsaWMtYXBpJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcblxuY29uc3QgUFJFU0VUX0tFWSA9ICdhZGYtY2xvdWQtc2VydmljZS10YXNrLWxpc3QucHJlc2V0cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNsb3VkLXNlcnZpY2UtdGFzay1saXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBDb2x1bW5zU2VsZWN0b3JDb21wb25lbnQsXG4gICAgICAgIE1haW5NZW51RGF0YVRhYmxlVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIEVtcHR5Q29udGVudENvbXBvbmVudCxcbiAgICAgICAgTm9Db250ZW50VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICAgICAgTG9hZGluZ0NvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgRGF0YVRhYmxlQ29tcG9uZW50XG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VydmljZS10YXNrLWxpc3QtY2xvdWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlcnZpY2UtdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlVGFza0xpc3RDbG91ZENvbXBvbmVudCBleHRlbmRzIEJhc2VUYXNrTGlzdENsb3VkQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIHF1ZXJ5UGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgICBwcml2YXRlIGlzUmVsb2FkaW5nU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBpc0xvYWRpbmckID0gY29tYmluZUxhdGVzdChbdGhpcy5pc0xvYWRpbmdQcmVmZXJlbmNlcyQsIHRoaXMuaXNSZWxvYWRpbmdTdWJqZWN0JF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2lzTG9hZGluZ1ByZWZlcmVuY2VzLCBpc1JlbG9hZGluZ10pID0+IGlzTG9hZGluZ1ByZWZlcmVuY2VzIHx8IGlzUmVsb2FkaW5nKVxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzZXJ2aWNlVGFza0xpc3RDbG91ZFNlcnZpY2U6IFNlcnZpY2VUYXNrTGlzdENsb3VkU2VydmljZSxcbiAgICAgICAgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcbiAgICAgICAgdGFza0Nsb3VkU2VydmljZTogVGFza0Nsb3VkU2VydmljZSxcbiAgICAgICAgdXNlclByZWZlcmVuY2VzOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFRBU0tfTElTVF9QUkVGRVJFTkNFU19TRVJWSUNFX1RPS0VOKSBjbG91ZFByZWZlcmVuY2VTZXJ2aWNlOiBQcmVmZXJlbmNlQ2xvdWRTZXJ2aWNlSW50ZXJmYWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGFwcENvbmZpZ1NlcnZpY2UsIHRhc2tDbG91ZFNlcnZpY2UsIHVzZXJQcmVmZXJlbmNlcywgUFJFU0VUX0tFWSwgY2xvdWRQcmVmZXJlbmNlU2VydmljZSk7XG4gICAgfVxuXG4gICAgcmVsb2FkKCkge1xuICAgICAgICB0aGlzLmlzUmVsb2FkaW5nU3ViamVjdCQubmV4dCh0cnVlKTtcblxuICAgICAgICB0aGlzLnJlcXVlc3ROb2RlID0gdGhpcy5jcmVhdGVSZXF1ZXN0Tm9kZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLnJlcXVlc3ROb2RlLmFwcE5hbWUgfHwgdGhpcy5yZXF1ZXN0Tm9kZS5hcHBOYW1lID09PSAnJykge1xuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5zZXJ2aWNlVGFza0xpc3RDbG91ZFNlcnZpY2UuZ2V0U2VydmljZVRhc2tCeVJlcXVlc3QodGhpcy5yZXF1ZXN0Tm9kZSksIHRoaXMuaXNDb2x1bW5TY2hlbWFDcmVhdGVkJF0pXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgKFt0YXNrc10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm93cyA9IHRhc2tzLmxpc3QuZW50cmllcy5tYXAoKHRhc2spID0+IHRhc2suZW50cnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGFza3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uLm5leHQodGFza3MubGlzdC5wYWdpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZWxvYWRpbmdTdWJqZWN0JC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1JlbG9hZGluZ1N1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucm93cyA9IFtdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlUmVxdWVzdE5vZGUoKTogU2VydmljZVRhc2tRdWVyeUNsb3VkUmVxdWVzdE1vZGVsIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdE5vZGU6IFNlcnZpY2VUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbCA9IHtcbiAgICAgICAgICAgIGFwcE5hbWU6IHRoaXMuYXBwTmFtZSxcbiAgICAgICAgICAgIG1heEl0ZW1zOiB0aGlzLnNpemUsXG4gICAgICAgICAgICBza2lwQ291bnQ6IHRoaXMuc2tpcENvdW50LFxuICAgICAgICAgICAgc29ydGluZzogdGhpcy5zb3J0aW5nLFxuICAgICAgICAgICAgaWQ6IHRoaXMucXVlcnlQYXJhbXM/LnNlcnZpY2VUYXNrSWQsXG4gICAgICAgICAgICBlbnZpcm9ubWVudElkOiB0aGlzLnF1ZXJ5UGFyYW1zPy5lbnZpcm9ubWVudElkLFxuICAgICAgICAgICAgYWN0aXZpdHlOYW1lOiB0aGlzLnF1ZXJ5UGFyYW1zPy5hY3Rpdml0eU5hbWUsXG4gICAgICAgICAgICBhY3Rpdml0eVR5cGU6IHRoaXMucXVlcnlQYXJhbXM/LmFjdGl2aXR5VHlwZSxcbiAgICAgICAgICAgIGNvbXBsZXRlZERhdGU6IHRoaXMucXVlcnlQYXJhbXM/LmNvbXBsZXRlZERhdGUsXG4gICAgICAgICAgICBjb21wbGV0ZWRGcm9tOiB0aGlzLnF1ZXJ5UGFyYW1zPy5jb21wbGV0ZWRGcm9tLFxuICAgICAgICAgICAgY29tcGxldGVkVG86IHRoaXMucXVlcnlQYXJhbXM/LmNvbXBsZXRlZFRvLFxuICAgICAgICAgICAgZWxlbWVudElkOiB0aGlzLnF1ZXJ5UGFyYW1zPy5lbGVtZW50SWQsXG4gICAgICAgICAgICBleGVjdXRpb25JZDogdGhpcy5xdWVyeVBhcmFtcz8uZXhlY3V0aW9uSWQsXG4gICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbklkOiB0aGlzLnF1ZXJ5UGFyYW1zPy5wcm9jZXNzRGVmaW5pdGlvbklkLFxuICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXk6IHRoaXMucXVlcnlQYXJhbXM/LnByb2Nlc3NEZWZpbml0aW9uS2V5LFxuICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25WZXJzaW9uOiB0aGlzLnF1ZXJ5UGFyYW1zPy5wcm9jZXNzRGVmaW5pdGlvblZlcnNpb24sXG4gICAgICAgICAgICBwcm9jZXNzSW5zdGFuY2VJZDogdGhpcy5xdWVyeVBhcmFtcz8ucHJvY2Vzc0luc3RhbmNlSWQsXG4gICAgICAgICAgICBzZXJ2aWNlRnVsbE5hbWU6IHRoaXMucXVlcnlQYXJhbXM/LnNlcnZpY2VGdWxsTmFtZSxcbiAgICAgICAgICAgIHNlcnZpY2VOYW1lOiB0aGlzLnF1ZXJ5UGFyYW1zPy5zZXJ2aWNlTmFtZSxcbiAgICAgICAgICAgIHNlcnZpY2VWZXJzaW9uOiB0aGlzLnF1ZXJ5UGFyYW1zPy5zZXJ2aWNlVmVyc2lvbixcbiAgICAgICAgICAgIHN0YXJ0ZWREYXRlOiB0aGlzLnF1ZXJ5UGFyYW1zPy5zdGFydGVkRGF0ZSxcbiAgICAgICAgICAgIHN0YXJ0ZWRGcm9tOiB0aGlzLnF1ZXJ5UGFyYW1zPy5zdGFydGVkRnJvbSxcbiAgICAgICAgICAgIHN0YXJ0ZWRUbzogdGhpcy5xdWVyeVBhcmFtcz8uc3RhcnRlZFRvLFxuICAgICAgICAgICAgc3RhdHVzOiB0aGlzLnF1ZXJ5UGFyYW1zPy5zdGF0dXNcbiAgICAgICAgfSBhcyBTZXJ2aWNlVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWw7XG4gICAgICAgIHJldHVybiByZXF1ZXN0Tm9kZTtcbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIXJvd3NcIj57eyAnQURGX0NMT1VEX1RBU0tfTElTVC5GSUxURVJTLk1FU1NBR0VTLk5PTkUnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwicm93c1wiPlxuICAgICAgICA8YWRmLWRhdGF0YWJsZVxuICAgICAgICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgICAgIFtkYXRhXT1cImRhdGFBZGFwdGVyXCJcbiAgICAgICAgICAgIFtsb2FkaW5nXT1cImlzTG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICBbc29ydGluZ109XCJmb3JtYXR0ZWRTb3J0aW5nXCJcbiAgICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJtdWx0aXNlbGVjdFwiXG4gICAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlXCJcbiAgICAgICAgICAgIFtzdGlja3lIZWFkZXJdPVwic3RpY2t5SGVhZGVyXCJcbiAgICAgICAgICAgIFthY3Rpb25zXT1cInNob3dBY3Rpb25zXCJcbiAgICAgICAgICAgIFthY3Rpb25zUG9zaXRpb25dPVwiYWN0aW9uc1Bvc2l0aW9uXCJcbiAgICAgICAgICAgIFtjb250ZXh0TWVudV09XCJzaG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgW3Jlc29sdmVyRm5dPVwiYm91bmRSZXBsYWNlUHJpb3JpdHlWYWx1ZXNcIlxuICAgICAgICAgICAgW3Nob3dQcm92aWRlZEFjdGlvbnNdPVwic2hvd1Byb3ZpZGVkQWN0aW9uc1wiXG4gICAgICAgICAgICBbc2hvd01haW5EYXRhdGFibGVBY3Rpb25zXT1cInNob3dNYWluRGF0YXRhYmxlQWN0aW9uc1wiXG4gICAgICAgICAgICBbaXNSZXNpemluZ0VuYWJsZWRdPVwiaXNSZXNpemluZ0VuYWJsZWRcIlxuICAgICAgICAgICAgKHNob3dSb3dBY3Rpb25zTWVudSk9XCJvblNob3dSb3dBY3Rpb25zTWVudSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzaG93Um93Q29udGV4dE1lbnUpPVwib25TaG93Um93Q29udGV4dE1lbnUoJGV2ZW50KVwiXG4gICAgICAgICAgICAoZXhlY3V0ZVJvd0FjdGlvbik9XCJvbkV4ZWN1dGVSb3dBY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAocm93LXNlbGVjdCk9XCJvblJvd1NlbGVjdCgkYW55KCRldmVudCkpXCJcbiAgICAgICAgICAgIChyb3ctdW5zZWxlY3QpPVwib25Sb3dVbnNlbGVjdCgkYW55KCRldmVudCkpXCJcbiAgICAgICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKHJvdy1rZXl1cCk9XCJvblJvd0tleVVwKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKHNvcnRpbmctY2hhbmdlZCk9XCJvblNvcnRpbmdDaGFuZ2VkKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKGNvbHVtbk9yZGVyQ2hhbmdlZCk9XCJvbkNvbHVtbk9yZGVyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChjb2x1bW5zV2lkdGhDaGFuZ2VkKT1cIm9uQ29sdW1uc1dpZHRoQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxhZGYtbG9hZGluZy1jb250ZW50LXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1jbG91ZC10YXNrLWxpc3QtbG9hZGluZy1tYXJnaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIidwcmltYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCInaW5kZXRlcm1pbmF0ZSdcIiAvPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2FkZi1sb2FkaW5nLWNvbnRlbnQtdGVtcGxhdGU+XG4gICAgICAgICAgICA8YWRmLW5vLWNvbnRlbnQtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8YWRmLWVtcHR5LWNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWVtcHR5Q3VzdG9tQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiYXNzaWdubWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0FERl9DTE9VRF9UQVNLX0xJU1QuTElTVC5NRVNTQUdFUy5USVRMRScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N1YnRpdGxlXT1cIidBREZfQ0xPVURfVEFTS19MSVNULkxJU1QuTUVTU0FHRVMuU1VCVElUTEUnIHwgdHJhbnNsYXRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYWRmLWN1c3RvbS1lbXB0eS1jb250ZW50LXRlbXBsYXRlXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9hZGYtbm8tY29udGVudC10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPGFkZi1tYWluLW1lbnUtZGF0YXRhYmxlLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbWFpbk1lbnVUcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICA8YWRmLWRhdGF0YWJsZS1jb2x1bW4tc2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21haW5NZW51VHJpZ2dlcl09XCJtYWluTWVudVRyaWdnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHN1Ym1pdENvbHVtbnNWaXNpYmlsaXR5KT1cIm9uQ29sdW1uc1Zpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvYWRmLW1haW4tbWVudS1kYXRhdGFibGUtdGVtcGxhdGU+XG4gICAgICAgIDwvYWRmLWRhdGF0YWJsZT5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -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=