@valtimo/document 12.14.1 → 13.0.0

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 (38) hide show
  1. package/fesm2022/valtimo-document.mjs +137 -100
  2. package/fesm2022/valtimo-document.mjs.map +1 -1
  3. package/lib/models/advanced-document-search-request.d.ts +1 -1
  4. package/lib/models/case-tags.model.d.ts +1 -1
  5. package/lib/models/document.model.d.ts +38 -26
  6. package/lib/models/document.model.d.ts.map +1 -1
  7. package/lib/models/internal-case-status.model.d.ts +1 -1
  8. package/lib/models/process-document-definition-search.model.d.ts.map +1 -1
  9. package/lib/services/case-status.service.d.ts +7 -7
  10. package/lib/services/case-status.service.d.ts.map +1 -1
  11. package/lib/services/document.service.d.ts +26 -22
  12. package/lib/services/document.service.d.ts.map +1 -1
  13. package/lib/services/file-sort.service.d.ts +1 -1
  14. package/lib/services/tags.service.d.ts +7 -7
  15. package/lib/services/tags.service.d.ts.map +1 -1
  16. package/lib/utils/case-tags.utils.d.ts +1 -1
  17. package/lib/utils/internal-case-status.utils.d.ts +1 -1
  18. package/package.json +4 -6
  19. package/esm2022/lib/document.module.mjs +0 -26
  20. package/esm2022/lib/models/advanced-document-search-request.mjs +0 -56
  21. package/esm2022/lib/models/audit.model.mjs +0 -17
  22. package/esm2022/lib/models/case-tags.model.mjs +0 -17
  23. package/esm2022/lib/models/document-search-request.mjs +0 -64
  24. package/esm2022/lib/models/document.model.mjs +0 -53
  25. package/esm2022/lib/models/index.mjs +0 -24
  26. package/esm2022/lib/models/internal-case-status.model.mjs +0 -17
  27. package/esm2022/lib/models/list-sorting.model.mjs +0 -17
  28. package/esm2022/lib/models/process-document-definition-search.model.mjs +0 -2
  29. package/esm2022/lib/services/case-status.service.mjs +0 -54
  30. package/esm2022/lib/services/document.service.mjs +0 -276
  31. package/esm2022/lib/services/file-sort.service.mjs +0 -39
  32. package/esm2022/lib/services/index.mjs +0 -20
  33. package/esm2022/lib/services/tags.service.mjs +0 -54
  34. package/esm2022/lib/utils/case-tags.utils.mjs +0 -32
  35. package/esm2022/lib/utils/index.mjs +0 -18
  36. package/esm2022/lib/utils/internal-case-status.utils.mjs +0 -32
  37. package/esm2022/public_api.mjs +0 -23
  38. package/esm2022/valtimo-document.mjs +0 -5
@@ -1,17 +0,0 @@
1
- /*
2
- * Copyright 2015-2024 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- export {};
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zb3J0aW5nLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb2N1bWVudC9zcmMvbGliL21vZGVscy9saXN0LXNvcnRpbmcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgdHlwZSBEaXJlY3Rpb24gPSAnQVNDJyB8ICdERVNDJztcblxuZXhwb3J0IGludGVyZmFjZSBTb3J0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBkaXJlY3Rpb246IERpcmVjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3J0U3RhdGUge1xuICBzdGF0ZTogU29ydDtcbiAgaXNTb3J0aW5nOiBib29sZWFuO1xufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1kb2N1bWVudC1kZWZpbml0aW9uLXNlYXJjaC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9jdW1lbnQvc3JjL2xpYi9tb2RlbHMvcHJvY2Vzcy1kb2N1bWVudC1kZWZpbml0aW9uLXNlYXJjaC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uU2VhcmNoIHtcbiAgc3RhcnRhYmxlQnlVc2VyPzogYm9vbGVhbjtcbiAgY2FuSW5pdGlhbGl6ZURvY3VtZW50PzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -1,54 +0,0 @@
1
- /*
2
- * Copyright 2015-2024 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { Injectable } from '@angular/core';
17
- import { BaseApiService } from '@valtimo/config';
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "@angular/common/http";
20
- import * as i2 from "@valtimo/config";
21
- export class CaseStatusService extends BaseApiService {
22
- constructor(httpClient, configService) {
23
- super(httpClient, configService);
24
- this.httpClient = httpClient;
25
- this.configService = configService;
26
- }
27
- getInternalCaseStatusesManagement(caseDefinitionName) {
28
- return this.httpClient.get(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/internal-status`));
29
- }
30
- getInternalCaseStatuses(caseDefinitionName) {
31
- return this.httpClient.get(this.getApiUrl(`/v1/case-definition/${caseDefinitionName}/internal-status`));
32
- }
33
- saveInternalCaseStatus(caseDefinitionName, status) {
34
- return this.httpClient.post(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/internal-status`), status);
35
- }
36
- deleteInternalCaseStatus(caseDefinitionName, statusKey) {
37
- return this.httpClient.delete(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/internal-status/${statusKey}`));
38
- }
39
- updateInternalCaseStatus(caseDefinitionName, currentStatusKey, updatedStatus) {
40
- return this.httpClient.put(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/internal-status/${currentStatusKey}`), updatedStatus);
41
- }
42
- updateInternalCaseStatuses(caseDefinitionName, reorderedStatus) {
43
- return this.httpClient.put(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/internal-status`), reorderedStatus);
44
- }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseStatusService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
46
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseStatusService, providedIn: 'root' }); }
47
- }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseStatusService, decorators: [{
49
- type: Injectable,
50
- args: [{
51
- providedIn: 'root',
52
- }]
53
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1zdGF0dXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9jdW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9jYXNlLXN0YXR1cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsY0FBYyxFQUFnQixNQUFNLGlCQUFpQixDQUFDOzs7O0FBUTlELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxjQUFjO0lBQ25ELFlBQ3FCLFVBQXNCLEVBQ3RCLGFBQTRCO1FBRS9DLEtBQUssQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFIZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBR2pELENBQUM7SUFFTSxpQ0FBaUMsQ0FDdEMsa0JBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsa0NBQWtDLGtCQUFrQixrQkFBa0IsQ0FBQyxDQUN2RixDQUFDO0lBQ0osQ0FBQztJQUVNLHVCQUF1QixDQUFDLGtCQUEwQjtRQUN2RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixrQkFBa0Isa0JBQWtCLENBQUMsQ0FDNUUsQ0FBQztJQUNKLENBQUM7SUFFTSxzQkFBc0IsQ0FDM0Isa0JBQTBCLEVBQzFCLE1BQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsa0NBQWtDLGtCQUFrQixrQkFBa0IsQ0FBQyxFQUN0RixNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxrQkFBMEIsRUFBRSxTQUFpQjtRQUMzRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUMzQixJQUFJLENBQUMsU0FBUyxDQUNaLGtDQUFrQyxrQkFBa0Isb0JBQW9CLFNBQVMsRUFBRSxDQUNwRixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sd0JBQXdCLENBQzdCLGtCQUEwQixFQUMxQixnQkFBd0IsRUFDeEIsYUFBaUM7UUFFakMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDeEIsSUFBSSxDQUFDLFNBQVMsQ0FDWixrQ0FBa0Msa0JBQWtCLG9CQUFvQixnQkFBZ0IsRUFBRSxDQUMzRixFQUNELGFBQWEsQ0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVNLDBCQUEwQixDQUMvQixrQkFBMEIsRUFDMUIsZUFBcUM7UUFFckMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0Msa0JBQWtCLGtCQUFrQixDQUFDLEVBQ3RGLGVBQWUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7K0dBN0RVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYXNlQXBpU2VydmljZSwgQ29uZmlnU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SW50ZXJuYWxDYXNlU3RhdHVzfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZVN0YXR1c1NlcnZpY2UgZXh0ZW5kcyBCYXNlQXBpU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCByZWFkb25seSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGh0dHBDbGllbnQsIGNvbmZpZ1NlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIGdldEludGVybmFsQ2FzZVN0YXR1c2VzTWFuYWdlbWVudChcbiAgICBjYXNlRGVmaW5pdGlvbk5hbWU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPEludGVybmFsQ2FzZVN0YXR1c1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8SW50ZXJuYWxDYXNlU3RhdHVzW10+KFxuICAgICAgdGhpcy5nZXRBcGlVcmwoYC9tYW5hZ2VtZW50L3YxL2Nhc2UtZGVmaW5pdGlvbi8ke2Nhc2VEZWZpbml0aW9uTmFtZX0vaW50ZXJuYWwtc3RhdHVzYClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldEludGVybmFsQ2FzZVN0YXR1c2VzKGNhc2VEZWZpbml0aW9uTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbnRlcm5hbENhc2VTdGF0dXNbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEludGVybmFsQ2FzZVN0YXR1c1tdPihcbiAgICAgIHRoaXMuZ2V0QXBpVXJsKGAvdjEvY2FzZS1kZWZpbml0aW9uLyR7Y2FzZURlZmluaXRpb25OYW1lfS9pbnRlcm5hbC1zdGF0dXNgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZUludGVybmFsQ2FzZVN0YXR1cyhcbiAgICBjYXNlRGVmaW5pdGlvbk5hbWU6IHN0cmluZyxcbiAgICBzdGF0dXM6IEludGVybmFsQ2FzZVN0YXR1c1xuICApOiBPYnNlcnZhYmxlPEludGVybmFsQ2FzZVN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxJbnRlcm5hbENhc2VTdGF0dXM+KFxuICAgICAgdGhpcy5nZXRBcGlVcmwoYC9tYW5hZ2VtZW50L3YxL2Nhc2UtZGVmaW5pdGlvbi8ke2Nhc2VEZWZpbml0aW9uTmFtZX0vaW50ZXJuYWwtc3RhdHVzYCksXG4gICAgICBzdGF0dXNcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZUludGVybmFsQ2FzZVN0YXR1cyhjYXNlRGVmaW5pdGlvbk5hbWU6IHN0cmluZywgc3RhdHVzS2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmRlbGV0ZTx2b2lkPihcbiAgICAgIHRoaXMuZ2V0QXBpVXJsKFxuICAgICAgICBgL21hbmFnZW1lbnQvdjEvY2FzZS1kZWZpbml0aW9uLyR7Y2FzZURlZmluaXRpb25OYW1lfS9pbnRlcm5hbC1zdGF0dXMvJHtzdGF0dXNLZXl9YFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlSW50ZXJuYWxDYXNlU3RhdHVzKFxuICAgIGNhc2VEZWZpbml0aW9uTmFtZTogc3RyaW5nLFxuICAgIGN1cnJlbnRTdGF0dXNLZXk6IHN0cmluZyxcbiAgICB1cGRhdGVkU3RhdHVzOiBJbnRlcm5hbENhc2VTdGF0dXNcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcm5hbENhc2VTdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dDxJbnRlcm5hbENhc2VTdGF0dXM+KFxuICAgICAgdGhpcy5nZXRBcGlVcmwoXG4gICAgICAgIGAvbWFuYWdlbWVudC92MS9jYXNlLWRlZmluaXRpb24vJHtjYXNlRGVmaW5pdGlvbk5hbWV9L2ludGVybmFsLXN0YXR1cy8ke2N1cnJlbnRTdGF0dXNLZXl9YFxuICAgICAgKSxcbiAgICAgIHVwZGF0ZWRTdGF0dXNcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUludGVybmFsQ2FzZVN0YXR1c2VzKFxuICAgIGNhc2VEZWZpbml0aW9uTmFtZTogc3RyaW5nLFxuICAgIHJlb3JkZXJlZFN0YXR1czogSW50ZXJuYWxDYXNlU3RhdHVzW11cbiAgKTogT2JzZXJ2YWJsZTxJbnRlcm5hbENhc2VTdGF0dXNbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0PEludGVybmFsQ2FzZVN0YXR1c1tdPihcbiAgICAgIHRoaXMuZ2V0QXBpVXJsKGAvbWFuYWdlbWVudC92MS9jYXNlLWRlZmluaXRpb24vJHtjYXNlRGVmaW5pdGlvbk5hbWV9L2ludGVybmFsLXN0YXR1c2ApLFxuICAgICAgcmVvcmRlcmVkU3RhdHVzXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,276 +0,0 @@
1
- /*
2
- * Copyright 2015-2024 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { HttpHeaders, HttpParams } from '@angular/common/http';
17
- import { Injectable } from '@angular/core';
18
- import { InterceptorSkip } from '@valtimo/security';
19
- import { catchError, of, switchMap } from 'rxjs';
20
- import * as i0 from "@angular/core";
21
- import * as i1 from "@angular/common/http";
22
- import * as i2 from "@valtimo/config";
23
- export class DocumentService {
24
- constructor(http, configService) {
25
- this.http = http;
26
- this.configService = configService;
27
- this.EMPTY_DOCUMENTS_RESPONSE = {
28
- content: [],
29
- empty: true,
30
- first: false,
31
- last: false,
32
- number: 0,
33
- numberOfElements: 0,
34
- size: 0,
35
- sort: false,
36
- totalElements: 0,
37
- totalPages: 0,
38
- };
39
- this.valtimoEndpointUri = this.configService.config.valtimoApi.endpointUri;
40
- }
41
- // Document-calls
42
- getAllDefinitions() {
43
- return this.http.get(`${this.valtimoEndpointUri}v1/document-definition?size=1000`);
44
- }
45
- queryDefinitions(params) {
46
- return this.http.get(`${this.valtimoEndpointUri}v1/document-definition`, { params });
47
- }
48
- queryDefinitionsForManagement(params) {
49
- return this.http.get(`${this.valtimoEndpointUri}management/v1/document-definition`, { params });
50
- }
51
- getDocumentDefinition(documentDefinitionName, skipNotFound = false) {
52
- return skipNotFound
53
- ? this.http.get(`${this.valtimoEndpointUri}v1/document-definition/${documentDefinitionName}`, { headers: new HttpHeaders().set(InterceptorSkip, '404') })
54
- : this.http.get(`${this.valtimoEndpointUri}v1/document-definition/${documentDefinitionName}`);
55
- }
56
- getDocumentDefinitionForManagement(documentDefinitionName) {
57
- return this.http.get(`${this.valtimoEndpointUri}management/v1/document-definition/${documentDefinitionName}`);
58
- }
59
- getDocuments(documentSearchRequest) {
60
- return this.http.post(`${this.valtimoEndpointUri}v1/document-search`, documentSearchRequest.asHttpBody(), {
61
- params: documentSearchRequest.asHttpParams(),
62
- });
63
- }
64
- getDocumentsSearch(documentSearchRequest, searchOperator, assigneeFilter, otherFilters, statusFilter, caseTagsFilter) {
65
- const body = {
66
- ...documentSearchRequest.asHttpBody(),
67
- ...(searchOperator && { searchOperator }),
68
- ...(assigneeFilter && { assigneeFilter }),
69
- ...(otherFilters && { otherFilters }),
70
- ...(statusFilter && { statusFilter }),
71
- ...(caseTagsFilter && { caseTagsFilter }),
72
- };
73
- return this.http
74
- .post(`${this.valtimoEndpointUri}v1/document-definition/${documentSearchRequest.definitionName}/search`, body, { params: documentSearchRequest.asHttpParams() })
75
- .pipe(catchError(() => of(this.EMPTY_DOCUMENTS_RESPONSE)));
76
- }
77
- getSpecifiedDocumentsSearch(documentSearchRequest, searchOperator, assigneeFilter, otherFilters, statusFilter, caseTagsFilter) {
78
- const body = {
79
- ...documentSearchRequest.asHttpBody(),
80
- ...(searchOperator && { searchOperator }),
81
- ...(assigneeFilter && { assigneeFilter }),
82
- ...(otherFilters && { otherFilters }),
83
- ...(statusFilter && { statusFilter }),
84
- ...(caseTagsFilter && { caseTagsFilter }),
85
- };
86
- return this.http
87
- .post(`${this.valtimoEndpointUri}v1/case/${documentSearchRequest.definitionName}/search`, body, { params: documentSearchRequest.asHttpParams() })
88
- .pipe(catchError(() => of(this.EMPTY_DOCUMENTS_RESPONSE)));
89
- }
90
- getDocumentSearchFields(documentDefinitionName) {
91
- return this.http.get(`${this.valtimoEndpointUri}v1/document-search/${documentDefinitionName}/fields`);
92
- }
93
- putDocumentSearch(documentDefinitionName, request) {
94
- return this.http.put(`${this.valtimoEndpointUri}v1/document-search/${documentDefinitionName}/fields`, [...request]);
95
- }
96
- postDocumentSearch(documentDefinitionName, request) {
97
- return this.http.post(`${this.valtimoEndpointUri}v1/document-search/${documentDefinitionName}/fields`, { ...request });
98
- }
99
- deleteDocumentSearch(documentDefinitionName, key) {
100
- const options = {
101
- headers: new HttpHeaders({
102
- 'Content-Type': 'application/json',
103
- }),
104
- };
105
- return this.http.delete(`${this.valtimoEndpointUri}v1/document-search/${documentDefinitionName}/fields?key=${key}`, options);
106
- }
107
- getDropdownDataProviders() {
108
- return this.http.get(`${this.valtimoEndpointUri}v1/data/dropdown-list/provider`);
109
- }
110
- getDropdownData(provider, documentDefinitionName, fieldKey) {
111
- const dropdownListKey = encodeURI(documentDefinitionName + '_' + fieldKey);
112
- return this.http.get(`${this.valtimoEndpointUri}v1/data/dropdown-list?provider=${provider}&key=${dropdownListKey}`);
113
- }
114
- postDropdownData(provider, documentDefinitionName, fieldKey, dropdownData) {
115
- const dropdownListKey = encodeURI(documentDefinitionName + '_' + fieldKey);
116
- return this.http.post(`${this.valtimoEndpointUri}v1/data/dropdown-list?provider=${provider}&key=${dropdownListKey}`, dropdownData);
117
- }
118
- deleteDropdownData(provider, documentDefinitionName, fieldKey) {
119
- const dropdownListKey = encodeURI(documentDefinitionName + '_' + fieldKey);
120
- return this.http.delete(`${this.valtimoEndpointUri}v1/data/dropdown-list?provider=${provider}&key=${dropdownListKey}`);
121
- }
122
- getDocument(documentId) {
123
- return this.http.get(`${this.valtimoEndpointUri}v1/document/${documentId}`);
124
- }
125
- modifyDocument(document) {
126
- return this.http.put(`${this.valtimoEndpointUri}v1/document`, document);
127
- }
128
- deleteDocument(documentId) {
129
- return this.http.delete(`${this.valtimoEndpointUri}v1/document/${documentId}`);
130
- }
131
- // ProcessDocument-calls
132
- getProcessDocumentDefinitions() {
133
- return this.http.get(`${this.valtimoEndpointUri}v1/process-document/definition`);
134
- }
135
- findProcessDocumentDefinitions(documentDefinitionName) {
136
- return this.http.get(`${this.valtimoEndpointUri}v1/process-document/definition/document/${documentDefinitionName}`);
137
- }
138
- findProcessDocumentDefinitionsByStartableByUser(documentDefinitionName, startableByUser) {
139
- return this.http.get(`${this.valtimoEndpointUri}v1/process-document/definition/document/${documentDefinitionName}?startableByUser=${startableByUser}`);
140
- }
141
- findProcessDocumentDefinitionsByCanInitializeDocument(documentDefinitionName, canInitializeDocument) {
142
- return this.http.get(`${this.valtimoEndpointUri}v1/process-document/definition/document/${documentDefinitionName}?canInitializeDocument=${canInitializeDocument}`);
143
- }
144
- findProcessDocumentDefinitionsForDocument(documentId, searchRequest) {
145
- const params = new HttpParams({
146
- fromObject: searchRequest,
147
- });
148
- return this.http.get(`${this.valtimoEndpointUri}v2/process-document/definition/document/${documentId}`, { params });
149
- }
150
- findProcessDocumentDefinitionsByVersion(documentDefinitionName, version) {
151
- return this.http.get(`${this.valtimoEndpointUri}v1/process-document/definition/document/${documentDefinitionName}/version/${version}`);
152
- }
153
- findProcessDocumentDefinitionsByProcessDefinitionKey(processDefinitionKey) {
154
- return this.http.get(`${this.valtimoEndpointUri}v1/process-document/definition/process/${processDefinitionKey}`);
155
- }
156
- findProcessDocumentInstances(documentId) {
157
- return this.http.get(`${this.valtimoEndpointUri}v1/process-document/instance/document/${documentId}`);
158
- }
159
- createDocumentDefinitionTemplate(payload) {
160
- return this.http
161
- .post(`${this.valtimoEndpointUri}management/v1/document-definition-template`, payload)
162
- .pipe(switchMap((definition) => this.createDocumentDefinitionForManagement({ definition: JSON.stringify(definition) })));
163
- }
164
- newDocumentAndStartProcess(request) {
165
- return this.http.post(`${this.valtimoEndpointUri}v1/process-document/operation/new-document-and-start-process`, request);
166
- }
167
- modifyDocumentAndCompleteTask(request) {
168
- return this.http.post(`${this.valtimoEndpointUri}v1/process-document/operation/modify-document-and-complete-task`, request);
169
- }
170
- modifyDocumentAndStartProcess(request) {
171
- return this.http.post(`${this.valtimoEndpointUri}v1/process-document/operation/modify-document-and-start-process`, request);
172
- }
173
- createProcessDocumentDefinition(request) {
174
- return this.http.post(`${this.valtimoEndpointUri}v1/process-document/definition`, request);
175
- }
176
- createDocumentDefinitionForManagement(documentDefinitionCreateRequest) {
177
- const options = {
178
- headers: new HttpHeaders({
179
- 'Content-Type': 'application/json',
180
- }),
181
- };
182
- return this.http.post(`${this.valtimoEndpointUri}management/v1/document-definition`, documentDefinitionCreateRequest, options);
183
- }
184
- deleteProcessDocumentDefinition(request) {
185
- const options = {
186
- headers: new HttpHeaders({
187
- 'Content-Type': 'application/json',
188
- }),
189
- body: request,
190
- };
191
- return this.http.delete(`${this.valtimoEndpointUri}v1/process-document/definition`, options);
192
- }
193
- getAuditLog(documentId, page = 0) {
194
- let params = new HttpParams();
195
- params = params.set('page', page.toString());
196
- return this.http.get(`${this.valtimoEndpointUri}v1/process-document/instance/document/${documentId}/audit`, { params });
197
- }
198
- assignResource(documentId, resourceId) {
199
- return this.http.post(`${this.valtimoEndpointUri}v1/document/${documentId}/resource/${resourceId}`, {});
200
- }
201
- removeResource(documentId, resourceId) {
202
- const options = {
203
- headers: new HttpHeaders({
204
- 'Content-Type': 'application/json',
205
- }),
206
- };
207
- return this.http.delete(`${this.valtimoEndpointUri}v1/document/${documentId}/resource/${resourceId}`, options);
208
- }
209
- removeDocumentDefinitionForManagement(name) {
210
- return this.http.delete(`${this.valtimoEndpointUri}management/v1/document-definition/${name}`);
211
- }
212
- sendMessage(documentId, request) {
213
- return this.http.post(`${this.valtimoEndpointUri}v1/document/${documentId}/message`, request);
214
- }
215
- getDocumentTypes(documentDefinitionName) {
216
- return this.http.get(`${this.valtimoEndpointUri}v1/documentdefinition/${documentDefinitionName}/zaaktype/documenttype`);
217
- }
218
- getProcessDocumentDefinitionFromProcessInstanceId(processInstanceId) {
219
- return this.configService.getFeatureToggle('enableSuppressDocumentError')
220
- ? this.http.get(`${this.valtimoEndpointUri}v1/process-document/definition/processinstance/${processInstanceId}`, {
221
- headers: new HttpHeaders().set(InterceptorSkip, '400'),
222
- })
223
- : this.http.get(`${this.valtimoEndpointUri}v1/process-document/definition/processinstance/${processInstanceId}`);
224
- }
225
- assignHandlerToDocument(documentId, assigneeId) {
226
- return this.http.post(`${this.valtimoEndpointUri}v1/document/${documentId}/assign`, { assigneeId });
227
- }
228
- unassignHandlerFromDocument(documentId) {
229
- return this.http.post(`${this.valtimoEndpointUri}v1/document/${documentId}/unassign`, {});
230
- }
231
- getCandidateUsers(documentId) {
232
- return this.http.get(`${this.valtimoEndpointUri}v1/document/${documentId}/candidate-user`);
233
- }
234
- getOpenDocumentCount() {
235
- return this.http.get(`${this.valtimoEndpointUri}v1/document-definition/open/count`);
236
- }
237
- patchCaseSettingsForManagement(documentDefinitionName, request) {
238
- return this.http.patch(`${this.valtimoEndpointUri}management/v1/case/${documentDefinitionName}/settings`, { ...request });
239
- }
240
- getCaseSettings(documentDefinitionName) {
241
- return this.http.get(`${this.valtimoEndpointUri}v1/case/${documentDefinitionName}/settings`);
242
- }
243
- getCaseSettingsForManagement(documentDefinitionName) {
244
- return this.http.get(`${this.valtimoEndpointUri}management/v1/case/${documentDefinitionName}/settings`);
245
- }
246
- getCaseList(documentDefinitionName) {
247
- return this.http.get(`${this.valtimoEndpointUri}v1/case/${documentDefinitionName}/list-column`);
248
- }
249
- getCaseListForManagement(documentDefinitionName) {
250
- return this.http.get(`${this.valtimoEndpointUri}management/v1/case/${documentDefinitionName}/list-column`);
251
- }
252
- postCaseListForManagement(documentDefinitionName, request) {
253
- return this.http.post(`${this.valtimoEndpointUri}management/v1/case/${documentDefinitionName}/list-column`, { ...request });
254
- }
255
- putCaseListForManagement(documentDefinitionName, request) {
256
- return this.http.put(`${this.valtimoEndpointUri}management/v1/case/${documentDefinitionName}/list-column`, [...request]);
257
- }
258
- deleteCaseListForManagement(documentDefinitionName, columnKey) {
259
- return this.http.delete(`${this.valtimoEndpointUri}management/v1/case/${documentDefinitionName}/list-column/${columnKey}`);
260
- }
261
- getDocumentDefinitionVersions(documentDefinitionName) {
262
- return this.http.get(`${this.valtimoEndpointUri}management/v1/document-definition/${documentDefinitionName}/version`);
263
- }
264
- getDocumentDefinitionByVersion(documentDefinitionName, version) {
265
- return this.http.get(`${this.valtimoEndpointUri}management/v1/document-definition/${documentDefinitionName}/version/${version}`);
266
- }
267
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
268
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentService, providedIn: 'root' }); }
269
- }
270
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentService, decorators: [{
271
- type: Injectable,
272
- args: [{
273
- providedIn: 'root',
274
- }]
275
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9jdW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9kb2N1bWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFhLFdBQVcsRUFBRSxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBVXpDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsVUFBVSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7QUF3QzNELE1BQU0sT0FBTyxlQUFlO0lBZ0IxQixZQUNVLElBQWdCLEVBQ2hCLGFBQTRCO1FBRDVCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFmckIsNkJBQXdCLEdBQW1DO1lBQzFFLE9BQU8sRUFBRSxFQUFFO1lBQ1gsS0FBSyxFQUFFLElBQUk7WUFDWCxLQUFLLEVBQUUsS0FBSztZQUNaLElBQUksRUFBRSxLQUFLO1lBQ1gsTUFBTSxFQUFFLENBQUM7WUFDVCxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25CLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLEtBQUs7WUFDWCxhQUFhLEVBQUUsQ0FBQztZQUNoQixVQUFVLEVBQUUsQ0FBQztTQUNkLENBQUM7UUFNQSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztJQUM3RSxDQUFDO0lBRUQsaUJBQWlCO0lBQ1YsaUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFB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QzNHLENBQUM7SUFDSixDQUFDOytHQW5oQlUsZUFBZTttSEFBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFzc2lnbmVlRmlsdGVyLFxuICBDb25maWdTZXJ2aWNlLFxuICBOYW1lZFVzZXIsXG4gIFNlYXJjaEZpZWxkLFxuICBTZWFyY2hGaWx0ZXIsXG4gIFNlYXJjaEZpbHRlclJhbmdlLFxuICBTZWFyY2hPcGVyYXRvcixcbn0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7SW50ZXJjZXB0b3JTa2lwfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBBc3NpZ25IYW5kbGVyVG9Eb2N1bWVudFJlc3VsdCxcbiAgQXVkaXRSZWNvcmQsXG4gIENhc2VMaXN0Q29sdW1uLFxuICBDYXNlU2V0dGluZ3MsXG4gIENyZWF0ZURvY3VtZW50RGVmaW5pdGlvblJlc3BvbnNlLFxuICBEb2N1bWVudCxcbiAgRG9jdW1lbnREZWZpbml0aW9uLFxuICBEb2N1bWVudERlZmluaXRpb25DcmVhdGVSZXF1ZXN0LFxuICBEb2N1bWVudERlZmluaXRpb25zLFxuICBEb2N1bWVudERlZmluaXRpb25WZXJzaW9uc1Jlc3VsdCxcbiAgRG9jdW1lbnRSZXN1bHQsXG4gIERvY3VtZW50cyxcbiAgRG9jdW1lbnRTZW5kTWVzc2FnZVJlcXVlc3QsXG4gIERvY3VtZW50VHlwZSxcbiAgTW9kaWZ5RG9jdW1lbnRBbmRDb21wbGV0ZVRhc2tSZXF1ZXN0SW1wbCxcbiAgTW9kaWZ5RG9jdW1lbnRBbmRDb21wbGV0ZVRhc2tSZXN1bHQsXG4gIE1vZGlmeURvY3VtZW50QW5kU3RhcnRQcm9jZXNzUmVxdWVzdEltcGwsXG4gIE1vZGlmeURvY3VtZW50QW5kU3RhcnRQcm9jZXNzUmVzdWx0LFxuICBOZXdEb2N1bWVudEFuZFN0YXJ0UHJvY2Vzc1JlcXVlc3RJbXBsLFxuICBOZXdEb2N1bWVudEFuZFN0YXJ0UHJvY2Vzc1Jlc3VsdCxcbiAgT3BlbkRvY3VtZW50Q291bnQsXG4gIFBhZ2UsXG4gIFByb2Nlc3NEb2N1bWVudERlZmluaXRpb24sXG4gIFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25SZXF1ZXN0LFxuICBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uU2VhcmNoLFxuICBQcm9jZXNzRG9jdW1lbnRJbnN0YW5jZSxcbiAgU3BlY2lmaWVkRG9jdW1lbnRzLFxuICBUZW1wbGF0ZVBheWxvYWQsXG4gIFRlbXBsYXRlUmVzcG9uc2UsXG4gIFVuZGVwbG95RG9jdW1lbnREZWZpbml0aW9uUmVzdWx0LFxufSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtBZHZhbmNlZERvY3VtZW50U2VhcmNoUmVxdWVzdH0gZnJvbSAnLi4vbW9kZWxzL2FkdmFuY2VkLWRvY3VtZW50LXNlYXJjaC1yZXF1ZXN0JztcbmltcG9ydCB7RG9jdW1lbnRTZWFyY2hSZXF1ZXN0fSBmcm9tICcuLi9tb2RlbHMvZG9jdW1lbnQtc2VhcmNoLXJlcXVlc3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB2YWx0aW1vRW5kcG9pbnRVcmkhOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBFTVBUWV9ET0NVTUVOVFNfUkVTUE9OU0U6IERvY3VtZW50cyB8IFNwZWNpZmllZERvY3VtZW50cyA9IHtcbiAgICBjb250ZW50OiBbXSxcbiAgICBlbXB0eTogdHJ1ZSxcbiAgICBmaXJzdDogZmFsc2UsXG4gICAgbGFzdDogZmFsc2UsXG4gICAgbnVtYmVyOiAwLFxuICAgIG51bWJlck9mRWxlbWVudHM6IDAsXG4gICAgc2l6ZTogMCxcbiAgICBzb3J0OiBmYWxzZSxcbiAgICB0b3RhbEVsZW1lbnRzOiAwLFxuICAgIHRvdGFsUGFnZXM6IDAsXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuICApIHtcbiAgICB0aGlzLnZhbHRpbW9FbmRwb2ludFVyaSA9IHRoaXMuY29uZmlnU2VydmljZS5jb25maWcudmFsdGltb0FwaS5lbmRwb2ludFVyaTtcbiAgfVxuXG4gIC8vIERvY3VtZW50LWNhbGxzXG4gIHB1YmxpYyBnZXRBbGxEZWZpbml0aW9ucygpOiBPYnNlcnZhYmxlPERvY3VtZW50RGVmaW5pdGlvbnM+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxEb2N1bWVudERlZmluaXRpb25zPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL2RvY3VtZW50LWRlZmluaXRpb24/c2l6ZT0xMDAwYFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcXVlcnlEZWZpbml0aW9ucyhwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPFBhZ2U8RG9jdW1lbnREZWZpbml0aW9uPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBhZ2U8RG9jdW1lbnREZWZpbml0aW9uPj4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9kb2N1bWVudC1kZWZpbml0aW9uYCxcbiAgICAgIHtwYXJhbXN9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBxdWVyeURlZmluaXRpb25zRm9yTWFuYWdlbWVudChwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPFBhZ2U8RG9jdW1lbnREZWZpbml0aW9uPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBhZ2U8RG9jdW1lbnREZWZpbml0aW9uPj4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1tYW5hZ2VtZW50L3YxL2RvY3VtZW50LWRlZmluaXRpb25gLFxuICAgICAge3BhcmFtc31cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldERvY3VtZW50RGVmaW5pdGlvbihcbiAgICBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmcsXG4gICAgc2tpcE5vdEZvdW5kOiBib29sZWFuID0gZmFsc2VcbiAgKTogT2JzZXJ2YWJsZTxEb2N1bWVudERlZmluaXRpb24+IHtcbiAgICByZXR1cm4gc2tpcE5vdEZvdW5kXG4gICAgICA/IHRoaXMuaHR0cC5nZXQ8RG9jdW1lbnREZWZpbml0aW9uPihcbiAgICAgICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9kb2N1bWVudC1kZWZpbml0aW9uLyR7ZG9jdW1lbnREZWZpbml0aW9uTmFtZX1gLFxuICAgICAgICAgIHtoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoSW50ZXJjZXB0b3JTa2lwLCAnNDA0Jyl9XG4gICAgICAgIClcbiAgICAgIDogdGhpcy5odHRwLmdldDxEb2N1bWVudERlZmluaXRpb24+KFxuICAgICAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL2RvY3VtZW50LWRlZmluaXRpb24vJHtkb2N1bWVudERlZmluaXRpb25OYW1lfWBcbiAgICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREb2N1bWVudERlZmluaXRpb25Gb3JNYW5hZ2VtZW50KFxuICAgIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPERvY3VtZW50RGVmaW5pdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERvY3VtZW50RGVmaW5pdGlvbj4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1tYW5hZ2VtZW50L3YxL2RvY3VtZW50LWRlZmluaXRpb24vJHtkb2N1bWVudERlZmluaXRpb25OYW1lfWBcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldERvY3VtZW50cyhkb2N1bWVudFNlYXJjaFJlcXVlc3Q6IERvY3VtZW50U2VhcmNoUmVxdWVzdCk6IE9ic2VydmFibGU8RG9jdW1lbnRzPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PERvY3VtZW50cz4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9kb2N1bWVudC1zZWFyY2hgLFxuICAgICAgZG9jdW1lbnRTZWFyY2hSZXF1ZXN0LmFzSHR0cEJvZHkoKSxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBkb2N1bWVudFNlYXJjaFJlcXVlc3QuYXNIdHRwUGFyYW1zKCksXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREb2N1bWVudHNTZWFyY2goXG4gICAgZG9jdW1lbnRTZWFyY2hSZXF1ZXN0OiBBZHZhbmNlZERvY3VtZW50U2VhcmNoUmVxdWVzdCxcbiAgICBzZWFyY2hPcGVyYXRvcj86IFNlYXJjaE9wZXJhdG9yLFxuICAgIGFzc2lnbmVlRmlsdGVyPzogQXNzaWduZWVGaWx0ZXIsXG4gICAgb3RoZXJGaWx0ZXJzPzogQXJyYXk8U2VhcmNoRmlsdGVyIHwgU2VhcmNoRmlsdGVyUmFuZ2U+LFxuICAgIHN0YXR1c0ZpbHRlcj86IEFycmF5PHN0cmluZyB8IG51bGw+LFxuICAgIGNhc2VUYWdzRmlsdGVyPzogQXJyYXk8c3RyaW5nIHwgbnVsbD5cbiAgKTogT2JzZXJ2YWJsZTxEb2N1bWVudHM+IHtcbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgLi4uZG9jdW1lbnRTZWFyY2hSZXF1ZXN0LmFzSHR0cEJvZHkoKSxcbiAgICAgIC4uLihzZWFyY2hPcGVyYXRvciAmJiB7c2VhcmNoT3BlcmF0b3J9KSxcbiAgICAgIC4uLihhc3NpZ25lZUZpbHRlciAmJiB7YXNzaWduZWVGaWx0ZXJ9KSxcbiAgICAgIC4uLihvdGhlckZpbHRlcnMgJiYge290aGVyRmlsdGVyc30pLFxuICAgICAgLi4uKHN0YXR1c0ZpbHRlciAmJiB7c3RhdHVzRmlsdGVyfSksXG4gICAgICAuLi4oY2FzZVRhZ3NGaWx0ZXIgJiYge2Nhc2VUYWdzRmlsdGVyfSksXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PERvY3VtZW50cz4oXG4gICAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL2RvY3VtZW50LWRlZmluaXRpb24vJHtkb2N1bWVudFNlYXJjaFJlcXVlc3QuZGVmaW5pdGlvbk5hbWV9L3NlYXJjaGAsXG4gICAgICAgIGJvZHksXG4gICAgICAgIHtwYXJhbXM6IGRvY3VtZW50U2VhcmNoUmVxdWVzdC5hc0h0dHBQYXJhbXMoKX1cbiAgICAgIClcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YodGhpcy5FTVBUWV9ET0NVTUVOVFNfUkVTUE9OU0UgYXMgRG9jdW1lbnRzKSkpO1xuICB9XG5cbiAgcHVibGljIGdldFNwZWNpZmllZERvY3VtZW50c1NlYXJjaChcbiAgICBkb2N1bWVudFNlYXJjaFJlcXVlc3Q6IEFkdmFuY2VkRG9jdW1lbnRTZWFyY2hSZXF1ZXN0LFxuICAgIHNlYXJjaE9wZXJhdG9yPzogU2VhcmNoT3BlcmF0b3IsXG4gICAgYXNzaWduZWVGaWx0ZXI/OiBBc3NpZ25lZUZpbHRlcixcbiAgICBvdGhlckZpbHRlcnM/OiBBcnJheTxTZWFyY2hGaWx0ZXIgfCBTZWFyY2hGaWx0ZXJSYW5nZT4sXG4gICAgc3RhdHVzRmlsdGVyPzogQXJyYXk8c3RyaW5nIHwgbnVsbD4sXG4gICAgY2FzZVRhZ3NGaWx0ZXI/OiBBcnJheTxzdHJpbmcgfCBudWxsPlxuICApOiBPYnNlcnZhYmxlPFNwZWNpZmllZERvY3VtZW50cz4ge1xuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAuLi5kb2N1bWVudFNlYXJjaFJlcXVlc3QuYXNIdHRwQm9keSgpLFxuICAgICAgLi4uKHNlYXJjaE9wZXJhdG9yICYmIHtzZWFyY2hPcGVyYXRvcn0pLFxuICAgICAgLi4uKGFzc2lnbmVlRmlsdGVyICYmIHthc3NpZ25lZUZpbHRlcn0pLFxuICAgICAgLi4uKG90aGVyRmlsdGVycyAmJiB7b3RoZXJGaWx0ZXJzfSksXG4gICAgICAuLi4oc3RhdHVzRmlsdGVyICYmIHtzdGF0dXNGaWx0ZXJ9KSxcbiAgICAgIC4uLihjYXNlVGFnc0ZpbHRlciAmJiB7Y2FzZVRhZ3NGaWx0ZXJ9KSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8U3BlY2lmaWVkRG9jdW1lbnRzPihcbiAgICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvY2FzZS8ke2RvY3VtZW50U2VhcmNoUmVxdWVzdC5kZWZpbml0aW9uTmFtZX0vc2VhcmNoYCxcbiAgICAgICAgYm9keSxcbiAgICAgICAge3BhcmFtczogZG9jdW1lbnRTZWFyY2hSZXF1ZXN0LmFzSHR0cFBhcmFtcygpfVxuICAgICAgKVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZih0aGlzLkVNUFRZX0RPQ1VNRU5UU19SRVNQT05TRSBhcyBTcGVjaWZpZWREb2N1bWVudHMpKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RG9jdW1lbnRTZWFyY2hGaWVsZHMoZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxTZWFyY2hGaWVsZD4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcnJheTxTZWFyY2hGaWVsZD4+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvZG9jdW1lbnQtc2VhcmNoLyR7ZG9jdW1lbnREZWZpbml0aW9uTmFtZX0vZmllbGRzYFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcHV0RG9jdW1lbnRTZWFyY2goXG4gICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nLFxuICAgIHJlcXVlc3Q6IEFycmF5PFNlYXJjaEZpZWxkPlxuICApOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDx2b2lkPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL2RvY3VtZW50LXNlYXJjaC8ke2RvY3VtZW50RGVmaW5pdGlvbk5hbWV9L2ZpZWxkc2AsXG4gICAgICBbLi4ucmVxdWVzdF1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIHBvc3REb2N1bWVudFNlYXJjaChcbiAgICBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmcsXG4gICAgcmVxdWVzdDogU2VhcmNoRmllbGRcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHZvaWQ+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvZG9jdW1lbnQtc2VhcmNoLyR7ZG9jdW1lbnREZWZpbml0aW9uTmFtZX0vZmllbGRzYCxcbiAgICAgIHsuLi5yZXF1ZXN0fVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlRG9jdW1lbnRTZWFyY2goZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nLCBrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICB9KSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvZG9jdW1lbnQtc2VhcmNoLyR7ZG9jdW1lbnREZWZpbml0aW9uTmFtZX0vZmllbGRzP2tleT0ke2tleX1gLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RHJvcGRvd25EYXRhUHJvdmlkZXJzKCk6IE9ic2VydmFibGU8QXJyYXk8c3RyaW5nPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFycmF5PHN0cmluZz4+KGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL2RhdGEvZHJvcGRvd24tbGlzdC9wcm92aWRlcmApO1xuICB9XG5cbiAgcHVibGljIGdldERyb3Bkb3duRGF0YShcbiAgICBwcm92aWRlcjogc3RyaW5nLFxuICAgIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZyxcbiAgICBmaWVsZEtleTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgY29uc3QgZHJvcGRvd25MaXN0S2V5ID0gZW5jb2RlVVJJKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUgKyAnXycgKyBmaWVsZEtleSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8b2JqZWN0PihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL2RhdGEvZHJvcGRvd24tbGlzdD9wcm92aWRlcj0ke3Byb3ZpZGVyfSZrZXk9JHtkcm9wZG93bkxpc3RLZXl9YFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcG9zdERyb3Bkb3duRGF0YShcbiAgICBwcm92aWRlcjogc3RyaW5nLFxuICAgIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZyxcbiAgICBmaWVsZEtleTogc3RyaW5nLFxuICAgIGRyb3Bkb3duRGF0YTogb2JqZWN0XG4gICk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgY29uc3QgZHJvcGRvd25MaXN0S2V5ID0gZW5jb2RlVVJJKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUgKyAnXycgKyBmaWVsZEtleSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG9iamVjdD4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9kYXRhL2Ryb3Bkb3duLWxpc3Q/cHJvdmlkZXI9JHtwcm92aWRlcn0ma2V5PSR7ZHJvcGRvd25MaXN0S2V5fWAsXG4gICAgICBkcm9wZG93bkRhdGFcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZURyb3Bkb3duRGF0YShcbiAgICBwcm92aWRlcjogc3RyaW5nLFxuICAgIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZyxcbiAgICBmaWVsZEtleTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgY29uc3QgZHJvcGRvd25MaXN0S2V5ID0gZW5jb2RlVVJJKGRvY3VtZW50RGVmaW5pdGlvbk5hbWUgKyAnXycgKyBmaWVsZEtleSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8b2JqZWN0PihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL2RhdGEvZHJvcGRvd24tbGlzdD9wcm92aWRlcj0ke3Byb3ZpZGVyfSZrZXk9JHtkcm9wZG93bkxpc3RLZXl9YFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RG9jdW1lbnQoZG9jdW1lbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxEb2N1bWVudD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERvY3VtZW50PihgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9kb2N1bWVudC8ke2RvY3VtZW50SWR9YCk7XG4gIH1cblxuICBwdWJsaWMgbW9kaWZ5RG9jdW1lbnQoZG9jdW1lbnQ6IGFueSk6IE9ic2VydmFibGU8RG9jdW1lbnRSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxEb2N1bWVudFJlc3VsdD4oYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvZG9jdW1lbnRgLCBkb2N1bWVudCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlRG9jdW1lbnQoZG9jdW1lbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8dm9pZD4oYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvZG9jdW1lbnQvJHtkb2N1bWVudElkfWApO1xuICB9XG5cbiAgLy8gUHJvY2Vzc0RvY3VtZW50LWNhbGxzXG4gIHB1YmxpYyBnZXRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucygpOiBPYnNlcnZhYmxlPFByb2Nlc3NEb2N1bWVudERlZmluaXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL3Byb2Nlc3MtZG9jdW1lbnQvZGVmaW5pdGlvbmBcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGZpbmRQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9ucyhcbiAgICBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uW10+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvcHJvY2Vzcy1kb2N1bWVudC9kZWZpbml0aW9uL2RvY3VtZW50LyR7ZG9jdW1lbnREZWZpbml0aW9uTmFtZX1gXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbnNCeVN0YXJ0YWJsZUJ5VXNlcihcbiAgICBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmcsXG4gICAgc3RhcnRhYmxlQnlVc2VyOiBib29sZWFuXG4gICk6IE9ic2VydmFibGU8UHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbltdPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL3Byb2Nlc3MtZG9jdW1lbnQvZGVmaW5pdGlvbi9kb2N1bWVudC8ke2RvY3VtZW50RGVmaW5pdGlvbk5hbWV9P3N0YXJ0YWJsZUJ5VXNlcj0ke3N0YXJ0YWJsZUJ5VXNlcn1gXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbnNCeUNhbkluaXRpYWxpemVEb2N1bWVudChcbiAgICBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmcsXG4gICAgY2FuSW5pdGlhbGl6ZURvY3VtZW50OiBib29sZWFuXG4gICk6IE9ic2VydmFibGU8UHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbltdPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL3Byb2Nlc3MtZG9jdW1lbnQvZGVmaW5pdGlvbi9kb2N1bWVudC8ke2RvY3VtZW50RGVmaW5pdGlvbk5hbWV9P2NhbkluaXRpYWxpemVEb2N1bWVudD0ke2NhbkluaXRpYWxpemVEb2N1bWVudH1gXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbnNGb3JEb2N1bWVudChcbiAgICBkb2N1bWVudElkOiBzdHJpbmcsXG4gICAgc2VhcmNoUmVxdWVzdDogUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvblNlYXJjaFxuICApOiBPYnNlcnZhYmxlPFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25bXT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcbiAgICAgIGZyb21PYmplY3Q6IHNlYXJjaFJlcXVlc3QgYXMgYW55LFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25bXT4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12Mi9wcm9jZXNzLWRvY3VtZW50L2RlZmluaXRpb24vZG9jdW1lbnQvJHtkb2N1bWVudElkfWAsXG4gICAgICB7cGFyYW1zfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmluZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zQnlWZXJzaW9uKFxuICAgIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZyxcbiAgICB2ZXJzaW9uOiBudW1iZXJcbiAgKTogT2JzZXJ2YWJsZTxQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uW10+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvcHJvY2Vzcy1kb2N1bWVudC9kZWZpbml0aW9uL2RvY3VtZW50LyR7ZG9jdW1lbnREZWZpbml0aW9uTmFtZX0vdmVyc2lvbi8ke3ZlcnNpb259YFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmluZFByb2Nlc3NEb2N1bWVudERlZmluaXRpb25zQnlQcm9jZXNzRGVmaW5pdGlvbktleShcbiAgICBwcm9jZXNzRGVmaW5pdGlvbktleTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8UHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbltdPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL3Byb2Nlc3MtZG9jdW1lbnQvZGVmaW5pdGlvbi9wcm9jZXNzLyR7cHJvY2Vzc0RlZmluaXRpb25LZXl9YFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmluZFByb2Nlc3NEb2N1bWVudEluc3RhbmNlcyhkb2N1bWVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2Nlc3NEb2N1bWVudEluc3RhbmNlW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQcm9jZXNzRG9jdW1lbnRJbnN0YW5jZVtdPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL3Byb2Nlc3MtZG9jdW1lbnQvaW5zdGFuY2UvZG9jdW1lbnQvJHtkb2N1bWVudElkfWBcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZURvY3VtZW50RGVmaW5pdGlvblRlbXBsYXRlKFxuICAgIHBheWxvYWQ6IFRlbXBsYXRlUGF5bG9hZFxuICApOiBPYnNlcnZhYmxlPENyZWF0ZURvY3VtZW50RGVmaW5pdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8VGVtcGxhdGVSZXNwb25zZT4oXG4gICAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfW1hbmFnZW1lbnQvdjEvZG9jdW1lbnQtZGVmaW5pdGlvbi10ZW1wbGF0ZWAsXG4gICAgICAgIHBheWxvYWRcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGRlZmluaXRpb246IFRlbXBsYXRlUmVzcG9uc2UpID0+XG4gICAgICAgICAgdGhpcy5jcmVhdGVEb2N1bWVudERlZmluaXRpb25Gb3JNYW5hZ2VtZW50KHtkZWZpbml0aW9uOiBKU09OLnN0cmluZ2lmeShkZWZpbml0aW9uKX0pXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmV3RG9jdW1lbnRBbmRTdGFydFByb2Nlc3MoXG4gICAgcmVxdWVzdDogTmV3RG9jdW1lbnRBbmRTdGFydFByb2Nlc3NSZXF1ZXN0SW1wbFxuICApOiBPYnNlcnZhYmxlPE5ld0RvY3VtZW50QW5kU3RhcnRQcm9jZXNzUmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5ld0RvY3VtZW50QW5kU3RhcnRQcm9jZXNzUmVzdWx0PihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL3Byb2Nlc3MtZG9jdW1lbnQvb3BlcmF0aW9uL25ldy1kb2N1bWVudC1hbmQtc3RhcnQtcHJvY2Vzc2AsXG4gICAgICByZXF1ZXN0XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RpZnlEb2N1bWVudEFuZENvbXBsZXRlVGFzayhcbiAgICByZXF1ZXN0OiBNb2RpZnlEb2N1bWVudEFuZENvbXBsZXRlVGFza1JlcXVlc3RJbXBsXG4gICk6IE9ic2VydmFibGU8TW9kaWZ5RG9jdW1lbnRBbmRDb21wbGV0ZVRhc2tSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TW9kaWZ5RG9jdW1lbnRBbmRDb21wbGV0ZVRhc2tSZXN1bHQ+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvcHJvY2Vzcy1kb2N1bWVudC9vcGVyYXRpb24vbW9kaWZ5LWRvY3VtZW50LWFuZC1jb21wbGV0ZS10YXNrYCxcbiAgICAgIHJlcXVlc3RcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1vZGlmeURvY3VtZW50QW5kU3RhcnRQcm9jZXNzKFxuICAgIHJlcXVlc3Q6IE1vZGlmeURvY3VtZW50QW5kU3RhcnRQcm9jZXNzUmVxdWVzdEltcGxcbiAgKTogT2JzZXJ2YWJsZTxNb2RpZnlEb2N1bWVudEFuZFN0YXJ0UHJvY2Vzc1Jlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxNb2RpZnlEb2N1bWVudEFuZFN0YXJ0UHJvY2Vzc1Jlc3VsdD4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9wcm9jZXNzLWRvY3VtZW50L29wZXJhdGlvbi9tb2RpZnktZG9jdW1lbnQtYW5kLXN0YXJ0LXByb2Nlc3NgLFxuICAgICAgcmVxdWVzdFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbihcbiAgICByZXF1ZXN0OiBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uUmVxdWVzdFxuICApOiBPYnNlcnZhYmxlPFByb2Nlc3NEb2N1bWVudERlZmluaXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbj4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9wcm9jZXNzLWRvY3VtZW50L2RlZmluaXRpb25gLFxuICAgICAgcmVxdWVzdFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRG9jdW1lbnREZWZpbml0aW9uRm9yTWFuYWdlbWVudChcbiAgICBkb2N1bWVudERlZmluaXRpb25DcmVhdGVSZXF1ZXN0OiBEb2N1bWVudERlZmluaXRpb25DcmVhdGVSZXF1ZXN0XG4gICk6IE9ic2VydmFibGU8Q3JlYXRlRG9jdW1lbnREZWZpbml0aW9uUmVzcG9uc2U+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0pLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENyZWF0ZURvY3VtZW50RGVmaW5pdGlvblJlc3BvbnNlPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfW1hbmFnZW1lbnQvdjEvZG9jdW1lbnQtZGVmaW5pdGlvbmAsXG4gICAgICBkb2N1bWVudERlZmluaXRpb25DcmVhdGVSZXF1ZXN0LFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlUHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbihcbiAgICByZXF1ZXN0OiBQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uUmVxdWVzdFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSksXG4gICAgICBib2R5OiByZXF1ZXN0LFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvcHJvY2Vzcy1kb2N1bWVudC9kZWZpbml0aW9uYCwgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QXVkaXRMb2coZG9jdW1lbnRJZDogc3RyaW5nLCBwYWdlOiBudW1iZXIgPSAwKTogT2JzZXJ2YWJsZTxQYWdlPEF1ZGl0UmVjb3JkPj4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3BhZ2UnLCBwYWdlLnRvU3RyaW5nKCkpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBhZ2U8QXVkaXRSZWNvcmQ+PihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL3Byb2Nlc3MtZG9jdW1lbnQvaW5zdGFuY2UvZG9jdW1lbnQvJHtkb2N1bWVudElkfS9hdWRpdGAsXG4gICAgICB7cGFyYW1zfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXNzaWduUmVzb3VyY2UoZG9jdW1lbnRJZDogc3RyaW5nLCByZXNvdXJjZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8dm9pZD4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9kb2N1bWVudC8ke2RvY3VtZW50SWR9L3Jlc291cmNlLyR7cmVzb3VyY2VJZH1gLFxuICAgICAge31cbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVJlc291cmNlKGRvY3VtZW50SWQ6IHN0cmluZywgcmVzb3VyY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICB9KSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHZvaWQ+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvZG9jdW1lbnQvJHtkb2N1bWVudElkfS9yZXNvdXJjZS8ke3Jlc291cmNlSWR9YCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZURvY3VtZW50RGVmaW5pdGlvbkZvck1hbmFnZW1lbnQoXG4gICAgbmFtZTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8VW5kZXBsb3lEb2N1bWVudERlZmluaXRpb25SZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxVbmRlcGxveURvY3VtZW50RGVmaW5pdGlvblJlc3VsdD4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1tYW5hZ2VtZW50L3YxL2RvY3VtZW50LWRlZmluaXRpb24vJHtuYW1lfWBcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNlbmRNZXNzYWdlKGRvY3VtZW50SWQ6IHN0cmluZywgcmVxdWVzdDogRG9jdW1lbnRTZW5kTWVzc2FnZVJlcXVlc3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9kb2N1bWVudC8ke2RvY3VtZW50SWR9L21lc3NhZ2VgLCByZXF1ZXN0KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREb2N1bWVudFR5cGVzKGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8RG9jdW1lbnRUeXBlPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFycmF5PERvY3VtZW50VHlwZT4+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvZG9jdW1lbnRkZWZpbml0aW9uLyR7ZG9jdW1lbnREZWZpbml0aW9uTmFtZX0vemFha3R5cGUvZG9jdW1lbnR0eXBlYFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbkZyb21Qcm9jZXNzSW5zdGFuY2VJZChcbiAgICBwcm9jZXNzSW5zdGFuY2VJZDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8UHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0RmVhdHVyZVRvZ2dsZSgnZW5hYmxlU3VwcHJlc3NEb2N1bWVudEVycm9yJylcbiAgICAgID8gdGhpcy5odHRwLmdldDxQcm9jZXNzRG9jdW1lbnREZWZpbml0aW9uPihcbiAgICAgICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9wcm9jZXNzLWRvY3VtZW50L2RlZmluaXRpb24vcHJvY2Vzc2luc3RhbmNlLyR7cHJvY2Vzc0luc3RhbmNlSWR9YCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoSW50ZXJjZXB0b3JTa2lwLCAnNDAwJyksXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICA6IHRoaXMuaHR0cC5nZXQ8UHJvY2Vzc0RvY3VtZW50RGVmaW5pdGlvbj4oXG4gICAgICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvcHJvY2Vzcy1kb2N1bWVudC9kZWZpbml0aW9uL3Byb2Nlc3NpbnN0YW5jZS8ke3Byb2Nlc3NJbnN0YW5jZUlkfWBcbiAgICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3NpZ25IYW5kbGVyVG9Eb2N1bWVudChcbiAgICBkb2N1bWVudElkOiBzdHJpbmcsXG4gICAgYXNzaWduZWVJZDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8QXNzaWduSGFuZGxlclRvRG9jdW1lbnRSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXNzaWduSGFuZGxlclRvRG9jdW1lbnRSZXN1bHQ+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvZG9jdW1lbnQvJHtkb2N1bWVudElkfS9hc3NpZ25gLFxuICAgICAge2Fzc2lnbmVlSWR9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB1bmFzc2lnbkhhbmRsZXJGcm9tRG9jdW1lbnQoZG9jdW1lbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHZvaWQ+KGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL2RvY3VtZW50LyR7ZG9jdW1lbnRJZH0vdW5hc3NpZ25gLCB7fSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FuZGlkYXRlVXNlcnMoZG9jdW1lbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxOYW1lZFVzZXI+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXJyYXk8TmFtZWRVc2VyPj4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9kb2N1bWVudC8ke2RvY3VtZW50SWR9L2NhbmRpZGF0ZS11c2VyYFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0T3BlbkRvY3VtZW50Q291bnQoKTogT2JzZXJ2YWJsZTxBcnJheTxPcGVuRG9jdW1lbnRDb3VudD4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcnJheTxPcGVuRG9jdW1lbnRDb3VudD4+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvZG9jdW1lbnQtZGVmaW5pdGlvbi9vcGVuL2NvdW50YFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2hDYXNlU2V0dGluZ3NGb3JNYW5hZ2VtZW50KFxuICAgIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZyxcbiAgICByZXF1ZXN0OiBDYXNlU2V0dGluZ3NcbiAgKTogT2JzZXJ2YWJsZTxDYXNlU2V0dGluZ3M+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPENhc2VTZXR0aW5ncz4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1tYW5hZ2VtZW50L3YxL2Nhc2UvJHtkb2N1bWVudERlZmluaXRpb25OYW1lfS9zZXR0aW5nc2AsXG4gICAgICB7Li4ucmVxdWVzdH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VTZXR0aW5ncyhkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENhc2VTZXR0aW5ncz4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENhc2VTZXR0aW5ncz4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9jYXNlLyR7ZG9jdW1lbnREZWZpbml0aW9uTmFtZX0vc2V0dGluZ3NgXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlU2V0dGluZ3NGb3JNYW5hZ2VtZW50KGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8Q2FzZVNldHRpbmdzPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q2FzZVNldHRpbmdzPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfW1hbmFnZW1lbnQvdjEvY2FzZS8ke2RvY3VtZW50RGVmaW5pdGlvbk5hbWV9L3NldHRpbmdzYFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZUxpc3QoZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxDYXNlTGlzdENvbHVtbj4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcnJheTxDYXNlTGlzdENvbHVtbj4+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvY2FzZS8ke2RvY3VtZW50RGVmaW5pdGlvbk5hbWV9L2xpc3QtY29sdW1uYFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZUxpc3RGb3JNYW5hZ2VtZW50KFxuICAgIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPEFycmF5PENhc2VMaXN0Q29sdW1uPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFycmF5PENhc2VMaXN0Q29sdW1uPj4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1tYW5hZ2VtZW50L3YxL2Nhc2UvJHtkb2N1bWVudERlZmluaXRpb25OYW1lfS9saXN0LWNvbHVtbmBcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHBvc3RDYXNlTGlzdEZvck1hbmFnZW1lbnQoXG4gICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nLFxuICAgIHJlcXVlc3Q6IENhc2VMaXN0Q29sdW1uXG4gICk6IE9ic2VydmFibGU8Q2FzZUxpc3RDb2x1bW4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q2FzZUxpc3RDb2x1bW4+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9bWFuYWdlbWVudC92MS9jYXNlLyR7ZG9jdW1lbnREZWZpbml0aW9uTmFtZX0vbGlzdC1jb2x1bW5gLFxuICAgICAgey4uLnJlcXVlc3R9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBwdXRDYXNlTGlzdEZvck1hbmFnZW1lbnQoXG4gICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nLFxuICAgIHJlcXVlc3Q6IEFycmF5PENhc2VMaXN0Q29sdW1uPlxuICApOiBPYnNlcnZhYmxlPEFycmF5PENhc2VMaXN0Q29sdW1uPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFycmF5PENhc2VMaXN0Q29sdW1uPj4oXG4gICAgICBgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX1tYW5hZ2VtZW50L3YxL2Nhc2UvJHtkb2N1bWVudERlZmluaXRpb25OYW1lfS9saXN0LWNvbHVtbmAsXG4gICAgICBbLi4ucmVxdWVzdF1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZUNhc2VMaXN0Rm9yTWFuYWdlbWVudChcbiAgICBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmcsXG4gICAgY29sdW1uS2V5OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxDYXNlTGlzdENvbHVtbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPENhc2VMaXN0Q29sdW1uPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfW1hbmFnZW1lbnQvdjEvY2FzZS8ke2RvY3VtZW50RGVmaW5pdGlvbk5hbWV9L2xpc3QtY29sdW1uLyR7Y29sdW1uS2V5fWBcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldERvY3VtZW50RGVmaW5pdGlvblZlcnNpb25zKFxuICAgIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPERvY3VtZW50RGVmaW5pdGlvblZlcnNpb25zUmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RG9jdW1lbnREZWZpbml0aW9uVmVyc2lvbnNSZXN1bHQ+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9bWFuYWdlbWVudC92MS9kb2N1bWVudC1kZWZpbml0aW9uLyR7ZG9jdW1lbnREZWZpbml0aW9uTmFtZX0vdmVyc2lvbmBcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldERvY3VtZW50RGVmaW5pdGlvbkJ5VmVyc2lvbihcbiAgICBkb2N1bWVudERlZmluaXRpb25OYW1lOiBzdHJpbmcsXG4gICAgdmVyc2lvbjogbnVtYmVyXG4gICk6IE9ic2VydmFibGU8RG9jdW1lbnREZWZpbml0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RG9jdW1lbnREZWZpbml0aW9uPihcbiAgICAgIGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfW1hbmFnZW1lbnQvdjEvZG9jdW1lbnQtZGVmaW5pdGlvbi8ke2RvY3VtZW50RGVmaW5pdGlvbk5hbWV9L3ZlcnNpb24vJHt2ZXJzaW9ufWBcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,39 +0,0 @@
1
- /*
2
- * Copyright 2015-2024 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { Injectable } from '@angular/core';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "@valtimo/config";
19
- export class FileSortService {
20
- constructor(configService) {
21
- this.configService = configService;
22
- }
23
- sortRelatedFilesByDateDescending(relatedFiles) {
24
- const sortByDate = this.configService.config?.featureToggles?.sortFilesByDate;
25
- if (sortByDate) {
26
- return relatedFiles.sort((a, b) => new Date(b.createdOn).getTime() - new Date(a.createdOn).getTime());
27
- }
28
- return relatedFiles;
29
- }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileSortService, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
31
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileSortService, providedIn: 'root' }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileSortService, decorators: [{
34
- type: Injectable,
35
- args: [{
36
- providedIn: 'root',
37
- }]
38
- }], ctorParameters: () => [{ type: i1.ConfigService }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2RvY3VtZW50L3NyYy9saWIvc2VydmljZXMvZmlsZS1zb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFPekMsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFBNkIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFBRyxDQUFDO0lBRTdELGdDQUFnQyxDQUFDLFlBQWdDO1FBQy9ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxlQUFlLENBQUM7UUFFOUUsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FDdEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUM1RSxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7K0dBYlUsZUFBZTttSEFBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtSZWxhdGVkRmlsZX0gZnJvbSAnLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVTb3J0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSkge31cblxuICBzb3J0UmVsYXRlZEZpbGVzQnlEYXRlRGVzY2VuZGluZyhyZWxhdGVkRmlsZXM6IEFycmF5PFJlbGF0ZWRGaWxlPik6IEFycmF5PFJlbGF0ZWRGaWxlPiB7XG4gICAgY29uc3Qgc29ydEJ5RGF0ZSA9IHRoaXMuY29uZmlnU2VydmljZS5jb25maWc/LmZlYXR1cmVUb2dnbGVzPy5zb3J0RmlsZXNCeURhdGU7XG5cbiAgICBpZiAoc29ydEJ5RGF0ZSkge1xuICAgICAgcmV0dXJuIHJlbGF0ZWRGaWxlcy5zb3J0KFxuICAgICAgICAoYSwgYikgPT4gbmV3IERhdGUoYi5jcmVhdGVkT24pLmdldFRpbWUoKSAtIG5ldyBEYXRlKGEuY3JlYXRlZE9uKS5nZXRUaW1lKClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlbGF0ZWRGaWxlcztcbiAgfVxufVxuIl19
@@ -1,20 +0,0 @@
1
- /*
2
- * Copyright 2015-2024 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- export * from './case-status.service';
17
- export * from './document.service';
18
- export * from './file-sort.service';
19
- export * from './tags.service';
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2RvY3VtZW50L3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jYXNlLXN0YXR1cy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZG9jdW1lbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtc29ydC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFncy5zZXJ2aWNlJztcbiJdfQ==
@@ -1,54 +0,0 @@
1
- /*
2
- * Copyright 2015-2024 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { Injectable } from '@angular/core';
17
- import { BaseApiService } from '@valtimo/config';
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "@angular/common/http";
20
- import * as i2 from "@valtimo/config";
21
- export class CaseTagService extends BaseApiService {
22
- constructor(httpClient, configService) {
23
- super(httpClient, configService);
24
- this.httpClient = httpClient;
25
- this.configService = configService;
26
- }
27
- getCaseTagsManagement(caseDefinitionName) {
28
- return this.httpClient.get(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/case-tag`));
29
- }
30
- getCaseTags(caseDefinitionName) {
31
- return this.httpClient.get(this.getApiUrl(`/v1/case-definition/${caseDefinitionName}/case-tag`));
32
- }
33
- saveCaseTag(caseDefinitionName, tag) {
34
- return this.httpClient.post(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/case-tag`), tag);
35
- }
36
- updateCaseTag(caseDefinitionName, currentTag, updatedTag) {
37
- return this.httpClient.put(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/case-tag/${currentTag}`), updatedTag);
38
- }
39
- deleteCaseTag(caseDefinitionName, tag) {
40
- return this.httpClient.delete(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/case-tag/${tag}`));
41
- }
42
- updateCaseTags(caseDefinitionName, reorderedStatus) {
43
- return this.httpClient.put(this.getApiUrl(`/management/v1/case-definition/${caseDefinitionName}/case-tag`), reorderedStatus);
44
- }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseTagService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
46
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseTagService, providedIn: 'root' }); }
47
- }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CaseTagService, decorators: [{
49
- type: Injectable,
50
- args: [{
51
- providedIn: 'root',
52
- }]
53
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb2N1bWVudC9zcmMvbGliL3NlcnZpY2VzL3RhZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGNBQWMsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVE5RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQWM7SUFDaEQsWUFDcUIsVUFBc0IsRUFDdEIsYUFBNEI7UUFFL0MsS0FBSyxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUhkLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFHakQsQ0FBQztJQUVNLHFCQUFxQixDQUFDLGtCQUEwQjtRQUNyRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLGtDQUFrQyxrQkFBa0IsV0FBVyxDQUFDLENBQ2hGLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVyxDQUFDLGtCQUEwQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixrQkFBa0IsV0FBVyxDQUFDLENBQ3JFLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVyxDQUFDLGtCQUEwQixFQUFFLEdBQVk7UUFDekQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0Msa0JBQWtCLFdBQVcsQ0FBQyxFQUMvRSxHQUFHLENBQ0osQ0FBQztJQUNKLENBQUM7SUFFTSxhQUFhLENBQ2xCLGtCQUEwQixFQUMxQixVQUFrQixFQUNsQixVQUFtQjtRQUVuQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLGtDQUFrQyxrQkFBa0IsYUFBYSxVQUFVLEVBQUUsQ0FBQyxFQUM3RixVQUFVLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFTSxhQUFhLENBQUMsa0JBQTBCLEVBQUUsR0FBVztRQUMxRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLGtDQUFrQyxrQkFBa0IsYUFBYSxHQUFHLEVBQUUsQ0FBQyxDQUN2RixDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWMsQ0FDbkIsa0JBQTBCLEVBQzFCLGVBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsa0NBQWtDLGtCQUFrQixXQUFXLENBQUMsRUFDL0UsZUFBZSxDQUNoQixDQUFDO0lBQ0osQ0FBQzsrR0FwRFUsY0FBYzttSEFBZCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYXNlQXBpU2VydmljZSwgQ29uZmlnU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q2FzZVRhZ30gZnJvbSAnLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENhc2VUYWdTZXJ2aWNlIGV4dGVuZHMgQmFzZUFwaVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuICApIHtcbiAgICBzdXBlcihodHRwQ2xpZW50LCBjb25maWdTZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlVGFnc01hbmFnZW1lbnQoY2FzZURlZmluaXRpb25OYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENhc2VUYWdbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PENhc2VUYWdbXT4oXG4gICAgICB0aGlzLmdldEFwaVVybChgL21hbmFnZW1lbnQvdjEvY2FzZS1kZWZpbml0aW9uLyR7Y2FzZURlZmluaXRpb25OYW1lfS9jYXNlLXRhZ2ApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlVGFncyhjYXNlRGVmaW5pdGlvbk5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8Q2FzZVRhZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8Q2FzZVRhZ1tdPihcbiAgICAgIHRoaXMuZ2V0QXBpVXJsKGAvdjEvY2FzZS1kZWZpbml0aW9uLyR7Y2FzZURlZmluaXRpb25OYW1lfS9jYXNlLXRhZ2ApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlQ2FzZVRhZyhjYXNlRGVmaW5pdGlvbk5hbWU6IHN0cmluZywgdGFnOiBDYXNlVGFnKTogT2JzZXJ2YWJsZTxDYXNlVGFnPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PENhc2VUYWc+KFxuICAgICAgdGhpcy5nZXRBcGlVcmwoYC9tYW5hZ2VtZW50L3YxL2Nhc2UtZGVmaW5pdGlvbi8ke2Nhc2VEZWZpbml0aW9uTmFtZX0vY2FzZS10YWdgKSxcbiAgICAgIHRhZ1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQ2FzZVRhZyhcbiAgICBjYXNlRGVmaW5pdGlvbk5hbWU6IHN0cmluZyxcbiAgICBjdXJyZW50VGFnOiBzdHJpbmcsXG4gICAgdXBkYXRlZFRhZzogQ2FzZVRhZ1xuICApOiBPYnNlcnZhYmxlPENhc2VUYWc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dDxDYXNlVGFnPihcbiAgICAgIHRoaXMuZ2V0QXBpVXJsKGAvbWFuYWdlbWVudC92MS9jYXNlLWRlZmluaXRpb24vJHtjYXNlRGVmaW5pdGlvbk5hbWV9L2Nhc2UtdGFnLyR7Y3VycmVudFRhZ31gKSxcbiAgICAgIHVwZGF0ZWRUYWdcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZUNhc2VUYWcoY2FzZURlZmluaXRpb25OYW1lOiBzdHJpbmcsIHRhZzogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGU8dm9pZD4oXG4gICAgICB0aGlzLmdldEFwaVVybChgL21hbmFnZW1lbnQvdjEvY2FzZS1kZWZpbml0aW9uLyR7Y2FzZURlZmluaXRpb25OYW1lfS9jYXNlLXRhZy8ke3RhZ31gKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQ2FzZVRhZ3MoXG4gICAgY2FzZURlZmluaXRpb25OYW1lOiBzdHJpbmcsXG4gICAgcmVvcmRlcmVkU3RhdHVzOiBDYXNlVGFnW11cbiAgKTogT2JzZXJ2YWJsZTxDYXNlVGFnW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dDxDYXNlVGFnW10+KFxuICAgICAgdGhpcy5nZXRBcGlVcmwoYC9tYW5hZ2VtZW50L3YxL2Nhc2UtZGVmaW5pdGlvbi8ke2Nhc2VEZWZpbml0aW9uTmFtZX0vY2FzZS10YWdgKSxcbiAgICAgIHJlb3JkZXJlZFN0YXR1c1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,32 +0,0 @@
1
- /*
2
- * Copyright 2015-2024 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { TagColor } from '@valtimo/config';
17
- class CaseTagsUtils {
18
- static getTagTypeFromCaseTagColor(caseTagColor) {
19
- switch (caseTagColor) {
20
- case TagColor.HighContrast:
21
- return 'high-contrast';
22
- case TagColor.CoolGray:
23
- return 'cool-gray';
24
- case TagColor.WarmGray:
25
- return 'warm-gray';
26
- default:
27
- return caseTagColor?.toLowerCase();
28
- }
29
- }
30
- }
31
- export { CaseTagsUtils };
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS10YWdzLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb2N1bWVudC9zcmMvbGliL3V0aWxzL2Nhc2UtdGFncy51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUdILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxNQUFNLGFBQWE7SUFDakIsTUFBTSxDQUFDLDBCQUEwQixDQUFDLFlBQXNCO1FBQ3RELFFBQVEsWUFBWSxFQUFFLENBQUM7WUFDckIsS0FBSyxRQUFRLENBQUMsWUFBWTtnQkFDeEIsT0FBTyxlQUFlLENBQUM7WUFDekIsS0FBSyxRQUFRLENBQUMsUUFBUTtnQkFDcEIsT0FBTyxXQUFXLENBQUM7WUFDckIsS0FBSyxRQUFRLENBQUMsUUFBUTtnQkFDcEIsT0FBTyxXQUFXLENBQUM7WUFDckI7Z0JBQ0UsT0FBTyxZQUFZLEVBQUUsV0FBVyxFQUFhLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7Q0FDRjtBQUVELE9BQU8sRUFBQyxhQUFhLEVBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7VGFnVHlwZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1RhZ0NvbG9yfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuXG5jbGFzcyBDYXNlVGFnc1V0aWxzIHtcbiAgc3RhdGljIGdldFRhZ1R5cGVGcm9tQ2FzZVRhZ0NvbG9yKGNhc2VUYWdDb2xvcjogVGFnQ29sb3IpOiBUYWdUeXBlIHtcbiAgICBzd2l0Y2ggKGNhc2VUYWdDb2xvcikge1xuICAgICAgY2FzZSBUYWdDb2xvci5IaWdoQ29udHJhc3Q6XG4gICAgICAgIHJldHVybiAnaGlnaC1jb250cmFzdCc7XG4gICAgICBjYXNlIFRhZ0NvbG9yLkNvb2xHcmF5OlxuICAgICAgICByZXR1cm4gJ2Nvb2wtZ3JheSc7XG4gICAgICBjYXNlIFRhZ0NvbG9yLldhcm1HcmF5OlxuICAgICAgICByZXR1cm4gJ3dhcm0tZ3JheSc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gY2FzZVRhZ0NvbG9yPy50b0xvd2VyQ2FzZSgpIGFzIFRhZ1R5cGU7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB7Q2FzZVRhZ3NVdGlsc307XG4iXX0=