@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,146 @@
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 { createClient } from 'graphql-ws';
18
+ import { inject, Injectable } from '@angular/core';
19
+ import { GraphQLWsLink } from '@apollo/client/link/subscriptions';
20
+ import { from, InMemoryCache, split } from '@apollo/client/core';
21
+ import { Apollo } from 'apollo-angular';
22
+ import { HttpLink } from 'apollo-angular/http';
23
+ import { Kind, OperationTypeNode } from 'graphql';
24
+ import { onError } from '@apollo/client/link/error';
25
+ import { RetryLink } from '@apollo/client/link/retry';
26
+ import { getMainDefinition } from '@apollo/client/utilities';
27
+ import { take } from 'rxjs/operators';
28
+ import { AppConfigService, AuthenticationService } from '@alfresco/adf-core';
29
+ import * as i0 from "@angular/core";
30
+ import * as i1 from "apollo-angular";
31
+ import * as i2 from "apollo-angular/http";
32
+ import * as i3 from "@alfresco/adf-core";
33
+ export class WebSocketService {
34
+ constructor(apollo, httpLink, authService) {
35
+ this.apollo = apollo;
36
+ this.httpLink = httpLink;
37
+ this.authService = authService;
38
+ this.appConfigService = inject(AppConfigService);
39
+ this.subscriptionProtocol = 'graphql-ws';
40
+ }
41
+ getSubscription(options) {
42
+ const { apolloClientName, subscriptionOptions } = options;
43
+ this.authService.onLogout.pipe(take(1)).subscribe(() => {
44
+ if (this.apollo.use(apolloClientName)) {
45
+ this.apollo.removeClient(apolloClientName);
46
+ }
47
+ });
48
+ if (this.apollo.use(apolloClientName) === undefined) {
49
+ this.initSubscriptions(options);
50
+ }
51
+ return this.apollo.use(apolloClientName).subscribe({ errorPolicy: 'all', ...subscriptionOptions });
52
+ }
53
+ get contextRoot() {
54
+ return this.appConfigService.get('bpmHost', '');
55
+ }
56
+ createWsUrl(serviceUrl) {
57
+ const url = new URL(serviceUrl, this.contextRoot);
58
+ const protocol = url.protocol === 'https:' ? 'wss:' : 'ws:';
59
+ url.protocol = protocol;
60
+ return url.href;
61
+ }
62
+ createHttpUrl(serviceUrl) {
63
+ const url = new URL(serviceUrl, this.contextRoot);
64
+ return url.href;
65
+ }
66
+ initSubscriptions(options) {
67
+ this.createGraphQLWsLink(options);
68
+ this.createHttpLinkHandler(options);
69
+ const link = split(({ query }) => {
70
+ const definition = getMainDefinition(query);
71
+ return definition.kind === Kind.OPERATION_DEFINITION && definition.operation === OperationTypeNode.SUBSCRIPTION;
72
+ }, this.wsLink, this.httpLinkHandler);
73
+ const authLink = (operation, forward) => {
74
+ operation.setContext(({ headers }) => ({
75
+ headers: {
76
+ ...headers,
77
+ ...(this.subscriptionProtocol === 'graphql-ws' && { Authorization: `Bearer ${this.authService.getToken()}` }),
78
+ ...(this.subscriptionProtocol === 'transport-ws' && { 'X-Authorization': `Bearer ${this.authService.getToken()}` })
79
+ }
80
+ }));
81
+ return forward(operation);
82
+ };
83
+ const errorLink = onError(({ graphQLErrors, networkError, operation, forward }) => {
84
+ if (graphQLErrors) {
85
+ for (const error of graphQLErrors) {
86
+ if (error.extensions && error.extensions['code'] === 'UNAUTHENTICATED') {
87
+ authLink(operation, forward);
88
+ }
89
+ }
90
+ }
91
+ if (networkError) {
92
+ console.error(`[Network error]: ${networkError}`);
93
+ }
94
+ });
95
+ const retryLink = new RetryLink({
96
+ delay: {
97
+ initial: 300,
98
+ max: Number.POSITIVE_INFINITY,
99
+ jitter: true
100
+ },
101
+ attempts: {
102
+ max: 5,
103
+ retryIf: (error) => !!error
104
+ }
105
+ });
106
+ this.apollo.createNamed(options.apolloClientName, {
107
+ headers: {
108
+ ...(this.subscriptionProtocol === 'graphql-ws' && { Authorization: `Bearer ${this.authService.getToken()}` }),
109
+ ...(this.subscriptionProtocol === 'transport-ws' && { 'X-Authorization': `Bearer ${this.authService.getToken()}` })
110
+ },
111
+ link: from([authLink, retryLink, errorLink, link]),
112
+ cache: new InMemoryCache({ merge: true })
113
+ });
114
+ }
115
+ createGraphQLWsLink(options) {
116
+ this.wsLink = new GraphQLWsLink(createClient({
117
+ url: this.createWsUrl(options.wsUrl) + '/v2/ws/graphql',
118
+ connectionParams: {
119
+ Authorization: 'Bearer ' + this.authService.getToken()
120
+ },
121
+ on: {
122
+ error: () => {
123
+ this.apollo.removeClient(options.apolloClientName);
124
+ this.initSubscriptions(options);
125
+ }
126
+ },
127
+ lazy: true
128
+ }));
129
+ }
130
+ createHttpLinkHandler(options) {
131
+ this.httpLinkHandler = options.httpUrl
132
+ ? this.httpLink.create({
133
+ uri: this.createHttpUrl(options.httpUrl)
134
+ })
135
+ : undefined;
136
+ }
137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WebSocketService, deps: [{ token: i1.Apollo }, { token: i2.HttpLink }, { token: i3.AuthenticationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
138
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WebSocketService, providedIn: 'root' }); }
139
+ }
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WebSocketService, decorators: [{
141
+ type: Injectable,
142
+ args: [{
143
+ providedIn: 'root'
144
+ }]
145
+ }], ctorParameters: () => [{ type: i1.Apollo }, { type: i2.HttpLink }, { type: i3.AuthenticationService }] });
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNvY2tldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9zZXJ2aWNlcy93ZWItc29ja2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbEUsT0FBTyxFQUdILElBQUksRUFDSixhQUFhLEVBSWIsS0FBSyxFQUVSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxRQUFRLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFZN0UsTUFBTSxPQUFPLGdCQUFnQjtJQU16QixZQUE2QixNQUFjLEVBQW1CLFFBQWtCLEVBQW1CLFdBQWtDO1FBQXhHLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBbUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFtQixn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T0FBdUI7UUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTztZQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pCLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7YUFDM0MsQ0FBQztZQUNKLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDcEIsQ0FBQzsrR0E3SFEsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGYixNQUFNOzs0RkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVDbGllbnQgfSBmcm9tICdncmFwaHFsLXdzJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhRTFdzTGluayB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2xpbmsvc3Vic2NyaXB0aW9ucyc7XG5pbXBvcnQgeyBXZWJTb2NrZXRMaW5rIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay93cyc7XG5pbXBvcnQge1xuICAgIERlZmF1bHRDb250ZXh0LFxuICAgIEZldGNoUmVzdWx0LFxuICAgIGZyb20sXG4gICAgSW5NZW1vcnlDYWNoZSxcbiAgICBJbk1lbW9yeUNhY2hlQ29uZmlnLFxuICAgIE5leHRMaW5rLFxuICAgIE9wZXJhdGlvbixcbiAgICBzcGxpdCxcbiAgICBTdWJzY3JpcHRpb25PcHRpb25zXG59IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBvbGxvIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgSHR0cExpbmssIEh0dHBMaW5rSGFuZGxlciB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyL2h0dHAnO1xuaW1wb3J0IHsgS2luZCwgT3BlcmF0aW9uVHlwZU5vZGUgfSBmcm9tICdncmFwaHFsJztcbmltcG9ydCB7IG9uRXJyb3IgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL2Vycm9yJztcbmltcG9ydCB7IFJldHJ5TGluayB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2xpbmsvcmV0cnknO1xuaW1wb3J0IHsgZ2V0TWFpbkRlZmluaXRpb24gfSBmcm9tICdAYXBvbGxvL2NsaWVudC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UsIEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5cbmludGVyZmFjZSBzZXJ2aWNlT3B0aW9ucyB7XG4gICAgYXBvbGxvQ2xpZW50TmFtZTogc3RyaW5nO1xuICAgIHdzVXJsOiBzdHJpbmc7XG4gICAgaHR0cFVybD86IHN0cmluZztcbiAgICBzdWJzY3JpcHRpb25PcHRpb25zOiBTdWJzY3JpcHRpb25PcHRpb25zO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdlYlNvY2tldFNlcnZpY2Uge1xuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZSA9IGluamVjdChBcHBDb25maWdTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvblByb3RvY29sID0gJ2dyYXBocWwtd3MnO1xuICAgIHByaXZhdGUgd3NMaW5rOiBHcmFwaFFMV3NMaW5rIHwgV2ViU29ja2V0TGluaztcbiAgICBwcml2YXRlIGh0dHBMaW5rSGFuZGxlcjogSHR0cExpbmtIYW5kbGVyO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhcG9sbG86IEFwb2xsbywgcHJpdmF0ZSByZWFkb25seSBodHRwTGluazogSHR0cExpbmssIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSkge31cblxuICAgIHB1YmxpYyBnZXRTdWJzY3JpcHRpb248VD4ob3B0aW9uczogc2VydmljZU9wdGlvbnMpOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PFQ+PiB7XG4gICAgICAgIGNvbnN0IHsgYXBvbGxvQ2xpZW50TmFtZSwgc3Vic2NyaXB0aW9uT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5vbkxvZ291dC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5hcG9sbG8udXNlKGFwb2xsb0NsaWVudE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcG9sbG8ucmVtb3ZlQ2xpZW50KGFwb2xsb0NsaWVudE5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5hcG9sbG8udXNlKGFwb2xsb0NsaWVudE5hbWUpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFN1YnNjcmlwdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBvbGxvLnVzZShhcG9sbG9DbGllbnROYW1lKS5zdWJzY3JpYmU8VD4oeyBlcnJvclBvbGljeTogJ2FsbCcsIC4uLnN1YnNjcmlwdGlvbk9wdGlvbnMgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY29udGV4dFJvb3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0KCdicG1Ib3N0JywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlV3NVcmwoc2VydmljZVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChzZXJ2aWNlVXJsLCB0aGlzLmNvbnRleHRSb290KTtcbiAgICAgICAgY29uc3QgcHJvdG9jb2wgPSB1cmwucHJvdG9jb2wgPT09ICdodHRwczonID8gJ3dzczonIDogJ3dzOic7XG4gICAgICAgIHVybC5wcm90b2NvbCA9IHByb3RvY29sO1xuXG4gICAgICAgIHJldHVybiB1cmwuaHJlZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUh0dHBVcmwoc2VydmljZVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChzZXJ2aWNlVXJsLCB0aGlzLmNvbnRleHRSb290KTtcblxuICAgICAgICByZXR1cm4gdXJsLmhyZWY7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0U3Vic2NyaXB0aW9ucyhvcHRpb25zOiBzZXJ2aWNlT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUdyYXBoUUxXc0xpbmsob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVIdHRwTGlua0hhbmRsZXIob3B0aW9ucyk7XG5cbiAgICAgICAgY29uc3QgbGluayA9IHNwbGl0KFxuICAgICAgICAgICAgKHsgcXVlcnkgfSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSBnZXRNYWluRGVmaW5pdGlvbihxdWVyeSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmluaXRpb24ua2luZCA9PT0gS2luZC5PUEVSQVRJT05fREVGSU5JVElPTiAmJiBkZWZpbml0aW9uLm9wZXJhdGlvbiA9PT0gT3BlcmF0aW9uVHlwZU5vZGUuU1VCU0NSSVBUSU9OO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMud3NMaW5rLFxuICAgICAgICAgICAgdGhpcy5odHRwTGlua0hhbmRsZXJcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBhdXRoTGluayA9IChvcGVyYXRpb246IE9wZXJhdGlvbiwgZm9yd2FyZDogTmV4dExpbmspID0+IHtcbiAgICAgICAgICAgIG9wZXJhdGlvbi5zZXRDb250ZXh0KCh7IGhlYWRlcnMgfTogRGVmYXVsdENvbnRleHQpID0+ICh7XG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAuLi4odGhpcy5zdWJzY3JpcHRpb25Qcm90b2NvbCA9PT0gJ2dyYXBocWwtd3MnICYmIHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKX1gIH0pLFxuICAgICAgICAgICAgICAgICAgICAuLi4odGhpcy5zdWJzY3JpcHRpb25Qcm90b2NvbCA9PT0gJ3RyYW5zcG9ydC13cycgJiYgeyAnWC1BdXRob3JpemF0aW9uJzogYEJlYXJlciAke3RoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKX1gIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgcmV0dXJuIGZvcndhcmQob3BlcmF0aW9uKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBlcnJvckxpbmsgPSBvbkVycm9yKCh7IGdyYXBoUUxFcnJvcnMsIG5ldHdvcmtFcnJvciwgb3BlcmF0aW9uLCBmb3J3YXJkIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChncmFwaFFMRXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlcnJvciBvZiBncmFwaFFMRXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvci5leHRlbnNpb25zICYmIGVycm9yLmV4dGVuc2lvbnNbJ2NvZGUnXSA9PT0gJ1VOQVVUSEVOVElDQVRFRCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhMaW5rKG9wZXJhdGlvbiwgZm9yd2FyZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChuZXR3b3JrRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBbTmV0d29yayBlcnJvcl06ICR7bmV0d29ya0Vycm9yfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByZXRyeUxpbmsgPSBuZXcgUmV0cnlMaW5rKHtcbiAgICAgICAgICAgIGRlbGF5OiB7XG4gICAgICAgICAgICAgICAgaW5pdGlhbDogMzAwLFxuICAgICAgICAgICAgICAgIG1heDogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFxuICAgICAgICAgICAgICAgIGppdHRlcjogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGF0dGVtcHRzOiB7XG4gICAgICAgICAgICAgICAgbWF4OiA1LFxuICAgICAgICAgICAgICAgIHJldHJ5SWY6IChlcnJvcikgPT4gISFlcnJvclxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFwb2xsby5jcmVhdGVOYW1lZChvcHRpb25zLmFwb2xsb0NsaWVudE5hbWUsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAuLi4odGhpcy5zdWJzY3JpcHRpb25Qcm90b2NvbCA9PT0gJ2dyYXBocWwtd3MnICYmIHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKX1gIH0pLFxuICAgICAgICAgICAgICAgIC4uLih0aGlzLnN1YnNjcmlwdGlvblByb3RvY29sID09PSAndHJhbnNwb3J0LXdzJyAmJiB7ICdYLUF1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7dGhpcy5hdXRoU2VydmljZS5nZXRUb2tlbigpfWAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsaW5rOiBmcm9tKFthdXRoTGluaywgcmV0cnlMaW5rLCBlcnJvckxpbmssIGxpbmtdKSxcbiAgICAgICAgICAgIGNhY2hlOiBuZXcgSW5NZW1vcnlDYWNoZSh7IG1lcmdlOiB0cnVlIH0gYXMgSW5NZW1vcnlDYWNoZUNvbmZpZylcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVHcmFwaFFMV3NMaW5rKG9wdGlvbnM6IHNlcnZpY2VPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHRoaXMud3NMaW5rID0gbmV3IEdyYXBoUUxXc0xpbmsoXG4gICAgICAgICAgICBjcmVhdGVDbGllbnQoe1xuICAgICAgICAgICAgICAgIHVybDogdGhpcy5jcmVhdGVXc1VybChvcHRpb25zLndzVXJsKSArICcvdjIvd3MvZ3JhcGhxbCcsXG4gICAgICAgICAgICAgICAgY29ubmVjdGlvblBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0aGlzLmF1dGhTZXJ2aWNlLmdldFRva2VuKClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwb2xsby5yZW1vdmVDbGllbnQob3B0aW9ucy5hcG9sbG9DbGllbnROYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFN1YnNjcmlwdGlvbnMob3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxhenk6IHRydWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIdHRwTGlua0hhbmRsZXIob3B0aW9uczogc2VydmljZU9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5odHRwTGlua0hhbmRsZXIgPSBvcHRpb25zLmh0dHBVcmxcbiAgICAgICAgICAgID8gdGhpcy5odHRwTGluay5jcmVhdGUoe1xuICAgICAgICAgICAgICAgICAgdXJpOiB0aGlzLmNyZWF0ZUh0dHBVcmwob3B0aW9ucy5odHRwVXJsKVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,32 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export class StartTaskCloudRequestModel {
18
+ constructor(obj) {
19
+ if (obj) {
20
+ this.name = obj.name || null;
21
+ this.description = obj.description || null;
22
+ this.assignee = obj.assignee || null;
23
+ this.priority = obj.priority || null;
24
+ this.dueDate = obj.dueDate || null;
25
+ this.candidateUsers = obj.candidateUsers || null;
26
+ this.candidateGroups = obj.candidateGroups || null;
27
+ this.formKey = obj.formKey || null;
28
+ this.payloadType = 'CreateTaskPayload';
29
+ }
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtdGFzay1jbG91ZC1yZXF1ZXN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL21vZGVscy9zdGFydC10YXNrLWNsb3VkLXJlcXVlc3QubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsTUFBTSxPQUFPLDBCQUEwQjtJQVduQyxZQUFZLEdBQVM7UUFDakIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7WUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztZQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7WUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQztZQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDO1lBQ2pELElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUM7WUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLG1CQUFtQixDQUFDO1FBQzNDLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCBjbGFzcyBTdGFydFRhc2tDbG91ZFJlcXVlc3RNb2RlbCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgYXNzaWduZWU6IHN0cmluZztcbiAgICBwcmlvcml0eTogc3RyaW5nO1xuICAgIGR1ZURhdGU6IERhdGU7XG4gICAgY2FuZGlkYXRlVXNlcnM6IHN0cmluZ1tdO1xuICAgIGNhbmRpZGF0ZUdyb3Vwczogc3RyaW5nW107XG4gICAgcGF5bG9hZFR5cGU6IHN0cmluZztcbiAgICBmb3JtS2V5OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihvYmo/OiBhbnkpIHtcbiAgICAgICAgaWYgKG9iaikge1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gb2JqLm5hbWUgfHwgbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBvYmouZGVzY3JpcHRpb24gfHwgbnVsbDtcbiAgICAgICAgICAgIHRoaXMuYXNzaWduZWUgPSBvYmouYXNzaWduZWUgfHwgbnVsbDtcbiAgICAgICAgICAgIHRoaXMucHJpb3JpdHkgPSBvYmoucHJpb3JpdHkgfHwgbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZHVlRGF0ZSA9IG9iai5kdWVEYXRlIHx8IG51bGw7XG4gICAgICAgICAgICB0aGlzLmNhbmRpZGF0ZVVzZXJzID0gb2JqLmNhbmRpZGF0ZVVzZXJzIHx8IG51bGw7XG4gICAgICAgICAgICB0aGlzLmNhbmRpZGF0ZUdyb3VwcyA9IG9iai5jYW5kaWRhdGVHcm91cHMgfHwgbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZm9ybUtleSA9IG9iai5mb3JtS2V5IHx8IG51bGw7XG4gICAgICAgICAgICB0aGlzLnBheWxvYWRUeXBlID0gJ0NyZWF0ZVRhc2tQYXlsb2FkJztcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export const TASK_COMPLETED_STATE = 'COMPLETED';
18
+ export const TASK_CREATED_STATE = 'CREATED';
19
+ export const TASK_ASSIGNED_STATE = 'ASSIGNED';
20
+ export const TASK_SUSPENDED_STATE = 'SUSPENDED';
21
+ export const TASK_CANCELLED_STATE = 'CANCELLED';
22
+ export const TASK_CLAIM_PERMISSION = 'CLAIM';
23
+ export const TASK_RELEASE_PERMISSION = 'RELEASE';
24
+ export const TASK_VIEW_PERMISSION = 'VIEW';
25
+ export const TASK_UPDATE_PERMISSION = 'UPDATE';
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1kZXRhaWxzLWNsb3VkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL21vZGVscy90YXNrLWRldGFpbHMtY2xvdWQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBeUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFlLFdBQVcsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBZSxTQUFTLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQWUsVUFBVSxDQUFDO0FBQzFELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFlLFdBQVcsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBZSxXQUFXLENBQUM7QUFJNUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQW9CLE9BQU8sQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBb0IsU0FBUyxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFvQixNQUFNLENBQUM7QUFDNUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQW9CLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgYXBwTmFtZT86IHN0cmluZztcbiAgICBhc3NpZ25lZT86IHN0cmluZztcbiAgICBhcHBWZXJzaW9uPzogbnVtYmVyO1xuICAgIGNyZWF0ZWREYXRlPzogRGF0ZTtcbiAgICBjbGFpbWVkRGF0ZT86IERhdGU7XG4gICAgY29tcGxldGVkRGF0ZT86IERhdGU7XG4gICAgZm9ybUtleT86IGFueTtcbiAgICBjYXRlZ29yeT86IGFueTtcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBkdWVEYXRlPzogRGF0ZTtcbiAgICBsYXN0TW9kaWZpZWQ/OiBEYXRlO1xuICAgIGxhc3RNb2RpZmllZFRvPzogRGF0ZTtcbiAgICBsYXN0TW9kaWZpZWRGcm9tPzogRGF0ZTtcbiAgICBvd25lcj86IGFueTtcbiAgICBwYXJlbnRUYXNrSWQ/OiBzdHJpbmc7XG4gICAgcGVybWlzc2lvbnM/OiBUYXNrUGVybWlzc2lvbnNbXTtcbiAgICBwcmlvcml0eT86IG51bWJlcjtcbiAgICBwcm9jZXNzRGVmaW5pdGlvbklkPzogc3RyaW5nO1xuICAgIHByb2Nlc3NJbnN0YW5jZUlkPzogc3RyaW5nO1xuICAgIHJvb3RQcm9jZXNzSW5zdGFuY2VJZD86IHN0cmluZztcbiAgICBzdGF0dXM/OiBUYXNrU3RhdHVzO1xuICAgIHN0YW5kYWxvbmU/OiBib29sZWFuO1xuICAgIGNhbmRpZGF0ZVVzZXJzPzogc3RyaW5nW107XG4gICAgY2FuZGlkYXRlR3JvdXBzPzogc3RyaW5nW107XG4gICAgbWFuYWdlck9mQ2FuZGlkYXRlR3JvdXA/OiBib29sZWFuO1xuICAgIG1lbWJlck9mQ2FuZGlkYXRlR3JvdXA/OiBib29sZWFuO1xuICAgIG1lbWJlck9mQ2FuZGlkYXRlVXNlcnM/OiBib29sZWFuO1xuICAgIHByb2Nlc3NEZWZpbml0aW9uRGVwbG95bWVudElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXJ0VGFza0Nsb3VkUmVzcG9uc2VNb2RlbCB7XG4gICAgZW50cnk6IFRhc2tEZXRhaWxzQ2xvdWRNb2RlbDtcbn1cblxuZXhwb3J0IHR5cGUgVGFza1N0YXR1cyA9ICdDT01QTEVURUQnIHwgJ0NSRUFURUQnIHwgJ0FTU0lHTkVEJyB8ICdTVVNQRU5ERUQnIHwgJ0NBTkNFTExFRCc7XG5cbmV4cG9ydCBjb25zdCBUQVNLX0NPTVBMRVRFRF9TVEFURTogVGFza1N0YXR1cyA9ICdDT01QTEVURUQnO1xuZXhwb3J0IGNvbnN0IFRBU0tfQ1JFQVRFRF9TVEFURTogVGFza1N0YXR1cyA9ICdDUkVBVEVEJztcbmV4cG9ydCBjb25zdCBUQVNLX0FTU0lHTkVEX1NUQVRFOiBUYXNrU3RhdHVzID0gJ0FTU0lHTkVEJztcbmV4cG9ydCBjb25zdCBUQVNLX1NVU1BFTkRFRF9TVEFURTogVGFza1N0YXR1cyA9ICdTVVNQRU5ERUQnO1xuZXhwb3J0IGNvbnN0IFRBU0tfQ0FOQ0VMTEVEX1NUQVRFOiBUYXNrU3RhdHVzID0gJ0NBTkNFTExFRCc7XG5cbmV4cG9ydCB0eXBlIFRhc2tQZXJtaXNzaW9ucyA9ICdWSUVXJyB8ICdDTEFJTScgfCAnUkVMRUFTRScgfCAnVVBEQVRFJztcblxuZXhwb3J0IGNvbnN0IFRBU0tfQ0xBSU1fUEVSTUlTU0lPTjogVGFza1Blcm1pc3Npb25zID0gJ0NMQUlNJztcbmV4cG9ydCBjb25zdCBUQVNLX1JFTEVBU0VfUEVSTUlTU0lPTjogVGFza1Blcm1pc3Npb25zID0gJ1JFTEVBU0UnO1xuZXhwb3J0IGNvbnN0IFRBU0tfVklFV19QRVJNSVNTSU9OOiBUYXNrUGVybWlzc2lvbnMgPSAnVklFVyc7XG5leHBvcnQgY29uc3QgVEFTS19VUERBVEVfUEVSTUlTU0lPTjogVGFza1Blcm1pc3Npb25zID0gJ1VQREFURSc7XG4iXX0=
@@ -0,0 +1,23 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export const DEFAULT_TASK_PRIORITIES = [
18
+ { label: 'ADF_CLOUD_TASK_LIST.PROPERTIES.PRIORITY_VALUES.NONE', value: '0', key: '0' },
19
+ { label: 'ADF_CLOUD_TASK_LIST.PROPERTIES.PRIORITY_VALUES.LOW', value: '1', key: '1' },
20
+ { label: 'ADF_CLOUD_TASK_LIST.PROPERTIES.PRIORITY_VALUES.NORMAL', value: '2', key: '2' },
21
+ { label: 'ADF_CLOUD_TASK_LIST.PROPERTIES.PRIORITY_VALUES.HIGH', value: '3', key: '3' }
22
+ ];
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay9tb2RlbHMvdGFzay5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFRSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBeUI7SUFDekQsRUFBRSxLQUFLLEVBQUUscURBQXFELEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0lBQ3RGLEVBQUUsS0FBSyxFQUFFLG9EQUFvRCxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtJQUNyRixFQUFFLEtBQUssRUFBRSx1REFBdUQsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7SUFDeEYsRUFBRSxLQUFLLEVBQUUscURBQXFELEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0NBQ3pGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFza1ByaW9yaXR5T3B0aW9uIHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RBU0tfUFJJT1JJVElFUzogVGFza1ByaW9yaXR5T3B0aW9uW10gPSBbXG4gICAgeyBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0xJU1QuUFJPUEVSVElFUy5QUklPUklUWV9WQUxVRVMuTk9ORScsIHZhbHVlOiAnMCcsIGtleTogJzAnIH0sXG4gICAgeyBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0xJU1QuUFJPUEVSVElFUy5QUklPUklUWV9WQUxVRVMuTE9XJywgdmFsdWU6ICcxJywga2V5OiAnMScgfSxcbiAgICB7IGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfTElTVC5QUk9QRVJUSUVTLlBSSU9SSVRZX1ZBTFVFUy5OT1JNQUwnLCB2YWx1ZTogJzInLCBrZXk6ICcyJyB9LFxuICAgIHsgbGFiZWw6ICdBREZfQ0xPVURfVEFTS19MSVNULlBST1BFUlRJRVMuUFJJT1JJVFlfVkFMVUVTLkhJR0gnLCB2YWx1ZTogJzMnLCBrZXk6ICczJyB9XG5dO1xuIl19
@@ -0,0 +1,26 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ export * from './task-list/public-api';
18
+ export * from './task-filters/public-api';
19
+ export * from './models/task-details-cloud.model';
20
+ export * from './models/task.model';
21
+ export * from './models/start-task-cloud-request.model';
22
+ export * from './task-header/public-api';
23
+ export * from './task-form/public-api';
24
+ export * from './services/task-cloud.service';
25
+ export * from './task-cloud.module';
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3Rhc2stbGlzdC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay1maWx0ZXJzL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvdGFzay1kZXRhaWxzLWNsb3VkLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3Rhc2subW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvc3RhcnQtdGFzay1jbG91ZC1yZXF1ZXN0Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay1oZWFkZXIvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Rhc2stZm9ybS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdGFzay1jbG91ZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay1jbG91ZC5tb2R1bGUnO1xuIl19
@@ -0,0 +1,272 @@
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 { inject, Injectable } from '@angular/core';
18
+ import { TranslationService } from '@alfresco/adf-core';
19
+ import { throwError, of, Subject } from 'rxjs';
20
+ import { map } from 'rxjs/operators';
21
+ import { TASK_ASSIGNED_STATE, TASK_CLAIM_PERMISSION, TASK_CREATED_STATE, TASK_RELEASE_PERMISSION } from '../models/task-details-cloud.model';
22
+ import { BaseCloudService } from '../../services/base-cloud.service';
23
+ import { StartTaskCloudRequestModel } from '../models/start-task-cloud-request.model';
24
+ import { ProcessDefinitionCloud } from '../../models/process-definition-cloud.model';
25
+ import { DEFAULT_TASK_PRIORITIES } from '../models/task.model';
26
+ import { IdentityUserService } from '../../people/services/identity-user.service';
27
+ import { AdfHttpClient } from '@alfresco/adf-core/api';
28
+ import * as i0 from "@angular/core";
29
+ import * as i1 from "@alfresco/adf-core/api";
30
+ export class TaskCloudService extends BaseCloudService {
31
+ constructor(adfHttpClient) {
32
+ super(adfHttpClient);
33
+ this.translateService = inject(TranslationService);
34
+ this.identityUserService = inject(IdentityUserService);
35
+ this.dataChangesDetected$ = new Subject();
36
+ }
37
+ /**
38
+ * Complete a task.
39
+ *
40
+ * @param appName Name of the app
41
+ * @param taskId ID of the task to complete
42
+ * @returns Details of the task that was completed
43
+ */
44
+ completeTask(appName, taskId) {
45
+ if ((appName || appName === '') && taskId) {
46
+ const url = `${this.getBasePath(appName)}/rb/v1/tasks/${taskId}/complete`;
47
+ const payload = { payloadType: 'CompleteTaskPayload' };
48
+ return this.post(url, payload);
49
+ }
50
+ else {
51
+ return throwError('AppName/TaskId not configured');
52
+ }
53
+ }
54
+ /**
55
+ * Validate if a task can be completed.
56
+ *
57
+ * @param taskDetails task details object
58
+ * @returns Boolean value if the task can be completed
59
+ */
60
+ canCompleteTask(taskDetails) {
61
+ return taskDetails && taskDetails.status === TASK_ASSIGNED_STATE && this.isAssignedToMe(taskDetails.assignee);
62
+ }
63
+ /**
64
+ * Validate if a task is editable.
65
+ *
66
+ * @param taskDetails task details object
67
+ * @returns Boolean value if the task is editable
68
+ */
69
+ isTaskEditable(taskDetails) {
70
+ return taskDetails && taskDetails.status === TASK_ASSIGNED_STATE && this.isAssignedToMe(taskDetails.assignee);
71
+ }
72
+ isAssigneePropertyClickable(taskDetails, candidateUsers, candidateGroups) {
73
+ let isClickable = false;
74
+ const states = [TASK_ASSIGNED_STATE];
75
+ if (candidateUsers?.length || candidateGroups?.length) {
76
+ isClickable = states.includes(taskDetails.status);
77
+ }
78
+ return isClickable;
79
+ }
80
+ /**
81
+ * Validate if a task can be claimed.
82
+ *
83
+ * @param taskDetails task details object
84
+ * @returns Boolean value if the task can be completed
85
+ */
86
+ canClaimTask(taskDetails) {
87
+ return taskDetails?.status === TASK_CREATED_STATE && taskDetails?.permissions.includes(TASK_CLAIM_PERMISSION) && !taskDetails?.standalone;
88
+ }
89
+ /**
90
+ * Validate if a task can be unclaimed.
91
+ *
92
+ * @param taskDetails task details object
93
+ * @returns Boolean value if the task can be completed
94
+ */
95
+ canUnclaimTask(taskDetails) {
96
+ const currentUser = this.identityUserService.getCurrentUserInfo().username;
97
+ return (taskDetails?.status === TASK_ASSIGNED_STATE &&
98
+ taskDetails?.assignee === currentUser &&
99
+ taskDetails?.permissions.includes(TASK_RELEASE_PERMISSION) &&
100
+ !taskDetails?.standalone);
101
+ }
102
+ /**
103
+ * Claims a task for an assignee.
104
+ *
105
+ * @param appName Name of the app
106
+ * @param taskId ID of the task to claim
107
+ * @param assignee User to assign the task to
108
+ * @returns Details of the claimed task
109
+ */
110
+ claimTask(appName, taskId, assignee) {
111
+ if ((appName || appName === '') && taskId) {
112
+ const queryUrl = `${this.getBasePath(appName)}/rb/v1/tasks/${taskId}/claim?assignee=${assignee}`;
113
+ return this.post(queryUrl).pipe(map((res) => {
114
+ this.dataChangesDetected$.next(res);
115
+ return res.entry;
116
+ }));
117
+ }
118
+ else {
119
+ return throwError('AppName/TaskId not configured');
120
+ }
121
+ }
122
+ /**
123
+ * Un-claims a task.
124
+ *
125
+ * @param appName Name of the app
126
+ * @param taskId ID of the task to unclaim
127
+ * @returns Details of the task that was unclaimed
128
+ */
129
+ unclaimTask(appName, taskId) {
130
+ if ((appName || appName === '') && taskId) {
131
+ const queryUrl = `${this.getBasePath(appName)}/rb/v1/tasks/${taskId}/release`;
132
+ return this.post(queryUrl).pipe(map((res) => {
133
+ this.dataChangesDetected$.next(res);
134
+ return res.entry;
135
+ }));
136
+ }
137
+ else {
138
+ return throwError('AppName/TaskId not configured');
139
+ }
140
+ }
141
+ /**
142
+ * Gets details of a task.
143
+ *
144
+ * @param appName Name of the app
145
+ * @param taskId ID of the task whose details you want
146
+ * @returns Task details
147
+ */
148
+ getTaskById(appName, taskId) {
149
+ if ((appName || appName === '') && taskId) {
150
+ const queryUrl = `${this.getBasePath(appName)}/query/v1/tasks/${taskId}`;
151
+ return this.get(queryUrl).pipe(map((res) => res.entry));
152
+ }
153
+ else {
154
+ return throwError('AppName/TaskId not configured');
155
+ }
156
+ }
157
+ /**
158
+ * Creates a new standalone task.
159
+ *
160
+ * @param startTaskRequest request model
161
+ * @param appName application name
162
+ * @returns Details of the newly created task
163
+ */
164
+ createNewTask(startTaskRequest, appName) {
165
+ const queryUrl = `${this.getBasePath(appName)}/rb/v1/tasks`;
166
+ const payload = JSON.stringify(new StartTaskCloudRequestModel(startTaskRequest));
167
+ return this.post(queryUrl, payload).pipe(map((response) => response.entry));
168
+ }
169
+ /**
170
+ * Updates the details (name, description, due date) for a task.
171
+ *
172
+ * @param appName Name of the app
173
+ * @param taskId ID of the task to update
174
+ * @param payload Data to update the task
175
+ * @returns Updated task details
176
+ */
177
+ updateTask(appName, taskId, payload) {
178
+ if ((appName || appName === '') && taskId) {
179
+ payload.payloadType = 'UpdateTaskPayload';
180
+ const queryUrl = `${this.getBasePath(appName)}/rb/v1/tasks/${taskId}`;
181
+ return this.put(queryUrl, payload).pipe(map((res) => res.entry));
182
+ }
183
+ else {
184
+ return throwError('AppName/TaskId not configured');
185
+ }
186
+ }
187
+ /**
188
+ * Gets candidate users of the task.
189
+ *
190
+ * @param appName Name of the app
191
+ * @param taskId ID of the task
192
+ * @returns Candidate users
193
+ */
194
+ getCandidateUsers(appName, taskId) {
195
+ if ((appName || appName === '') && taskId) {
196
+ const queryUrl = `${this.getBasePath(appName)}/query/v1/tasks/${taskId}/candidate-users`;
197
+ return this.get(queryUrl);
198
+ }
199
+ else {
200
+ return of([]);
201
+ }
202
+ }
203
+ /**
204
+ * Gets candidate groups of the task.
205
+ *
206
+ * @param appName Name of the app
207
+ * @param taskId ID of the task
208
+ * @returns Candidate groups
209
+ */
210
+ getCandidateGroups(appName, taskId) {
211
+ if ((appName || appName === '') && taskId) {
212
+ const queryUrl = `${this.getBasePath(appName)}/query/v1/tasks/${taskId}/candidate-groups`;
213
+ return this.get(queryUrl);
214
+ }
215
+ else {
216
+ return of([]);
217
+ }
218
+ }
219
+ /**
220
+ * Gets the process definitions associated with an app.
221
+ *
222
+ * @param appName Name of the target app
223
+ * @returns Array of process definitions
224
+ */
225
+ getProcessDefinitions(appName) {
226
+ if (appName || appName === '') {
227
+ const url = `${this.getBasePath(appName)}/rb/v1/process-definitions`;
228
+ return this.get(url).pipe(map((res) => res.list.entries.map((processDefs) => new ProcessDefinitionCloud(processDefs.entry))));
229
+ }
230
+ else {
231
+ return throwError('AppName not configured');
232
+ }
233
+ }
234
+ /**
235
+ * Updates the task assignee.
236
+ *
237
+ * @param appName Name of the app
238
+ * @param taskId ID of the task to update assignee
239
+ * @param assignee assignee to update current user task assignee
240
+ * @returns Updated task details with new assignee
241
+ */
242
+ assign(appName, taskId, assignee) {
243
+ if (appName && taskId) {
244
+ const payLoad = { assignee, taskId, payloadType: 'AssignTaskPayload' };
245
+ const url = `${this.getBasePath(appName)}/rb/v1/tasks/${taskId}/assign`;
246
+ return this.post(url, payLoad).pipe(map((res) => res.entry));
247
+ }
248
+ else {
249
+ return throwError('AppName/TaskId not configured');
250
+ }
251
+ }
252
+ getPriorityLabel(priority) {
253
+ const priorityItem = this.priorities.find((item) => item.value === priority.toString()) || this.priorities[0];
254
+ return this.translateService.instant(priorityItem.label);
255
+ }
256
+ get priorities() {
257
+ return this.appConfigService.get('adf-cloud-priority-values') || DEFAULT_TASK_PRIORITIES;
258
+ }
259
+ isAssignedToMe(assignee) {
260
+ const currentUser = this.identityUserService.getCurrentUserInfo().username;
261
+ return assignee === currentUser;
262
+ }
263
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskCloudService, deps: [{ token: i1.AdfHttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
264
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskCloudService, providedIn: 'root' }); }
265
+ }
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskCloudService, decorators: [{
267
+ type: Injectable,
268
+ args: [{
269
+ providedIn: 'root'
270
+ }]
271
+ }], ctorParameters: () => [{ type: i1.AdfHttpClient }] });
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jbG91ZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3NlcnZpY2VzL3Rhc2stY2xvdWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQXFCLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBR0gsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQzFCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLHVCQUF1QixFQUFzQixNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBS3ZELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxnQkFBZ0I7SUFNbEQsWUFBWSxhQUE0QjtRQUNwQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFOakIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFD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LFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFBSSx1QkFBdUIsQ0FBQztJQUM3RixDQUFDO0lBRVMsY0FBYyxDQUFDLFFBQWdCO1FBQ3JDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUMzRSxPQUFPLFFBQVEsS0FBSyxXQUFXLENBQUM7SUFDcEMsQ0FBQzsrR0FyUVEsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGYixNQUFNOzs0RkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhcmRWaWV3QXJyYXlJdGVtLCBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgVGFza0RldGFpbHNDbG91ZE1vZGVsLFxuICAgIFN0YXJ0VGFza0Nsb3VkUmVzcG9uc2VNb2RlbCxcbiAgICBUQVNLX0FTU0lHTkVEX1NUQVRFLFxuICAgIFRBU0tfQ0xBSU1fUEVSTUlTU0lPTixcbiAgICBUQVNLX0NSRUFURURfU1RBVEUsXG4gICAgVEFTS19SRUxFQVNFX1BFUk1JU1NJT05cbn0gZnJvbSAnLi4vbW9kZWxzL3Rhc2stZGV0YWlscy1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmFzZS1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXJ0VGFza0Nsb3VkUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3N0YXJ0LXRhc2stY2xvdWQtcmVxdWVzdC5tb2RlbCc7XG5pbXBvcnQgeyBQcm9jZXNzRGVmaW5pdGlvbkNsb3VkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb2Nlc3MtZGVmaW5pdGlvbi1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBERUZBVUxUX1RBU0tfUFJJT1JJVElFUywgVGFza1ByaW9yaXR5T3B0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3Rhc2subW9kZWwnO1xuaW1wb3J0IHsgSWRlbnRpdHlVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3Blb3BsZS9zZXJ2aWNlcy9pZGVudGl0eS11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWRmSHR0cENsaWVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZS9hcGknO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tDbG91ZFNlcnZpY2UgZXh0ZW5kcyBCYXNlQ2xvdWRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgICBwcml2YXRlIGlkZW50aXR5VXNlclNlcnZpY2UgPSBpbmplY3QoSWRlbnRpdHlVc2VyU2VydmljZSk7XG5cbiAgICBkYXRhQ2hhbmdlc0RldGVjdGVkJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihhZGZIdHRwQ2xpZW50OiBBZGZIdHRwQ2xpZW50KSB7XG4gICAgICAgIHN1cGVyKGFkZkh0dHBDbGllbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXBsZXRlIGEgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gY29tcGxldGVcbiAgICAgKiBAcmV0dXJucyBEZXRhaWxzIG9mIHRoZSB0YXNrIHRoYXQgd2FzIGNvbXBsZXRlZFxuICAgICAqL1xuICAgIGNvbXBsZXRlVGFzayhhcHBOYW1lOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+IHtcbiAgICAgICAgaWYgKChhcHBOYW1lIHx8IGFwcE5hbWUgPT09ICcnKSAmJiB0YXNrSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Rhc2tzLyR7dGFza0lkfS9jb21wbGV0ZWA7XG4gICAgICAgICAgICBjb25zdCBwYXlsb2FkID0geyBwYXlsb2FkVHlwZTogJ0NvbXBsZXRlVGFza1BheWxvYWQnIH07XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc3Q8YW55LCBUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+KHVybCwgcGF5bG9hZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQXBwTmFtZS9UYXNrSWQgbm90IGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlIGlmIGEgdGFzayBjYW4gYmUgY29tcGxldGVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRhc2tEZXRhaWxzIHRhc2sgZGV0YWlscyBvYmplY3RcbiAgICAgKiBAcmV0dXJucyBCb29sZWFuIHZhbHVlIGlmIHRoZSB0YXNrIGNhbiBiZSBjb21wbGV0ZWRcbiAgICAgKi9cbiAgICBjYW5Db21wbGV0ZVRhc2sodGFza0RldGFpbHM6IFRhc2tEZXRhaWxzQ2xvdWRNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGFza0RldGFpbHMgJiYgdGFza0RldGFpbHMuc3RhdHVzID09PSBUQVNLX0FTU0lHTkVEX1NUQVRFICYmIHRoaXMuaXNBc3NpZ25lZFRvTWUodGFza0RldGFpbHMuYXNzaWduZWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlIGlmIGEgdGFzayBpcyBlZGl0YWJsZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrRGV0YWlscyB0YXNrIGRldGFpbHMgb2JqZWN0XG4gICAgICogQHJldHVybnMgQm9vbGVhbiB2YWx1ZSBpZiB0aGUgdGFzayBpcyBlZGl0YWJsZVxuICAgICAqL1xuICAgIGlzVGFza0VkaXRhYmxlKHRhc2tEZXRhaWxzOiBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRhc2tEZXRhaWxzICYmIHRhc2tEZXRhaWxzLnN0YXR1cyA9PT0gVEFTS19BU1NJR05FRF9TVEFURSAmJiB0aGlzLmlzQXNzaWduZWRUb01lKHRhc2tEZXRhaWxzLmFzc2lnbmVlKTtcbiAgICB9XG5cbiAgICBpc0Fzc2lnbmVlUHJvcGVydHlDbGlja2FibGUoXG4gICAgICAgIHRhc2tEZXRhaWxzOiBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwsXG4gICAgICAgIGNhbmRpZGF0ZVVzZXJzOiBDYXJkVmlld0FycmF5SXRlbVtdLFxuICAgICAgICBjYW5kaWRhdGVHcm91cHM6IENhcmRWaWV3QXJyYXlJdGVtW11cbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGlzQ2xpY2thYmxlID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHN0YXRlcyA9IFtUQVNLX0FTU0lHTkVEX1NUQVRFXTtcbiAgICAgICAgaWYgKGNhbmRpZGF0ZVVzZXJzPy5sZW5ndGggfHwgY2FuZGlkYXRlR3JvdXBzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlzQ2xpY2thYmxlID0gc3RhdGVzLmluY2x1ZGVzKHRhc2tEZXRhaWxzLnN0YXR1cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQ2xpY2thYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlIGlmIGEgdGFzayBjYW4gYmUgY2xhaW1lZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXNrRGV0YWlscyB0YXNrIGRldGFpbHMgb2JqZWN0XG4gICAgICogQHJldHVybnMgQm9vbGVhbiB2YWx1ZSBpZiB0aGUgdGFzayBjYW4gYmUgY29tcGxldGVkXG4gICAgICovXG4gICAgY2FuQ2xhaW1UYXNrKHRhc2tEZXRhaWxzOiBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRhc2tEZXRhaWxzPy5zdGF0dXMgPT09IFRBU0tfQ1JFQVRFRF9TVEFURSAmJiB0YXNrRGV0YWlscz8ucGVybWlzc2lvbnMuaW5jbHVkZXMoVEFTS19DTEFJTV9QRVJNSVNTSU9OKSAmJiAhdGFza0RldGFpbHM/LnN0YW5kYWxvbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGUgaWYgYSB0YXNrIGNhbiBiZSB1bmNsYWltZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGFza0RldGFpbHMgdGFzayBkZXRhaWxzIG9iamVjdFxuICAgICAqIEByZXR1cm5zIEJvb2xlYW4gdmFsdWUgaWYgdGhlIHRhc2sgY2FuIGJlIGNvbXBsZXRlZFxuICAgICAqL1xuICAgIGNhblVuY2xhaW1UYXNrKHRhc2tEZXRhaWxzOiBUYXNrRGV0YWlsc0Nsb3VkTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudFVzZXIgPSB0aGlzLmlkZW50aXR5VXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXJJbmZvKCkudXNlcm5hbWU7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0YXNrRGV0YWlscz8uc3RhdHVzID09PSBUQVNLX0FTU0lHTkVEX1NUQVRFICYmXG4gICAgICAgICAgICB0YXNrRGV0YWlscz8uYXNzaWduZWUgPT09IGN1cnJlbnRVc2VyICYmXG4gICAgICAgICAgICB0YXNrRGV0YWlscz8ucGVybWlzc2lvbnMuaW5jbHVkZXMoVEFTS19SRUxFQVNFX1BFUk1JU1NJT04pICYmXG4gICAgICAgICAgICAhdGFza0RldGFpbHM/LnN0YW5kYWxvbmVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGFpbXMgYSB0YXNrIGZvciBhbiBhc3NpZ25lZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gY2xhaW1cbiAgICAgKiBAcGFyYW0gYXNzaWduZWUgVXNlciB0byBhc3NpZ24gdGhlIHRhc2sgdG9cbiAgICAgKiBAcmV0dXJucyBEZXRhaWxzIG9mIHRoZSBjbGFpbWVkIHRhc2tcbiAgICAgKi9cbiAgICBjbGFpbVRhc2soYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgYXNzaWduZWU6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPiB7XG4gICAgICAgIGlmICgoYXBwTmFtZSB8fCBhcHBOYW1lID09PSAnJykgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Rhc2tzLyR7dGFza0lkfS9jbGFpbT9hc3NpZ25lZT0ke2Fzc2lnbmVlfWA7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc3QocXVlcnlVcmwpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFDaGFuZ2VzRGV0ZWN0ZWQkLm5leHQocmVzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5lbnRyeTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBcHBOYW1lL1Rhc2tJZCBub3QgY29uZmlndXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW4tY2xhaW1zIGEgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gdW5jbGFpbVxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIHRhc2sgdGhhdCB3YXMgdW5jbGFpbWVkXG4gICAgICovXG4gICAgdW5jbGFpbVRhc2soYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPiB7XG4gICAgICAgIGlmICgoYXBwTmFtZSB8fCBhcHBOYW1lID09PSAnJykgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Rhc2tzLyR7dGFza0lkfS9yZWxlYXNlYDtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucG9zdChxdWVyeVVybCkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZXNEZXRlY3RlZCQubmV4dChyZXMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzLmVudHJ5O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0FwcE5hbWUvVGFza0lkIG5vdCBjb25maWd1cmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGRldGFpbHMgb2YgYSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgYXBwXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFzayB3aG9zZSBkZXRhaWxzIHlvdSB3YW50XG4gICAgICogQHJldHVybnMgVGFzayBkZXRhaWxzXG4gICAgICovXG4gICAgZ2V0VGFza0J5SWQoYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPiB7XG4gICAgICAgIGlmICgoYXBwTmFtZSB8fCBhcHBOYW1lID09PSAnJykgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3F1ZXJ5L3YxL3Rhc2tzLyR7dGFza0lkfWA7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldChxdWVyeVVybCkucGlwZShtYXAoKHJlczogYW55KSA9PiByZXMuZW50cnkpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBcHBOYW1lL1Rhc2tJZCBub3QgY29uZmlndXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBzdGFuZGFsb25lIHRhc2suXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3RhcnRUYXNrUmVxdWVzdCByZXF1ZXN0IG1vZGVsXG4gICAgICogQHBhcmFtIGFwcE5hbWUgYXBwbGljYXRpb24gbmFtZVxuICAgICAqIEByZXR1cm5zIERldGFpbHMgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgdGFza1xuICAgICAqL1xuICAgIGNyZWF0ZU5ld1Rhc2soc3RhcnRUYXNrUmVxdWVzdDogU3RhcnRUYXNrQ2xvdWRSZXF1ZXN0TW9kZWwsIGFwcE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0RldGFpbHNDbG91ZE1vZGVsPiB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5VXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcmIvdjEvdGFza3NgO1xuICAgICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkobmV3IFN0YXJ0VGFza0Nsb3VkUmVxdWVzdE1vZGVsKHN0YXJ0VGFza1JlcXVlc3QpKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5wb3N0PGFueSwgU3RhcnRUYXNrQ2xvdWRSZXNwb25zZU1vZGVsPihxdWVyeVVybCwgcGF5bG9hZCkucGlwZShtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5lbnRyeSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGRldGFpbHMgKG5hbWUsIGRlc2NyaXB0aW9uLCBkdWUgZGF0ZSkgZm9yIGEgdGFzay5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSB0YXNrSWQgSUQgb2YgdGhlIHRhc2sgdG8gdXBkYXRlXG4gICAgICogQHBhcmFtIHBheWxvYWQgRGF0YSB0byB1cGRhdGUgdGhlIHRhc2tcbiAgICAgKiBAcmV0dXJucyBVcGRhdGVkIHRhc2sgZGV0YWlsc1xuICAgICAqL1xuICAgIHVwZGF0ZVRhc2soYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgcGF5bG9hZDogYW55KTogT2JzZXJ2YWJsZTxUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+IHtcbiAgICAgICAgaWYgKChhcHBOYW1lIHx8IGFwcE5hbWUgPT09ICcnKSAmJiB0YXNrSWQpIHtcbiAgICAgICAgICAgIHBheWxvYWQucGF5bG9hZFR5cGUgPSAnVXBkYXRlVGFza1BheWxvYWQnO1xuICAgICAgICAgICAgY29uc3QgcXVlcnlVcmwgPSBgJHt0aGlzLmdldEJhc2VQYXRoKGFwcE5hbWUpfS9yYi92MS90YXNrcy8ke3Rhc2tJZH1gO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wdXQocXVlcnlVcmwsIHBheWxvYWQpLnBpcGUobWFwKChyZXM6IGFueSkgPT4gcmVzLmVudHJ5KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQXBwTmFtZS9UYXNrSWQgbm90IGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgY2FuZGlkYXRlIHVzZXJzIG9mIHRoZSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgYXBwXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFza1xuICAgICAqIEByZXR1cm5zIENhbmRpZGF0ZSB1c2Vyc1xuICAgICAqL1xuICAgIGdldENhbmRpZGF0ZVVzZXJzKGFwcE5hbWU6IHN0cmluZywgdGFza0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgICAgIGlmICgoYXBwTmFtZSB8fCBhcHBOYW1lID09PSAnJykgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3F1ZXJ5L3YxL3Rhc2tzLyR7dGFza0lkfS9jYW5kaWRhdGUtdXNlcnNgO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0PHN0cmluZ1tdPihxdWVyeVVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBjYW5kaWRhdGUgZ3JvdXBzIG9mIHRoZSB0YXNrLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgYXBwXG4gICAgICogQHBhcmFtIHRhc2tJZCBJRCBvZiB0aGUgdGFza1xuICAgICAqIEByZXR1cm5zIENhbmRpZGF0ZSBncm91cHNcbiAgICAgKi9cbiAgICBnZXRDYW5kaWRhdGVHcm91cHMoYXBwTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICAgICAgaWYgKChhcHBOYW1lIHx8IGFwcE5hbWUgPT09ICcnKSAmJiB0YXNrSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5VXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcXVlcnkvdjEvdGFza3MvJHt0YXNrSWR9L2NhbmRpZGF0ZS1ncm91cHNgO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0PHN0cmluZ1tdPihxdWVyeVVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcHJvY2VzcyBkZWZpbml0aW9ucyBhc3NvY2lhdGVkIHdpdGggYW4gYXBwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIHByb2Nlc3MgZGVmaW5pdGlvbnNcbiAgICAgKi9cbiAgICBnZXRQcm9jZXNzRGVmaW5pdGlvbnMoYXBwTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9jZXNzRGVmaW5pdGlvbkNsb3VkW10+IHtcbiAgICAgICAgaWYgKGFwcE5hbWUgfHwgYXBwTmFtZSA9PT0gJycpIHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Byb2Nlc3MtZGVmaW5pdGlvbnNgO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXQodXJsKS5waXBlKG1hcCgocmVzOiBhbnkpID0+IHJlcy5saXN0LmVudHJpZXMubWFwKChwcm9jZXNzRGVmcykgPT4gbmV3IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQocHJvY2Vzc0RlZnMuZW50cnkpKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0FwcE5hbWUgbm90IGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIHRhc2sgYXNzaWduZWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSBhcHBcbiAgICAgKiBAcGFyYW0gdGFza0lkIElEIG9mIHRoZSB0YXNrIHRvIHVwZGF0ZSBhc3NpZ25lZVxuICAgICAqIEBwYXJhbSBhc3NpZ25lZSBhc3NpZ25lZSB0byB1cGRhdGUgY3VycmVudCB1c2VyIHRhc2sgYXNzaWduZWVcbiAgICAgKiBAcmV0dXJucyBVcGRhdGVkIHRhc2sgZGV0YWlscyB3aXRoIG5ldyBhc3NpZ25lZVxuICAgICAqL1xuICAgIGFzc2lnbihhcHBOYW1lOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nLCBhc3NpZ25lZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrRGV0YWlsc0Nsb3VkTW9kZWw+IHtcbiAgICAgICAgaWYgKGFwcE5hbWUgJiYgdGFza0lkKSB7XG4gICAgICAgICAgICBjb25zdCBwYXlMb2FkID0geyBhc3NpZ25lZSwgdGFza0lkLCBwYXlsb2FkVHlwZTogJ0Fzc2lnblRhc2tQYXlsb2FkJyB9O1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcmIvdjEvdGFza3MvJHt0YXNrSWR9L2Fzc2lnbmA7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc3QodXJsLCBwYXlMb2FkKS5waXBlKG1hcCgocmVzOiBhbnkpID0+IHJlcy5lbnRyeSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0FwcE5hbWUvVGFza0lkIG5vdCBjb25maWd1cmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRQcmlvcml0eUxhYmVsKHByaW9yaXR5OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwcmlvcml0eUl0ZW0gPSB0aGlzLnByaW9yaXRpZXMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gcHJpb3JpdHkudG9TdHJpbmcoKSkgfHwgdGhpcy5wcmlvcml0aWVzWzBdO1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQocHJpb3JpdHlJdGVtLmxhYmVsKTtcbiAgICB9XG5cbiAgICBnZXQgcHJpb3JpdGllcygpOiBUYXNrUHJpb3JpdHlPcHRpb25bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0KCdhZGYtY2xvdWQtcHJpb3JpdHktdmFsdWVzJykgfHwgREVGQVVMVF9UQVNLX1BSSU9SSVRJRVM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzQXNzaWduZWRUb01lKGFzc2lnbmVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudFVzZXIgPSB0aGlzLmlkZW50aXR5VXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXJJbmZvKCkudXNlcm5hbWU7XG4gICAgICAgIHJldHVybiBhc3NpZ25lZSA9PT0gY3VycmVudFVzZXI7XG4gICAgfVxufVxuIl19