@yuuvis/client-core 1.0.3 → 2.0.0-beta.1

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 (105) hide show
  1. package/fesm2022/yuuvis-client-core.mjs +773 -645
  2. package/fesm2022/yuuvis-client-core.mjs.map +1 -1
  3. package/index.d.ts +7 -4
  4. package/lib/model/object-flavor.interface.d.ts +4 -1
  5. package/lib/provide.client.core.d.ts +58 -0
  6. package/lib/service/backend/backend.service.d.ts +0 -1
  7. package/lib/service/config/config.service.d.ts +0 -8
  8. package/lib/service/core-init/core-init.service.d.ts +1 -7
  9. package/lib/service/core-init/translate-json-loader.d.ts +1 -1
  10. package/lib/service/dms/dms.service.d.ts +2 -1
  11. package/lib/service/object-config/object-config.interface.d.ts +1 -1
  12. package/lib/service/object-form/object-form-translate.service.d.ts +15 -0
  13. package/lib/service/{system → object-form}/object-form.interface.d.ts +2 -2
  14. package/lib/service/object-form/object-form.model.d.ts +45 -0
  15. package/lib/service/system/system.interface.d.ts +1 -1
  16. package/lib/service/system/system.service.d.ts +1 -1
  17. package/lib/service/toast/toast.interface.d.ts +8 -0
  18. package/lib/service/toast/toast.service.d.ts +17 -0
  19. package/lib/service/toast/toast.styles.d.ts +1 -0
  20. package/lib/service/upload/upload.interface.d.ts +1 -1
  21. package/lib/service/user/user.providers.d.ts +4 -0
  22. package/lib/service/user/user.service.d.ts +2 -4
  23. package/package.json +7 -10
  24. package/esm2022/index.mjs +0 -69
  25. package/esm2022/lib/client-core.module.mjs +0 -117
  26. package/esm2022/lib/client-core.shared.module.mjs +0 -18
  27. package/esm2022/lib/common/pipes/filesize.pipe.mjs +0 -37
  28. package/esm2022/lib/common/pipes/index.mjs +0 -6
  29. package/esm2022/lib/common/pipes/keys.pipe.mjs +0 -17
  30. package/esm2022/lib/common/pipes/locale-date.pipe.mjs +0 -45
  31. package/esm2022/lib/common/pipes/locale-number.pipe.mjs +0 -115
  32. package/esm2022/lib/common/pipes/safe-html.pipe.mjs +0 -44
  33. package/esm2022/lib/common/services/native-notifications.interface.mjs +0 -2
  34. package/esm2022/lib/common/services/native-notifications.mjs +0 -40
  35. package/esm2022/lib/model/dms-object.interface.mjs +0 -2
  36. package/esm2022/lib/model/dms-object.model.mjs +0 -79
  37. package/esm2022/lib/model/object-flavor.interface.mjs +0 -2
  38. package/esm2022/lib/model/range-value.interface.mjs +0 -2
  39. package/esm2022/lib/model/yuv-error.model.mjs +0 -37
  40. package/esm2022/lib/model/yuv-user.model.mjs +0 -38
  41. package/esm2022/lib/service/audit/audit.interface.mjs +0 -2
  42. package/esm2022/lib/service/audit/audit.service.mjs +0 -135
  43. package/esm2022/lib/service/auth/auth.interceptor.mjs +0 -50
  44. package/esm2022/lib/service/auth/auth.interface.mjs +0 -7
  45. package/esm2022/lib/service/auth/auth.service.mjs +0 -130
  46. package/esm2022/lib/service/auth/oidc.service.mjs +0 -81
  47. package/esm2022/lib/service/backend/api.enum.mjs +0 -11
  48. package/esm2022/lib/service/backend/backend.interface.mjs +0 -2
  49. package/esm2022/lib/service/backend/backend.service.mjs +0 -206
  50. package/esm2022/lib/service/bpm/bpm.interface.mjs +0 -8
  51. package/esm2022/lib/service/bpm/bpm.service.mjs +0 -51
  52. package/esm2022/lib/service/cache/app-cache.service.mjs +0 -51
  53. package/esm2022/lib/service/catalog/catalog.interface.mjs +0 -2
  54. package/esm2022/lib/service/catalog/catalog.service.mjs +0 -13
  55. package/esm2022/lib/service/clipboard/clipboard.interface.mjs +0 -2
  56. package/esm2022/lib/service/clipboard/clipboard.service.mjs +0 -99
  57. package/esm2022/lib/service/config/config.interface.mjs +0 -6
  58. package/esm2022/lib/service/config/config.service.mjs +0 -115
  59. package/esm2022/lib/service/config/core-config.mjs +0 -20
  60. package/esm2022/lib/service/config/core-config.tokens.mjs +0 -9
  61. package/esm2022/lib/service/connection/connection.service.mjs +0 -36
  62. package/esm2022/lib/service/connection/offline.interceptor.mjs +0 -28
  63. package/esm2022/lib/service/core-init/core-init.service.mjs +0 -29
  64. package/esm2022/lib/service/core-init/missing-translation-handler.mjs +0 -10
  65. package/esm2022/lib/service/core-init/translate-json-loader.mjs +0 -117
  66. package/esm2022/lib/service/device/device.interface.mjs +0 -6
  67. package/esm2022/lib/service/device/device.service.mjs +0 -144
  68. package/esm2022/lib/service/dms/dms.service.interface.mjs +0 -2
  69. package/esm2022/lib/service/dms/dms.service.mjs +0 -440
  70. package/esm2022/lib/service/event/event.interface.mjs +0 -2
  71. package/esm2022/lib/service/event/event.service.mjs +0 -38
  72. package/esm2022/lib/service/event/events.mjs +0 -14
  73. package/esm2022/lib/service/idm/idm.interface.mjs +0 -2
  74. package/esm2022/lib/service/idm/idm.service.mjs +0 -34
  75. package/esm2022/lib/service/logger/logger-console.service.mjs +0 -73
  76. package/esm2022/lib/service/logger/logger.interface.mjs +0 -2
  77. package/esm2022/lib/service/logger/logger.mjs +0 -27
  78. package/esm2022/lib/service/notification/notification.service.mjs +0 -131
  79. package/esm2022/lib/service/object-config/object-config.interface.mjs +0 -2
  80. package/esm2022/lib/service/object-config/object-config.service.mjs +0 -233
  81. package/esm2022/lib/service/pending-changes/pending-changes-component.interface.mjs +0 -5
  82. package/esm2022/lib/service/pending-changes/pending-changes-guard.service.mjs +0 -25
  83. package/esm2022/lib/service/pending-changes/pending-changes.service.mjs +0 -123
  84. package/esm2022/lib/service/prediction/prediction.interface.mjs +0 -2
  85. package/esm2022/lib/service/prediction/prediction.service.mjs +0 -60
  86. package/esm2022/lib/service/retention/retention.interface.mjs +0 -2
  87. package/esm2022/lib/service/retention/retention.service.mjs +0 -65
  88. package/esm2022/lib/service/search/search.service.interface.mjs +0 -39
  89. package/esm2022/lib/service/search/search.service.mjs +0 -261
  90. package/esm2022/lib/service/search/search.utils.mjs +0 -142
  91. package/esm2022/lib/service/session-storage/session-storage.service.mjs +0 -50
  92. package/esm2022/lib/service/system/object-form.interface.mjs +0 -2
  93. package/esm2022/lib/service/system/system.enum.mjs +0 -167
  94. package/esm2022/lib/service/system/system.interface.mjs +0 -2
  95. package/esm2022/lib/service/system/system.service.mjs +0 -597
  96. package/esm2022/lib/service/upload/upload.interface.mjs +0 -2
  97. package/esm2022/lib/service/upload/upload.service.mjs +0 -228
  98. package/esm2022/lib/service/user/user-storage.service.mjs +0 -38
  99. package/esm2022/lib/service/user/user.service.mjs +0 -211
  100. package/esm2022/lib/util/utils.helper.enum.mjs +0 -15
  101. package/esm2022/lib/util/utils.mjs +0 -373
  102. package/esm2022/yuuvis-client-core.mjs +0 -5
  103. package/lib/client-core.module.d.ts +0 -20
  104. package/lib/client-core.shared.module.d.ts +0 -10
  105. package/lib/service/auth/oidc.service.d.ts +0 -16
@@ -1,206 +0,0 @@
1
- import { HttpClient, HttpHeaders } from '@angular/common/http';
2
- import { inject, Injectable } from '@angular/core';
3
- import { forkJoin, of } from 'rxjs';
4
- import { catchError, finalize, shareReplay, tap } from 'rxjs/operators';
5
- import { ConfigService } from '../config/config.service';
6
- import { Logger } from '../logger/logger';
7
- import { ApiBase } from './api.enum';
8
- import * as i0 from "@angular/core";
9
- /**
10
- * Service for providing an yuuvis Backend
11
- */
12
- export class BackendService {
13
- constructor() {
14
- this.#http = inject(HttpClient);
15
- this.#logger = inject(Logger);
16
- this.configService = inject(ConfigService);
17
- this.#cache = new Map();
18
- this.#temp = new Map();
19
- this.#headers = new HttpHeaders({
20
- 'Content-Type': 'application/json'
21
- });
22
- }
23
- #http;
24
- #logger;
25
- #cache;
26
- #temp;
27
- #headers;
28
- authUsesOpenIdConnect() {
29
- return this.configService.authUsesOpenIdConnect();
30
- }
31
- /**
32
- * OpenIdConnect authorization headers
33
- */
34
- getAuthHeaders() {
35
- return this.configService.getAuthHeaders();
36
- }
37
- /**
38
- * Add a new header.
39
- * @param key The headers name
40
- * @param value The value to be added to the headers. Setting this to null
41
- * will remove the header
42
- */
43
- setHeader(key, value) {
44
- if (value && value.length) {
45
- this.#headers = this.#headers.set(key, value);
46
- }
47
- else {
48
- this.#headers = this.#headers.delete(key);
49
- }
50
- }
51
- /**
52
- * Wrapped HTTP GET method
53
- * @param uri The REST URI to be queried
54
- * @param base The Base URI (backend service) to be used
55
- * @param requestOptions Additional request options
56
- * @returns The data retrieved from the given endpoint
57
- */
58
- get(uri, base, requestOptions) {
59
- return this.#http.get(this.getApiBase(base) + uri, this.getHttpOptions(requestOptions));
60
- }
61
- /**
62
- * Wrapped HTTP POST method
63
- * @param uri The target REST URI
64
- * @param data Data to be 'posted'
65
- * @param base The Base URI (backend service) to be used
66
- * @param requestOptions Additional request options
67
- * @returns The return value of the target POST endpoint
68
- */
69
- post(uri, data, base, requestOptions) {
70
- const baseUri = this.getApiBase(base);
71
- const payload = data && typeof data === 'object' ? JSON.stringify(data) : data || '';
72
- return this.#http.post(`${baseUri}${uri}`, payload, this.getHttpOptions(requestOptions));
73
- }
74
- /**
75
- * Performs a multipart form data POST request.
76
- * @param uri The target REST URI
77
- * @param formData FormData to be 'posted'
78
- * @param base The Base URI (backend service) to be used
79
- * @param requestOptions Additional request options
80
- * @returns The return value of the target POST endpoint
81
- */
82
- postMultiPart(uri, formData, base, requestOptions) {
83
- return this.#http.post(`${this.getApiBase(base)}${uri}`, formData, this.getHttpOptions(requestOptions));
84
- }
85
- /**
86
- * Wrapped HTTP PATCH method
87
- * @param uri The target REST URI
88
- * @param data Data to be 'patched'
89
- * @param base The Base URI (backend service) to be used
90
- * @param requestOptions Additional request options
91
- * @returns The return value of the target PATCH endpoint
92
- */
93
- patch(uri, data, base, requestOptions) {
94
- const baseUri = this.getApiBase(base);
95
- const payload = data ? JSON.stringify(data) : '';
96
- return this.#http.patch(`${baseUri}${uri}`, payload, this.getHttpOptions(requestOptions));
97
- }
98
- /**
99
- * Wrapped HTTP PUT method
100
- * @param uri The target REST URI
101
- * @param data Data to be 'posted'
102
- * @param base The Base URI (backend service) to be used
103
- * @param requestOptions Additional request options
104
- * @returns The return value of the target PUT endpoint
105
- */
106
- put(uri, data, base, requestOptions) {
107
- return this.#http.put(this.getApiBase(base) + uri, data, this.getHttpOptions(requestOptions));
108
- }
109
- /**
110
- * Wrapped HTTP DELETE method
111
- * @param uri The target REST URI
112
- * @param base The Base URI (backend service) to be used
113
- * @param requestOptions Additional request options
114
- * @returns The return value of the target DELETE endpoint
115
- */
116
- delete(uri, base, requestOptions) {
117
- return this.#http.delete(this.getApiBase(base) + uri, this.getHttpOptions(requestOptions));
118
- }
119
- /**
120
- * @ignore
121
- * Cache for small requests like icons and configs
122
- *
123
- * @param string uri
124
- * @returns Observable<any>
125
- */
126
- getViaCache(uri) {
127
- if (this.#cache.has(uri)) {
128
- return of(this.#cache.get(uri));
129
- }
130
- else {
131
- const requestOptions = {
132
- responseType: 'text',
133
- headers: this.getAuthHeaders()
134
- };
135
- return this.getViaTempCache(uri, () => this.#http.get(uri, requestOptions).pipe(tap((text) => this.#cache.set(uri, text))));
136
- }
137
- }
138
- /**
139
- * @ignore
140
- * Temporary Cache for multiple identical requests
141
- *
142
- * @param string id
143
- * @param Function request
144
- * @returns Observable<any>
145
- */
146
- getViaTempCache(id, request) {
147
- if (this.#temp.has(id)) {
148
- return this.#temp.get(id);
149
- }
150
- else {
151
- const resp = (request ? request() : this.get(id)).pipe(finalize(() => this.#temp.delete(id)), shareReplay(1));
152
- this.#temp.set(id, resp);
153
- return resp;
154
- }
155
- }
156
- download(uri, filename) {
157
- if (document && document.body) {
158
- const a = document.createElement('a');
159
- a.setAttribute('href', uri);
160
- a.style.display = 'none';
161
- a.setAttribute('download', filename || 'download');
162
- document.body.appendChild(a);
163
- a.click();
164
- document.body.removeChild(a);
165
- }
166
- else {
167
- this.#logger.error('Environment not supported. Downloading contents relies on a DOM being available.');
168
- }
169
- }
170
- /**
171
- * Gets the base URI for an API endpoint
172
- * @param api The API to get the base URI for. Leaving this blank will return
173
- * base URI for the web API
174
- * @param origin The flag to include location origin
175
- * @returns Base URI for the given API.
176
- */
177
- getApiBase(api = ApiBase.apiWeb, origin = false) {
178
- return this.configService.getApiBase(api, origin);
179
- }
180
- /**
181
- * @ignore
182
- */
183
- getHttpOptions(requestOptions) {
184
- // Object.entries(this.getAuthHeaders()).forEach(([h, v]) => this.setHeader(h, v as string));
185
- this.getAuthHeaders()
186
- .keys()
187
- .forEach((k) => this.setHeader(k, this.getAuthHeaders().get(k)));
188
- return Object.assign({ headers: this.#headers }, requestOptions);
189
- }
190
- /**
191
- * Batch service
192
- */
193
- batch(requests) {
194
- const httpRequests = requests.map((r) => this[(r.method || 'get').toLowerCase()]
195
- .apply(this, [r.uri, r.body, r.base, r.requestOptions].filter((a) => a))
196
- .pipe(catchError((err) => of({ _error: err }))));
197
- return forkJoin(httpRequests);
198
- }
199
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BackendService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
200
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BackendService, providedIn: 'root' }); }
201
- }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BackendService, decorators: [{
203
- type: Injectable,
204
- args: [{ providedIn: 'root' }]
205
- }] });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFHckM7O0dBRUc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQUQzQjtRQUVFLFVBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0IsWUFBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV0QyxXQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztRQUNoQyxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7UUFDM0MsYUFBUSxHQUFHLElBQUksV0FBVyxDQUFDO1lBQ3pCLGNBQWMsRUFBRSxrQkFBa0I7U0FDbkMsQ0FBQyxDQUFDO0tBK0xKO0lBdk1DLEtBQUssQ0FBc0I7SUFDM0IsT0FBTyxDQUFrQjtJQUd6QixNQUFNLENBQTBC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QUFDLFlBQVksQ0FBc0IsQ0FBQztJQUNyRCxDQUFDOytHQXZNVSxjQUFjO21IQUFkLGNBQWMsY0FERCxNQUFNOzs0RkFDbkIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgc2hhcmVSZXBsYXksIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnLi4vbG9nZ2VyL2xvZ2dlcic7XG5pbXBvcnQgeyBBcGlCYXNlIH0gZnJvbSAnLi9hcGkuZW51bSc7XG5pbXBvcnQgeyBIdHRwRGVsZXRlT3B0aW9ucywgSHR0cE9wdGlvbnMgfSBmcm9tICcuL2JhY2tlbmQuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciBwcm92aWRpbmcgYW4geXV1dmlzIEJhY2tlbmRcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBCYWNrZW5kU2VydmljZSB7XG4gICNodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICAjbG9nZ2VyID0gaW5qZWN0KExvZ2dlcik7XG4gIGNvbmZpZ1NlcnZpY2UgPSBpbmplY3QoQ29uZmlnU2VydmljZSk7XG5cbiAgI2NhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbiAgI3RlbXAgPSBuZXcgTWFwPHN0cmluZywgT2JzZXJ2YWJsZTxhbnk+PigpO1xuICAjaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICB9KTtcblxuICBhdXRoVXNlc09wZW5JZENvbm5lY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5hdXRoVXNlc09wZW5JZENvbm5lY3QoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVuSWRDb25uZWN0IGF1dGhvcml6YXRpb24gaGVhZGVyc1xuICAgKi9cbiAgZ2V0QXV0aEhlYWRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5nZXRBdXRoSGVhZGVycygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBoZWFkZXIuXG4gICAqIEBwYXJhbSBrZXkgVGhlIGhlYWRlcnMgbmFtZVxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIGJlIGFkZGVkIHRvIHRoZSBoZWFkZXJzLiBTZXR0aW5nIHRoaXMgdG8gbnVsbFxuICAgKiB3aWxsIHJlbW92ZSB0aGUgaGVhZGVyXG4gICAqL1xuICBzZXRIZWFkZXIoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLiNoZWFkZXJzID0gdGhpcy4jaGVhZGVycy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2hlYWRlcnMgPSB0aGlzLiNoZWFkZXJzLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcGVkIEhUVFAgR0VUIG1ldGhvZFxuICAgKiBAcGFyYW0gdXJpIFRoZSBSRVNUIFVSSSB0byBiZSBxdWVyaWVkXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBBZGRpdGlvbmFsIHJlcXVlc3Qgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBUaGUgZGF0YSByZXRyaWV2ZWQgZnJvbSB0aGUgZ2l2ZW4gZW5kcG9pbnRcbiAgICovXG4gIGdldCh1cmk6IHN0cmluZywgYmFzZT86IHN0cmluZywgcmVxdWVzdE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuI2h0dHAuZ2V0KHRoaXMuZ2V0QXBpQmFzZShiYXNlKSArIHVyaSwgdGhpcy5nZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyYXBwZWQgSFRUUCBQT1NUIG1ldGhvZFxuICAgKiBAcGFyYW0gdXJpIFRoZSB0YXJnZXQgUkVTVCBVUklcbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0byBiZSAncG9zdGVkJ1xuICAgKiBAcGFyYW0gYmFzZSBUaGUgQmFzZSBVUkkgKGJhY2tlbmQgc2VydmljZSkgdG8gYmUgdXNlZFxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgQWRkaXRpb25hbCByZXF1ZXN0IG9wdGlvbnNcbiAgICogQHJldHVybnMgVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgdGFyZ2V0IFBPU1QgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyBwb3N0KHVyaTogc3RyaW5nLCBkYXRhPzogYW55LCBiYXNlPzogc3RyaW5nLCByZXF1ZXN0T3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBiYXNlVXJpID0gdGhpcy5nZXRBcGlCYXNlKGJhc2UpO1xuICAgIGNvbnN0IHBheWxvYWQgPSBkYXRhICYmIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyA/IEpTT04uc3RyaW5naWZ5KGRhdGEpIDogZGF0YSB8fCAnJztcbiAgICByZXR1cm4gdGhpcy4jaHR0cC5wb3N0KGAke2Jhc2VVcml9JHt1cml9YCwgcGF5bG9hZCwgdGhpcy5nZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIGEgbXVsdGlwYXJ0IGZvcm0gZGF0YSBQT1NUIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB1cmkgVGhlIHRhcmdldCBSRVNUIFVSSVxuICAgKiBAcGFyYW0gZm9ybURhdGEgRm9ybURhdGEgdG8gYmUgJ3Bvc3RlZCdcbiAgICogQHBhcmFtIGJhc2UgVGhlIEJhc2UgVVJJIChiYWNrZW5kIHNlcnZpY2UpIHRvIGJlIHVzZWRcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXG4gICAqIEByZXR1cm5zIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHRhcmdldCBQT1NUIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgcG9zdE11bHRpUGFydCh1cmk6IHN0cmluZywgZm9ybURhdGE6IEZvcm1EYXRhLCBiYXNlPzogc3RyaW5nLCByZXF1ZXN0T3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy4jaHR0cC5wb3N0KGAke3RoaXMuZ2V0QXBpQmFzZShiYXNlKX0ke3VyaX1gLCBmb3JtRGF0YSwgdGhpcy5nZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyYXBwZWQgSFRUUCBQQVRDSCBtZXRob2RcbiAgICogQHBhcmFtIHVyaSBUaGUgdGFyZ2V0IFJFU1QgVVJJXG4gICAqIEBwYXJhbSBkYXRhIERhdGEgdG8gYmUgJ3BhdGNoZWQnXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBBZGRpdGlvbmFsIHJlcXVlc3Qgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB0YXJnZXQgUEFUQ0ggZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyBwYXRjaCh1cmk6IHN0cmluZywgZGF0YT86IGFueSwgYmFzZT86IHN0cmluZywgcmVxdWVzdE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgYmFzZVVyaSA9IHRoaXMuZ2V0QXBpQmFzZShiYXNlKTtcbiAgICBjb25zdCBwYXlsb2FkID0gZGF0YSA/IEpTT04uc3RyaW5naWZ5KGRhdGEpIDogJyc7XG4gICAgcmV0dXJuIHRoaXMuI2h0dHAucGF0Y2goYCR7YmFzZVVyaX0ke3VyaX1gLCBwYXlsb2FkLCB0aGlzLmdldEh0dHBPcHRpb25zKHJlcXVlc3RPcHRpb25zKSk7XG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlZCBIVFRQIFBVVCBtZXRob2RcbiAgICogQHBhcmFtIHVyaSBUaGUgdGFyZ2V0IFJFU1QgVVJJXG4gICAqIEBwYXJhbSBkYXRhIERhdGEgdG8gYmUgJ3Bvc3RlZCdcbiAgICogQHBhcmFtIGJhc2UgVGhlIEJhc2UgVVJJIChiYWNrZW5kIHNlcnZpY2UpIHRvIGJlIHVzZWRcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXG4gICAqIEByZXR1cm5zIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHRhcmdldCBQVVQgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyBwdXQodXJpOiBzdHJpbmcsIGRhdGE/OiBhbnksIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLiNodHRwLnB1dCh0aGlzLmdldEFwaUJhc2UoYmFzZSkgKyB1cmksIGRhdGEsIHRoaXMuZ2V0SHR0cE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcGVkIEhUVFAgREVMRVRFIG1ldGhvZFxuICAgKiBAcGFyYW0gdXJpIFRoZSB0YXJnZXQgUkVTVCBVUklcbiAgICogQHBhcmFtIGJhc2UgVGhlIEJhc2UgVVJJIChiYWNrZW5kIHNlcnZpY2UpIHRvIGJlIHVzZWRcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXG4gICAqIEByZXR1cm5zIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHRhcmdldCBERUxFVEUgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyBkZWxldGUodXJpOiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cERlbGV0ZU9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLiNodHRwLmRlbGV0ZSh0aGlzLmdldEFwaUJhc2UoYmFzZSkgKyB1cmksIHRoaXMuZ2V0SHR0cE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqIENhY2hlIGZvciBzbWFsbCByZXF1ZXN0cyBsaWtlIGljb25zIGFuZCBjb25maWdzXG4gICAqXG4gICAqIEBwYXJhbSBzdHJpbmcgdXJpXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgKi9cbiAgcHVibGljIGdldFZpYUNhY2hlKHVyaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAodGhpcy4jY2FjaGUuaGFzKHVyaSkpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLiNjYWNoZS5nZXQodXJpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zOiBhbnkgPSB7XG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEF1dGhIZWFkZXJzKClcbiAgICAgIH07XG4gICAgICByZXR1cm4gdGhpcy5nZXRWaWFUZW1wQ2FjaGUodXJpLCAoKSA9PiB0aGlzLiNodHRwLmdldCh1cmksIHJlcXVlc3RPcHRpb25zKS5waXBlKHRhcCgodGV4dCkgPT4gdGhpcy4jY2FjaGUuc2V0KHVyaSwgdGV4dCkpKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICogVGVtcG9yYXJ5IENhY2hlIGZvciBtdWx0aXBsZSBpZGVudGljYWwgcmVxdWVzdHNcbiAgICpcbiAgICogQHBhcmFtIHN0cmluZyBpZFxuICAgKiBAcGFyYW0gRnVuY3Rpb24gcmVxdWVzdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICovXG4gIHB1YmxpYyBnZXRWaWFUZW1wQ2FjaGUoaWQ6IHN0cmluZywgcmVxdWVzdD86ICgpID0+IE9ic2VydmFibGU8b2JqZWN0Pik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHRoaXMuI3RlbXAuaGFzKGlkKSkge1xuICAgICAgcmV0dXJuIHRoaXMuI3RlbXAuZ2V0KGlkKSE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlc3AgPSAocmVxdWVzdCA/IHJlcXVlc3QoKSA6IHRoaXMuZ2V0KGlkKSkucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy4jdGVtcC5kZWxldGUoaWQpKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICk7XG4gICAgICB0aGlzLiN0ZW1wLnNldChpZCwgcmVzcCk7XG4gICAgICByZXR1cm4gcmVzcDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZG93bmxvYWQodXJpOiBzdHJpbmcsIGZpbGVuYW1lPzogc3RyaW5nKSB7XG4gICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICBhLnNldEF0dHJpYnV0ZSgnaHJlZicsIHVyaSk7XG4gICAgICBhLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICBhLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlbmFtZSB8fCAnZG93bmxvYWQnKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgICBhLmNsaWNrKCk7XG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNsb2dnZXIuZXJyb3IoJ0Vudmlyb25tZW50IG5vdCBzdXBwb3J0ZWQuIERvd25sb2FkaW5nIGNvbnRlbnRzIHJlbGllcyBvbiBhIERPTSBiZWluZyBhdmFpbGFibGUuJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciBhbiBBUEkgZW5kcG9pbnRcbiAgICogQHBhcmFtIGFwaSBUaGUgQVBJIHRvIGdldCB0aGUgYmFzZSBVUkkgZm9yLiBMZWF2aW5nIHRoaXMgYmxhbmsgd2lsbCByZXR1cm5cbiAgICogYmFzZSBVUkkgZm9yIHRoZSB3ZWIgQVBJXG4gICAqIEBwYXJhbSBvcmlnaW4gVGhlIGZsYWcgdG8gaW5jbHVkZSBsb2NhdGlvbiBvcmlnaW5cbiAgICogQHJldHVybnMgQmFzZSBVUkkgZm9yIHRoZSBnaXZlbiBBUEkuXG4gICAqL1xuICBnZXRBcGlCYXNlKGFwaTogc3RyaW5nID0gQXBpQmFzZS5hcGlXZWIsIG9yaWdpbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmdldEFwaUJhc2UoYXBpLCBvcmlnaW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGdldEh0dHBPcHRpb25zKHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBIdHRwT3B0aW9ucyB7XG4gICAgLy8gT2JqZWN0LmVudHJpZXModGhpcy5nZXRBdXRoSGVhZGVycygpKS5mb3JFYWNoKChbaCwgdl0pID0+IHRoaXMuc2V0SGVhZGVyKGgsIHYgYXMgc3RyaW5nKSk7XG4gICAgdGhpcy5nZXRBdXRoSGVhZGVycygpXG4gICAgICAua2V5cygpXG4gICAgICAuZm9yRWFjaCgoaykgPT4gdGhpcy5zZXRIZWFkZXIoaywgdGhpcy5nZXRBdXRoSGVhZGVycygpLmdldChrKSEpKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7IGhlYWRlcnM6IHRoaXMuI2hlYWRlcnMgfSwgcmVxdWVzdE9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJhdGNoIHNlcnZpY2VcbiAgICovXG4gIGJhdGNoKHJlcXVlc3RzOiB7IG1ldGhvZD86IHN0cmluZzsgdXJpOiBzdHJpbmc7IGJvZHk/OiBhbnk7IGJhc2U/OiBzdHJpbmc7IHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMgfVtdKSB7XG4gICAgY29uc3QgaHR0cFJlcXVlc3RzID0gcmVxdWVzdHMubWFwKChyKSA9PlxuICAgICAgKHRoaXMgYXMgYW55KVsoci5tZXRob2QgfHwgJ2dldCcpLnRvTG93ZXJDYXNlKCldXG4gICAgICAgIC5hcHBseShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIFtyLnVyaSwgci5ib2R5LCByLmJhc2UsIHIucmVxdWVzdE9wdGlvbnNdLmZpbHRlcigoYSkgPT4gYSlcbiAgICAgICAgKVxuICAgICAgICAucGlwZShjYXRjaEVycm9yKChlcnIpID0+IG9mKHsgX2Vycm9yOiBlcnIgfSkpKVxuICAgICk7XG4gICAgcmV0dXJuIGZvcmtKb2luKGh0dHBSZXF1ZXN0cykgYXMgT2JzZXJ2YWJsZTxhbnlbXT47XG4gIH1cbn1cbiJdfQ==
@@ -1,8 +0,0 @@
1
- export const ProcessAction = {
2
- complete: 'complete',
3
- claim: 'claim',
4
- delegate: 'delegate',
5
- resolve: 'resolve',
6
- save: 'save'
7
- };
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1jb3JlL3NyYy9saWIvc2VydmljZS9icG0vYnBtLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsUUFBUSxFQUFFLFVBQVU7SUFDcEIsS0FBSyxFQUFFLE9BQU87SUFDZCxRQUFRLEVBQUUsVUFBVTtJQUNwQixPQUFPLEVBQUUsU0FBUztJQUNsQixJQUFJLEVBQUUsTUFBTTtDQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBjb25zdCBQcm9jZXNzQWN0aW9uID0ge1xuICBjb21wbGV0ZTogJ2NvbXBsZXRlJyxcbiAgY2xhaW06ICdjbGFpbScsXG4gIGRlbGVnYXRlOiAnZGVsZWdhdGUnLFxuICByZXNvbHZlOiAncmVzb2x2ZScsXG4gIHNhdmU6ICdzYXZlJ1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzIHtcbiAgaWQ6IHN0cmluZztcbiAgLy8gb2JqZWN0cyAoSURzKSBhdHRhY2hlZCB0byB0aGUgcHJvY2Vzc1xuICBhdHRhY2htZW50czogc3RyaW5nW107XG4gIGJ1c2luZXNzS2V5OiBzdHJpbmc7IC8vXG4gIGRlbGV0ZVJlYXNvbjogc3RyaW5nO1xuICBkdXJhdGlvbkluTWlsbGlzOiBudW1iZXI7IC8vXG4gIGVuZEFjdGl2aXR5SWQ6IHN0cmluZztcbiAgZW5kVGltZTogRGF0ZTtcbiAgaW5pdGlhdG9yOiBQcm9jZXNzVXNlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBwcm9jZXNzRGVmaW5pdGlvbjogeyBkZXNjcmlwdGlvbjogc3RyaW5nOyBpZDogc3RyaW5nOyBpZFByZWZpeDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfTtcbiAgc3RhcnRBY3Rpdml0eUlkOiBzdHJpbmc7XG4gIHN0YXJ0VGltZTogRGF0ZTtcbiAgc3RhcnRVc2VySWQ6IHN0cmluZztcbiAgLy8gc3ViamVjdDogc3RyaW5nO1xuICBzdXNwZW5kZWQ/OiBib29sZWFuO1xuICB2YXJpYWJsZXM6IFByb2Nlc3NWYXJpYWJsZVtdOyAvLyB0ZW5hbnQgYWRtaW4gb25seVxufVxuXG5cbi8vIHBheWxvYWQgZm9yIHN0YXJ0aW5nIGEgbmV3IHByb2Nlc3NcbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc0NyZWF0ZVBheWxvYWQgZXh0ZW5kcyBQcm9jZXNzUG9zdFBheWxvYWQge1xuICBwcm9jZXNzRGVmaW5pdGlvbktleTogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBidXNpbmVzc0tleT86IHN0cmluZztcbiAgcmV0dXJuVmFyaWFibGVzPzogYm9vbGVhbjtcbn1cblxuLy8gcGF5bG9hZCBmb3IgcG9zdCByZXF1ZXN0cyB0byB0aGUgYnBtIGJhY2tlbmRcbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc1Bvc3RQYXlsb2FkIHtcbiAgdmFyaWFibGVzPzogUHJvY2Vzc1ZhcmlhYmxlW107XG4gIGF0dGFjaG1lbnRzPzogc3RyaW5nW107XG4gIHN1YmplY3Q/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc1ZhcmlhYmxlIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICAvLyBUT0RPOiBOb3QgeWV0IHN1cHBvcnRlZCBieSBCUE0tRW5naW5lXG4gIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgc2NvcGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGFza3MgYXJlIGJhc2ljYWxseSBhY3Rpdml0aWVzIGRlZmluZWQgYnkgYSBwcm9jZXNzLlxuICogUHJvY2Vzc2VzIG1heSBjb250YWluIHNldmVyYWwgdGFza3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5ib3hUYXNrIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIC8vIElEIG9mIHRoZSBwcm9jZXNzIGluc3RhbmNlIHRoYXQgY29udGFpbnMgdGhpcyB0YXNrL2FjdGl2aXR5XG4gICAgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZztcbiAgICBhc3NpZ25lZTogUHJvY2Vzc1VzZXI7XG4gICAgY2xhaW1UaW1lOiBEYXRlO1xuICAgIGNyZWF0ZVRpbWU6IERhdGU7XG4gICAgZHVlRGF0ZTogRGF0ZTtcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIC8vIHRhc2tNZXNzYWdlcz86IFRhc2tNZXNzYWdlW107XG4gICAgLy8gdGFza0Zvcm0/OiB7XG4gICAgLy8gICBzY2hlbWFQcm9wZXJ0aWVzPzogc3RyaW5nW107XG4gICAgLy8gICBtb2RlbD86IGFueTtcbiAgICAvLyAgIGRhdGE/OiBhbnk7XG4gICAgLy8gICBvdXRjb21lcz86IFRhc2tPdXRjb21lW107XG4gICAgLy8gfTtcbiAgICBkZWxlZ2F0aW9uU3RhdGU/OiBzdHJpbmc7XG4gICAgZm9ybUtleTogc3RyaW5nO1xuICAgIGluaXRpYXRvcjogUHJvY2Vzc1VzZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIG93bmVyOiBQcm9jZXNzVXNlcjtcbiAgICBwYXJlbnRUYXNrSWQ6IHN0cmluZztcbiAgICBwcm9jZXNzRGVmaW5pdGlvbjoge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGlkUHJlZml4OiBzdHJpbmc7XG4gICAgfTtcbiAgICBzdWJqZWN0OiBzdHJpbmc7XG4gICAgc3VzcGVuZGVkOiBmYWxzZTtcbiAgICB2YXJpYWJsZXM6IFByb2Nlc3NWYXJpYWJsZVtdO1xuICAgIHJlc29sdmVkVmFsdWVzPzogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9O1xuICAgIGF0dGFjaG1lbnRzOiBzdHJpbmdbXTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc1VzZXIge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hUYXNrT3B0aW9ucyB7XG4gICAgYnVzaW5lc3NLZXk/OiBzdHJpbmc7XG4gICAgaW5jbHVkZVByb2Nlc3NWYXI/OiBib29sZWFuO1xuICAgIGlzQ29tcGxldGVkPzogYm9vbGVhbjtcbiAgICBwcm9jZXNzRGVmaW5pdGlvbktleT86IHN0cmluZztcbiAgfSJdfQ==
@@ -1,51 +0,0 @@
1
- import { inject, Injectable } from '@angular/core';
2
- import { BackendService } from '../backend/backend.service';
3
- import { ProcessAction } from './bpm.interface';
4
- import { map, of } from 'rxjs';
5
- import { ApiBase } from '../backend/api.enum';
6
- import { Utils } from '../../util/utils';
7
- import * as i0 from "@angular/core";
8
- export class BpmService {
9
- #backend = inject(BackendService);
10
- startProcess(payload) {
11
- return this.#backend.post('/bpm/processes', payload, ApiBase.apiWeb);
12
- }
13
- /**
14
- * Finsihes a task.
15
- * @param taskId ID of the taks to finish
16
- * @param payload Data to be send with the complete request (may contain attachments, a new subject or variables)
17
- */
18
- completeTask(taskId, payload) {
19
- return this.#putTask(taskId, ProcessAction.complete, payload || {});
20
- }
21
- updateTask(taskId, payload) {
22
- return this.#putTask(taskId, ProcessAction.save, payload || {});
23
- }
24
- //TODO: replace with propper service call
25
- getProcessPoll() {
26
- const random = Math.random();
27
- console.log('getProcessPoll: ', { random });
28
- return of([{ title: `task title ${random}`, duedate: new Date() }]);
29
- }
30
- getProcessInstance(processDefinitionKey, options) {
31
- return this.#backend
32
- .get(`/bpm/processes${Utils.optionsToURLParams({ ...options, processDefinitionKey })}`, ApiBase.apiWeb)
33
- .pipe(map(({ objects }) => objects[0]));
34
- }
35
- deleteProcess(processInstanceId) {
36
- return this.#backend.delete(`/bpm/processes/${processInstanceId}`, ApiBase.apiWeb);
37
- }
38
- #putTask(taskId, action, payload) {
39
- const pl = { ...payload, action: action };
40
- return this.#backend.put(`/bpm/tasks/${taskId}`, pl, ApiBase.apiWeb);
41
- }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BpmService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BpmService, providedIn: 'root' }); }
44
- }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BpmService, decorators: [{
46
- type: Injectable,
47
- args: [{
48
- providedIn: 'root'
49
- }]
50
- }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvYnBtL2JwbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQTZCLGFBQWEsRUFBNEMsTUFBTSxpQkFBaUIsQ0FBQztBQUNySCxPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUt6QyxNQUFNLE9BQU8sVUFBVTtJQUNyQixRQUFRLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRWxDLFlBQVksQ0FBQyxPQUE2QjtRQUN4QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsTUFBYyxFQUFFLE9BQTRCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFjLEVBQUUsT0FBNEI7UUFDckQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLGNBQWM7UUFDWixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFNUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxjQUFjLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxvQkFBNEIsRUFBRSxPQUEwQjtRQUN6RSxPQUFPLElBQUksQ0FBQyxRQUFRO2FBQ2pCLEdBQUcsQ0FBQyxpQkFBaUIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQzthQUN0RyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsYUFBYSxDQUFDLGlCQUF5QjtRQUNyQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGtCQUFrQixpQkFBaUIsRUFBRSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWMsRUFBRSxNQUFjLEVBQUUsT0FBMkI7UUFDbEUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkUsQ0FBQzsrR0F6Q1UsVUFBVTttSEFBVixVQUFVLGNBRlQsTUFBTTs7NEZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhY2tlbmRTZXJ2aWNlIH0gZnJvbSAnLi4vYmFja2VuZC9iYWNrZW5kLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmV0Y2hUYXNrT3B0aW9ucywgUHJvY2VzcywgUHJvY2Vzc0FjdGlvbiwgUHJvY2Vzc0NyZWF0ZVBheWxvYWQsIFByb2Nlc3NQb3N0UGF5bG9hZCB9IGZyb20gJy4vYnBtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcGlCYXNlIH0gZnJvbSAnLi4vYmFja2VuZC9hcGkuZW51bSc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCcG1TZXJ2aWNlIHtcbiAgI2JhY2tlbmQgPSBpbmplY3QoQmFja2VuZFNlcnZpY2UpO1xuXG4gIHN0YXJ0UHJvY2VzcyhwYXlsb2FkOiBQcm9jZXNzQ3JlYXRlUGF5bG9hZCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuI2JhY2tlbmQucG9zdCgnL2JwbS9wcm9jZXNzZXMnLCBwYXlsb2FkLCBBcGlCYXNlLmFwaVdlYik7XG4gIH1cblxuICAvKipcbiAgICogRmluc2loZXMgYSB0YXNrLlxuICAgKiBAcGFyYW0gdGFza0lkIElEIG9mIHRoZSB0YWtzIHRvIGZpbmlzaFxuICAgKiBAcGFyYW0gcGF5bG9hZCBEYXRhIHRvIGJlIHNlbmQgd2l0aCB0aGUgY29tcGxldGUgcmVxdWVzdCAobWF5IGNvbnRhaW4gYXR0YWNobWVudHMsIGEgbmV3IHN1YmplY3Qgb3IgdmFyaWFibGVzKVxuICAgKi9cbiAgY29tcGxldGVUYXNrKHRhc2tJZDogc3RyaW5nLCBwYXlsb2FkPzogUHJvY2Vzc1Bvc3RQYXlsb2FkKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy4jcHV0VGFzayh0YXNrSWQsIFByb2Nlc3NBY3Rpb24uY29tcGxldGUsIHBheWxvYWQgfHwge30pO1xuICB9XG5cbiAgdXBkYXRlVGFzayh0YXNrSWQ6IHN0cmluZywgcGF5bG9hZD86IFByb2Nlc3NQb3N0UGF5bG9hZCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuI3B1dFRhc2sodGFza0lkLCBQcm9jZXNzQWN0aW9uLnNhdmUsIHBheWxvYWQgfHwge30pO1xuICB9XG5cbiAgLy9UT0RPOiByZXBsYWNlIHdpdGggcHJvcHBlciBzZXJ2aWNlIGNhbGxcbiAgZ2V0UHJvY2Vzc1BvbGwoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCByYW5kb20gPSBNYXRoLnJhbmRvbSgpO1xuICAgIGNvbnNvbGUubG9nKCdnZXRQcm9jZXNzUG9sbDogJywgeyByYW5kb20gfSk7XG5cbiAgICByZXR1cm4gb2YoW3sgdGl0bGU6IGB0YXNrIHRpdGxlICR7cmFuZG9tfWAsIGR1ZWRhdGU6IG5ldyBEYXRlKCkgfV0pO1xuICB9XG5cbiAgZ2V0UHJvY2Vzc0luc3RhbmNlKHByb2Nlc3NEZWZpbml0aW9uS2V5OiBzdHJpbmcsIG9wdGlvbnM/OiBGZXRjaFRhc2tPcHRpb25zKTogT2JzZXJ2YWJsZTxQcm9jZXNzPiB7XG4gICAgcmV0dXJuIHRoaXMuI2JhY2tlbmRcbiAgICAgIC5nZXQoYC9icG0vcHJvY2Vzc2VzJHtVdGlscy5vcHRpb25zVG9VUkxQYXJhbXMoeyAuLi5vcHRpb25zLCBwcm9jZXNzRGVmaW5pdGlvbktleSB9KX1gLCBBcGlCYXNlLmFwaVdlYilcbiAgICAgIC5waXBlKG1hcCgoeyBvYmplY3RzIH0pID0+IG9iamVjdHNbMF0pKTtcbiAgfVxuXG4gIGRlbGV0ZVByb2Nlc3MocHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuI2JhY2tlbmQuZGVsZXRlKGAvYnBtL3Byb2Nlc3Nlcy8ke3Byb2Nlc3NJbnN0YW5jZUlkfWAsIEFwaUJhc2UuYXBpV2ViKTtcbiAgfVxuXG4gICNwdXRUYXNrKHRhc2tJZDogc3RyaW5nLCBhY3Rpb246IHN0cmluZywgcGF5bG9hZDogUHJvY2Vzc1Bvc3RQYXlsb2FkKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwbCA9IHsgLi4ucGF5bG9hZCwgYWN0aW9uOiBhY3Rpb24gfTtcbiAgICByZXR1cm4gdGhpcy4jYmFja2VuZC5wdXQoYC9icG0vdGFza3MvJHt0YXNrSWR9YCwgcGwsIEFwaUJhc2UuYXBpV2ViKTtcbiAgfVxufVxuIl19
@@ -1,51 +0,0 @@
1
- import { inject, Injectable } from '@angular/core';
2
- import { StorageMap } from '@ngx-pwa/local-storage';
3
- import { forkJoin, Observable, of } from 'rxjs';
4
- import { first, map, switchMap } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * Service for saving or caching data on the users device. It uses the most efficient storage
8
- * available (IndexDB, localstorage, ...) on the device. Depending on the type of storage used,
9
- * its limitations apply.
10
- */
11
- export class AppCacheService {
12
- #storage = inject(StorageMap);
13
- setItem(key, value) {
14
- return this.#storage.set(key, value).pipe(map(() => true));
15
- }
16
- getItem(key) {
17
- return this.#storage.get(key);
18
- }
19
- removeItem(key) {
20
- return this.#storage.delete(key).pipe(map(() => true));
21
- }
22
- clear(filter) {
23
- return filter
24
- ? this.getStorageKeys().pipe(switchMap((keys) => {
25
- const list = keys.filter((k) => filter(k)).map((k) => this.removeItem(k));
26
- return list.length ? forkJoin(list).pipe(map(() => true)) : of(true);
27
- }))
28
- : this.#storage.clear().pipe(map(() => true));
29
- }
30
- getStorageKeys() {
31
- return new Observable((observer) => {
32
- const keys = [];
33
- this.#storage.keys().subscribe({
34
- next: (key) => keys.push(key),
35
- complete: () => observer.next(keys)
36
- });
37
- }).pipe(first());
38
- }
39
- setStorage(options) {
40
- return forkJoin(Object.keys(options || {}).map((k) => this.setItem(k, options[k])));
41
- }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppCacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppCacheService, providedIn: 'root' }); }
44
- }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppCacheService, decorators: [{
46
- type: Injectable,
47
- args: [{
48
- providedIn: 'root'
49
- }]
50
- }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNhY2hlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvY2FjaGUvYXBwLWNhY2hlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFdkQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxlQUFlO0lBQzFCLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFOUIsT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUE4QjtRQUNsQyxPQUFPLE1BQU07WUFDWCxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FDeEIsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2RSxDQUFDLENBQUMsQ0FDSDtZQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxVQUFVLENBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMzQyxNQUFNLElBQUksR0FBYSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0JBQzdCLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQzdCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNwQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQVk7UUFDckIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQzsrR0F0Q1UsZUFBZTttSEFBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JhZ2VNYXAgfSBmcm9tICdAbmd4LXB3YS9sb2NhbC1zdG9yYWdlJztcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIHNhdmluZyBvciBjYWNoaW5nIGRhdGEgb24gdGhlIHVzZXJzIGRldmljZS4gSXQgdXNlcyB0aGUgbW9zdCBlZmZpY2llbnQgc3RvcmFnZVxuICogYXZhaWxhYmxlICAoSW5kZXhEQiwgbG9jYWxzdG9yYWdlLCAuLi4pIG9uIHRoZSBkZXZpY2UuIERlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiBzdG9yYWdlIHVzZWQsXG4gKiBpdHMgbGltaXRhdGlvbnMgYXBwbHkuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcENhY2hlU2VydmljZSB7XG4gICNzdG9yYWdlID0gaW5qZWN0KFN0b3JhZ2VNYXApO1xuXG4gIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy4jc3RvcmFnZS5zZXQoa2V5LCB2YWx1ZSkucGlwZShtYXAoKCkgPT4gdHJ1ZSkpO1xuICB9XG5cbiAgZ2V0SXRlbShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuI3N0b3JhZ2UuZ2V0KGtleSk7XG4gIH1cblxuICByZW1vdmVJdGVtKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuI3N0b3JhZ2UuZGVsZXRlKGtleSkucGlwZShtYXAoKCkgPT4gdHJ1ZSkpO1xuICB9XG5cbiAgY2xlYXIoZmlsdGVyPzogKGtleTogYW55KSA9PiBib29sZWFuKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGZpbHRlclxuICAgICAgPyB0aGlzLmdldFN0b3JhZ2VLZXlzKCkucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKGtleXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBrZXlzLmZpbHRlcigoazogYW55KSA9PiBmaWx0ZXIoaykpLm1hcCgoazogYW55KSA9PiB0aGlzLnJlbW92ZUl0ZW0oaykpO1xuICAgICAgICAgICAgcmV0dXJuIGxpc3QubGVuZ3RoID8gZm9ya0pvaW4obGlzdCkucGlwZShtYXAoKCkgPT4gdHJ1ZSkpIDogb2YodHJ1ZSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgOiB0aGlzLiNzdG9yYWdlLmNsZWFyKCkucGlwZShtYXAoKCkgPT4gdHJ1ZSkpO1xuICB9XG5cbiAgZ2V0U3RvcmFnZUtleXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nW10+KChvYnNlcnZlcikgPT4ge1xuICAgICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBbXTtcbiAgICAgIHRoaXMuI3N0b3JhZ2Uua2V5cygpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChrZXkpID0+IGtleXMucHVzaChrZXkpLFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gb2JzZXJ2ZXIubmV4dChrZXlzKVxuICAgICAgfSk7XG4gICAgfSkucGlwZShmaXJzdCgpKTtcbiAgfVxuXG4gIHNldFN0b3JhZ2Uob3B0aW9uczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gZm9ya0pvaW4oT2JqZWN0LmtleXMob3B0aW9ucyB8fCB7fSkubWFwKChrKSA9PiB0aGlzLnNldEl0ZW0oaywgb3B0aW9uc1trXSkpKTtcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvY2F0YWxvZy9jYXRhbG9nLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBCYXNlQ2F0YWxvZyB7XG4gIGVudHJpZXM6IENhdGFsb2dFbnRyeVtdO1xuICByZWFkb25seT86IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2cgZXh0ZW5kcyBCYXNlQ2F0YWxvZyB7XG4gIHFuYW1lOiBzdHJpbmc7XG4gIC8vIElmIGEgdGVuYW50IGlzIHNldCB0aGUgY2F0YWxvZyBpcyBwcm92aWRlZCBmcm9tIHRoZSB0ZW5hbnRzIHNjb3BlLlxuICAvLyBDb3VsZCBiZSBOVUxMIGlmIG5vIHRlbmFudCBzY29wZWQgY2hhbmdlcyBoYXZlIGJlZW4gbWFkZS4gSW4gdGhpcyBjYXNlXG4gIC8vIHlvdSBuZWVkIHRvIGNhbGwgUE9TVCBpbnN0YWVkIG9mIFBBVEggd2hlbiBtYWtpbmcgY2hhbmdlcyB0byB0aGUgY2F0YWxvZ1xuICB0ZW5hbnQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0YWxvZ0VudHJ5IHtcbiAgbmFtZTogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59XG4iXX0=
@@ -1,13 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class CatalogService {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogService, providedIn: 'root' }); }
6
- }
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogService, decorators: [{
8
- type: Injectable,
9
- args: [{
10
- providedIn: 'root'
11
- }]
12
- }] });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlL2NhdGFsb2cvY2F0YWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxjQUFjOytHQUFkLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDYXRhbG9nU2VydmljZSB7XG4gIC8vIFRPRE86IEltcGxlbWVudCB3aGVuIGNsYXJpZmllZFxuICAvLyBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLCBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkge31cblxuICAvLyBwcml2YXRlIHVzZXJIYXNTY29wZVBlcm1pc3Npb25zKHNjb3BlOiAnYWRtaW4nIHwgJ3N5c3RlbScpOiBib29sZWFuIHtcbiAgLy8gICBpZiAoc2NvcGUgPT09ICdhZG1pbicpIHtcbiAgLy8gICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmhhc0FkbWluUm9sZTtcbiAgLy8gICB9IGVsc2UgaWYgKHNjb3BlID09PSAnc3lzdGVtJykge1xuICAvLyAgICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UuaGFzU3lzdGVtUm9sZTtcbiAgLy8gICB9IGVsc2Uge1xuICAvLyAgICAgcmV0dXJuIGZhbHNlO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8vIC8qKlxuICAvLyAgKiBMb2FkcyBhIGNhdGFsb2cgZnJvbSB0aGUgYmFja2VuZC5cbiAgLy8gICogQHBhcmFtIHFuYW1lIFRoZSBjYXRhbG9ncyBxdWFsaWZpZWQgbmFtZVxuICAvLyAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIHRvIGxvYWQgdGhlIGNhdGFsb2cgZnJvbS4gVGhpcyBkZWNpZGVzIHdoaWNoIGNvbnRyb2xlclxuICAvLyAgKiB3aWxsIGJlIHVzZWQgdG8gZmV0Y2ggdGhlIGNhdGFsb2cuIFBvc3NpYmUgdmFsdWVzOiAnYWRtaW4nIG9yICdzeXN0ZW0nLlxuICAvLyAgKiBTZXR0aW5nIGEgc2NvcGUgd2lsbCBhbHNvIGNoZWNrIGZvciB0aGUgdXNlcnMgcGVybWlzc2lvbiB0byB1c2UgdGhpcyBzY29wZS5cbiAgLy8gICovXG4gIC8vIGdldENhdGFsb2cocW5hbWU6IHN0cmluZywgc2NvcGU/OiAnYWRtaW4nIHwgJ3N5c3RlbScpOiBPYnNlcnZhYmxlPENhdGFsb2c+IHtcbiAgLy8gICBjb25zdCBjdHJsID0gc2NvcGUgJiYgdGhpcy51c2VySGFzU2NvcGVQZXJtaXNzaW9ucyhzY29wZSkgPyBzY29wZSA6ICdkbXMnO1xuICAvLyAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0KGAvJHtjdHJsfS9jYXRhbG9ncy8ke3FuYW1lfWApLnBpcGUoXG4gIC8vICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gIC8vICAgICAgIGlmIChlLnN0YXR1cyA9PT0gNDA0KSB7XG4gIC8vICAgICAgICAgcmV0dXJuIG9mKHsgZW50cmllczogW10gfSk7XG4gIC8vICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgdGhyb3cgZTtcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfSksXG4gIC8vICAgICBtYXAoKHJlczogeyB0ZW5hbnQ/OiBzdHJpbmc7IGVudHJpZXM6IENhdGFsb2dFbnRyeVtdOyByZWFkb25seTogYm9vbGVhbiB9KSA9PiAoe1xuICAvLyAgICAgICBxbmFtZTogcW5hbWUsXG4gIC8vICAgICAgIGVudHJpZXM6IHJlcy5lbnRyaWVzLFxuICAvLyAgICAgICB0ZW5hbnQ6IHJlcy50ZW5hbnQsXG4gIC8vICAgICAgIHJlYWRvbmx5OiByZXMucmVhZG9ubHlcbiAgLy8gICAgIH0pKVxuICAvLyAgICk7XG4gIC8vIH1cblxuICAvLyBnZXRDdXN0b21DYXRhbG9nKHVyaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxCYXNlQ2F0YWxvZz4ge1xuICAvLyAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0KHVyaSwgQXBpQmFzZS5ub25lKS5waXBlKFxuICAvLyAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAvLyAgICAgICBpZiAoZS5zdGF0dXMgPT09IDQwNCkge1xuICAvLyAgICAgICAgIHJldHVybiBvZih7IGVudHJpZXM6IFtdIH0pO1xuICAvLyAgICAgICB9IGVsc2Uge1xuICAvLyAgICAgICAgIHRocm93IGU7XG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH0pLFxuICAvLyAgICAgbWFwKChyZXM6IHsgZW50cmllczogQ2F0YWxvZ0VudHJ5W107IHJlYWRvbmx5OiBib29sZWFuIH0pID0+ICh7XG4gIC8vICAgICAgIGVudHJpZXM6IHJlcy5lbnRyaWVzLFxuICAvLyAgICAgICByZWFkb25seTogcmVzLnJlYWRvbmx5XG4gIC8vICAgICB9KSlcbiAgLy8gICApO1xuICAvLyB9XG5cbiAgLy8gLyoqXG4gIC8vICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgY2F0YWxvZy5cbiAgLy8gICogQHBhcmFtIG5hbWUgVGhlIGNhdGFsb2dzIG5hbWVcbiAgLy8gICogQHBhcmFtIHBhdGNoZXMgQSBjb2xsZWN0aW9uIG9mIEpTT04tUGF0aGVzLiBTZWUgaHR0cDovL2pzb25wYXRjaC5jb20vIGZvciBkZXRhaWxzXG4gIC8vICAqIEBwYXJhbSBuYW1lc3BhY2UgT3B0aW9uYWwgbmFtZXNwYWNlXG4gIC8vICAqL1xuICAvLyBwYXRjaChxbmFtZTogc3RyaW5nLCBwYXRjaGVzOiBhbnlbXSk6IE9ic2VydmFibGU8Q2F0YWxvZz4ge1xuICAvLyAgIHRoaXMuYmFja2VuZC5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uLXBhdGNoK2pzb24nKTtcbiAgLy8gICByZXR1cm4gdGhpcy5iYWNrZW5kLnBhdGNoKGAvZG1zL2NhdGFsb2dzLyR7cW5hbWV9YCwgcGF0Y2hlcykucGlwZShcbiAgLy8gICAgIG1hcCgocmVzOiBDYXRhbG9nKSA9PiAoe1xuICAvLyAgICAgICBxbmFtZTogcW5hbWUsXG4gIC8vICAgICAgIGVudHJpZXM6IHJlcy5lbnRyaWVzLFxuICAvLyAgICAgICB0ZW5hbnQ6IHJlcy50ZW5hbnRcbiAgLy8gICAgIH0pKSxcbiAgLy8gICAgIHRhcCgoY2F0YWxvZzogQ2F0YWxvZykgPT4ge1xuICAvLyAgICAgICB0aGlzLmJhY2tlbmQuc2V0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAvLyAgICAgfSlcbiAgLy8gICApO1xuICAvLyB9XG5cbiAgLy8gLyoqXG4gIC8vICAqIFNhdmVzIGEgd2hvbGUgY2F0YWxvZy4gVGhpcyB3aWxsIG92ZXJ3cml0ZSB0aGUgZXhpc3RpbmcgY2F0YWxvZyB3aXRoIHRoZSBlbnRyaWVzXG4gIC8vICAqIHByb3ZpZGVkIG9yIGNyZWF0ZSBhIG5ldyBjYXRhbG9nLlxuICAvLyAgKiBAcGFyYW0gY2F0YWxvZyBUaGUgY2F0YWxvZyB0byBiZSBzYXZlZFxuICAvLyAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIHRvIGJlIHVzZWQuIFRoaXMgZGVjaWRlcyB3aGljaCBjb250cm9sbGVyXG4gIC8vICAqIHdpbGwgYmUgdXNlZCB0byBwb3N0IGRhdGEgdG8uIFBvc3NpYmUgdmFsdWVzOiAnYWRtaW4nIG9yICdzeXN0ZW0nLlxuICAvLyAgKiBTZXR0aW5nIGEgc2NvcGUgd2lsbCBhbHNvIGNoZWNrIGZvciB0aGUgdXNlcnMgcGVybWlzc2lvbiB0byB1c2UgdGhpcyBzY29wZS5cbiAgLy8gICovXG4gIC8vIHBvc3QoY2F0YWxvZzogQ2F0YWxvZywgc2NvcGU/OiAnYWRtaW4nIHwgJ3N5c3RlbScpOiBPYnNlcnZhYmxlPENhdGFsb2c+IHtcbiAgLy8gICBjb25zdCBjdHJsID0gc2NvcGUgJiYgdGhpcy51c2VySGFzU2NvcGVQZXJtaXNzaW9ucyhzY29wZSkgPyBzY29wZSA6ICdkbXMnO1xuICAvLyAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgLy8gICAgIC5wb3N0KGAvJHtjdHJsfS9jYXRhbG9ncy8ke2NhdGFsb2cucW5hbWV9YCwge1xuICAvLyAgICAgICBlbnRyaWVzOiBjYXRhbG9nLmVudHJpZXNcbiAgLy8gICAgIH0pXG4gIC8vICAgICAucGlwZShcbiAgLy8gICAgICAgbWFwKCgpID0+IHtcbiAgLy8gICAgICAgICBjYXRhbG9nLnRlbmFudCA9IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS50ZW5hbnQ7XG4gIC8vICAgICAgICAgcmV0dXJuIGNhdGFsb2c7XG4gIC8vICAgICAgIH0pXG4gIC8vICAgICApO1xuICAvLyB9XG5cbiAgLy8gLyoqXG4gIC8vICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCBwYXJ0aWN1bGFyIGVudHJpZXMgb2YgYSBjYXRhbG9nIGFyZSBpbiB1c2UuXG4gIC8vICAqIEBwYXJhbSBxbmFtZSBUaGUgY2F0YWxvZ3MgcXVhbGlmaWVkIG5hbWVcbiAgLy8gICogQHBhcmFtIHZhbHVlcyBUaGUgZW50cmllcyB0byBiZSBjaGVja2VkXG4gIC8vICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGVudHJpZXMgdGhhdCBhcmUgaW4gdXNlXG4gIC8vICAqL1xuICAvLyBpblVzZShxbmFtZTogc3RyaW5nLCB2YWx1ZXM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xuICAvLyAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gdmFsdWVzLm1hcCgodikgPT4gYGVudHJpZXM9JHtlbmNvZGVVUklDb21wb25lbnQodil9YCk7XG4gIC8vICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXQoYC9kbXMvY2F0YWxvZ3MvJHtxbmFtZX0vdmFsaWRhdGU/JHtxdWVyeVBhcmFtcy5qb2luKCcmJyl9YCk7XG4gIC8vIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1jb3JlL3NyYy9saWIvc2VydmljZS9jbGlwYm9hcmQvY2xpcGJvYXJkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG1zT2JqZWN0IH0gZnJvbSBcIi4uLy4uL21vZGVsL2Rtcy1vYmplY3QubW9kZWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDbGlwYm9hcmRTdG9yZSB7XG4gICAgYnVja2V0cz86IFJlY29yZDxzdHJpbmcsIENsaXBib2FyZERhdGE+LFxuICAgIG1haW4/OiBDbGlwYm9hcmREYXRhXG59XG5leHBvcnQgaW50ZXJmYWNlIENsaXBib2FyZERhdGEge1xuICAgIG1vZGU/OiBDbGlwYm9hcmREYXRhTW9kZTtcbiAgICBmaWxlcz86IEZpbGVbXTtcbiAgICBvYmplY3RzPzogRG1zT2JqZWN0W11cbn1cblxuZXhwb3J0IHR5cGUgQ2xpcGJvYXJkRGF0YU1vZGUgPSAnY29weScgfCAnY3V0JzsiXX0=
@@ -1,99 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { toSignal } from '@angular/core/rxjs-interop';
3
- import { filter, fromEvent, map, merge, ReplaySubject } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- export class ClipboardService {
6
- #emptyClipboard = {
7
- buckets: undefined,
8
- main: undefined
9
- };
10
- #clipboard = structuredClone(this.#emptyClipboard);
11
- #clipboardSource = new ReplaySubject();
12
- #clipboard$ = this.#clipboardSource.asObservable();
13
- #pasteEvents = merge(fromEvent(window, 'keydown').pipe(filter((event) => event.ctrlKey && event.code === 'KeyV')), fromEvent(window, 'paste').pipe(filter((event) => !!event.clipboardData && event.clipboardData.files.length > 0)));
14
- clipboard(bucket) {
15
- return toSignal(this.clipboard$(bucket));
16
- }
17
- clipboard$(bucket) {
18
- return this.#clipboard$.pipe(map((cs) => {
19
- if (bucket) {
20
- return cs.buckets ? cs.buckets[bucket] : undefined;
21
- }
22
- else
23
- return cs.main;
24
- }));
25
- }
26
- paste$(bucket) {
27
- return this.#pasteEvents.pipe(map((e) => {
28
- let cd;
29
- if (e instanceof ClipboardEvent) {
30
- const fileList = e.clipboardData.files;
31
- const files = [];
32
- for (let i = 0; i < fileList.length; i++) {
33
- files.push(fileList.item(i));
34
- }
35
- cd = files.length
36
- ? {
37
- files
38
- }
39
- : undefined;
40
- }
41
- else {
42
- cd = bucket ? (this.#clipboard.buckets ? this.#clipboard.buckets[bucket] : undefined) : this.#clipboard.main;
43
- }
44
- return cd;
45
- }), filter((cd) => cd !== undefined && (cd.files || cd.objects)), map((cd) => cd));
46
- }
47
- getClipboardData(bucket) {
48
- if (bucket) {
49
- return this.#clipboard.buckets ? this.#clipboard.buckets[bucket] : undefined;
50
- }
51
- else
52
- return this.#clipboard.main;
53
- }
54
- /**
55
- * Add objects to the clipboard
56
- * @param bucket Buckets are ways to separate data from the global scope.
57
- * If you have an app that would like to have a separate section in the clipboard
58
- * you'll use a unique bucket to store your stuff. When observing chages to the
59
- * clipboard you couls as well provide the bucket and you will only get
60
- */
61
- addObjects(objects, mode, bucket) {
62
- const cd = { mode, objects };
63
- if (bucket) {
64
- if (!this.#clipboard.buckets)
65
- this.#clipboard.buckets = {};
66
- this.#clipboard.buckets[bucket] = cd;
67
- }
68
- else
69
- this.#clipboard.main = cd;
70
- this.#clipboardSource.next(this.#clipboard);
71
- }
72
- clear(bucket) {
73
- if (bucket && this.#clipboard.buckets) {
74
- delete this.#clipboard.buckets[bucket];
75
- }
76
- else {
77
- this.#clipboard = structuredClone(this.#emptyClipboard);
78
- }
79
- this.#clipboardSource.next(this.#clipboard);
80
- }
81
- async addToNavigatorClipBoard(data) {
82
- try {
83
- await navigator.clipboard.writeText(data);
84
- console.log('Text copied to clipboard');
85
- }
86
- catch (error) {
87
- console.error('Failed to copy text: ', error);
88
- }
89
- }
90
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
91
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardService, providedIn: 'root' }); }
92
- }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardService, decorators: [{
94
- type: Injectable,
95
- args: [{
96
- providedIn: 'root'
97
- }]
98
- }] });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvY2xpcGJvYXJkL2NsaXBib2FyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU9oRixNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLGVBQWUsR0FBbUI7UUFDaEMsT0FBTyxFQUFFLFNBQVM7UUFDbEIsSUFBSSxFQUFFLFNBQVM7S0FDaEIsQ0FBQztJQUVGLFVBQVUsR0FBbUIsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuRSxnQkFBZ0IsR0FBRyxJQUFJLGFBQWEsRUFBa0IsQ0FBQztJQUN2RCxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRW5ELFlBQVksR0FBRyxLQUFLLENBQ2xCLFNBQVMsQ0FBZ0IsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsRUFDMUgsU0FBUyxDQUFpQixNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxD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b20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZyb21FdmVudCwgbWFwLCBtZXJnZSwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRG1zT2JqZWN0IH0gZnJvbSAnLi4vLi4vbW9kZWwvZG1zLW9iamVjdC5tb2RlbCc7XG5pbXBvcnQgeyBDbGlwYm9hcmREYXRhLCBDbGlwYm9hcmREYXRhTW9kZSwgQ2xpcGJvYXJkU3RvcmUgfSBmcm9tICcuL2NsaXBib2FyZC5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDbGlwYm9hcmRTZXJ2aWNlIHtcbiAgI2VtcHR5Q2xpcGJvYXJkOiBDbGlwYm9hcmRTdG9yZSA9IHtcbiAgICBidWNrZXRzOiB1bmRlZmluZWQsXG4gICAgbWFpbjogdW5kZWZpbmVkXG4gIH07XG5cbiAgI2NsaXBib2FyZDogQ2xpcGJvYXJkU3RvcmUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy4jZW1wdHlDbGlwYm9hcmQpO1xuICAjY2xpcGJvYXJkU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8Q2xpcGJvYXJkU3RvcmU+KCk7XG4gICNjbGlwYm9hcmQkID0gdGhpcy4jY2xpcGJvYXJkU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICNwYXN0ZUV2ZW50cyA9IG1lcmdlKFxuICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih3aW5kb3csICdrZXlkb3duJykucGlwZShmaWx0ZXIoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiBldmVudC5jdHJsS2V5ICYmIGV2ZW50LmNvZGUgPT09ICdLZXlWJykpLFxuICAgIGZyb21FdmVudDxDbGlwYm9hcmRFdmVudD4od2luZG93LCAncGFzdGUnKS5waXBlKGZpbHRlcigoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiAhIWV2ZW50LmNsaXBib2FyZERhdGEgJiYgZXZlbnQuY2xpcGJvYXJkRGF0YS5maWxlcy5sZW5ndGggPiAwKSlcbiAgKTtcblxuICBjbGlwYm9hcmQoYnVja2V0Pzogc3RyaW5nKTogU2lnbmFsPENsaXBib2FyZERhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdG9TaWduYWwodGhpcy5jbGlwYm9hcmQkKGJ1Y2tldCkpO1xuICB9XG5cbiAgY2xpcGJvYXJkJChidWNrZXQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPENsaXBib2FyZERhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy4jY2xpcGJvYXJkJC5waXBlKFxuICAgICAgbWFwKChjczogQ2xpcGJvYXJkU3RvcmUpID0+IHtcbiAgICAgICAgaWYgKGJ1Y2tldCkge1xuICAgICAgICAgIHJldHVybiBjcy5idWNrZXRzID8gY3MuYnVja2V0c1tidWNrZXRdIDogdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2UgcmV0dXJuIGNzLm1haW47XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwYXN0ZSQoYnVja2V0Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxDbGlwYm9hcmREYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuI3Bhc3RlRXZlbnRzLnBpcGUoXG4gICAgICBtYXAoKGU6IEtleWJvYXJkRXZlbnQgfCBDbGlwYm9hcmRFdmVudCkgPT4ge1xuICAgICAgICBsZXQgY2Q6IENsaXBib2FyZERhdGEgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChlIGluc3RhbmNlb2YgQ2xpcGJvYXJkRXZlbnQpIHtcbiAgICAgICAgICBjb25zdCBmaWxlTGlzdDogRmlsZUxpc3QgPSBlLmNsaXBib2FyZERhdGEhLmZpbGVzO1xuICAgICAgICAgIGNvbnN0IGZpbGVzOiBGaWxlW10gPSBbXTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmaWxlcy5wdXNoKGZpbGVMaXN0Lml0ZW0oaSkgYXMgRmlsZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2QgPSBmaWxlcy5sZW5ndGhcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGZpbGVzXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNkID0gYnVja2V0ID8gKHRoaXMuI2NsaXBib2FyZC5idWNrZXRzID8gdGhpcy4jY2xpcGJvYXJkLmJ1Y2tldHNbYnVja2V0XSA6IHVuZGVmaW5lZCkgOiB0aGlzLiNjbGlwYm9hcmQubWFpbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2Q7XG4gICAgICB9KSxcbiAgICAgIGZpbHRlcigoY2Q6IGFueSkgPT4gY2QgIT09IHVuZGVmaW5lZCAmJiAoY2QuZmlsZXMgfHwgY2Qub2JqZWN0cykpLFxuICAgICAgbWFwKChjZDogQ2xpcGJvYXJkRGF0YSkgPT4gY2QpXG4gICAgKTtcbiAgfVxuXG4gIGdldENsaXBib2FyZERhdGEoYnVja2V0Pzogc3RyaW5nKTogQ2xpcGJvYXJkRGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgcmV0dXJuIHRoaXMuI2NsaXBib2FyZC5idWNrZXRzID8gdGhpcy4jY2xpcGJvYXJkLmJ1Y2tldHNbYnVja2V0XSA6IHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgcmV0dXJuIHRoaXMuI2NsaXBib2FyZC5tYWluO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBvYmplY3RzIHRvIHRoZSBjbGlwYm9hcmRcbiAgICogQHBhcmFtIGJ1Y2tldCBCdWNrZXRzIGFyZSB3YXlzIHRvIHNlcGFyYXRlIGRhdGEgZnJvbSB0aGUgZ2xvYmFsIHNjb3BlLlxuICAgKiBJZiB5b3UgaGF2ZSBhbiBhcHAgdGhhdCB3b3VsZCBsaWtlIHRvIGhhdmUgYSBzZXBhcmF0ZSBzZWN0aW9uIGluIHRoZSBjbGlwYm9hcmRcbiAgICogeW91J2xsIHVzZSBhIHVuaXF1ZSBidWNrZXQgdG8gc3RvcmUgeW91ciBzdHVmZi4gV2hlbiBvYnNlcnZpbmcgY2hhZ2VzIHRvIHRoZVxuICAgKiBjbGlwYm9hcmQgeW91IGNvdWxzIGFzIHdlbGwgcHJvdmlkZSB0aGUgYnVja2V0IGFuZCB5b3Ugd2lsbCBvbmx5IGdldFxuICAgKi9cbiAgYWRkT2JqZWN0cyhvYmplY3RzOiBEbXNPYmplY3RbXSwgbW9kZTogQ2xpcGJvYXJkRGF0YU1vZGUsIGJ1Y2tldD86IHN0cmluZykge1xuICAgIGNvbnN0IGNkOiBDbGlwYm9hcmREYXRhID0geyBtb2RlLCBvYmplY3RzIH07XG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgaWYgKCF0aGlzLiNjbGlwYm9hcmQuYnVja2V0cykgdGhpcy4jY2xpcGJvYXJkLmJ1Y2tldHMgPSB7fTtcbiAgICAgIHRoaXMuI2NsaXBib2FyZC5idWNrZXRzW2J1Y2tldF0gPSBjZDtcbiAgICB9IGVsc2UgdGhpcy4jY2xpcGJvYXJkLm1haW4gPSBjZDtcbiAgICB0aGlzLiNjbGlwYm9hcmRTb3VyY2UubmV4dCh0aGlzLiNjbGlwYm9hcmQpO1xuICB9XG5cbiAgY2xlYXIoYnVja2V0Pzogc3RyaW5nKSB7XG4gICAgaWYgKGJ1Y2tldCAmJiB0aGlzLiNjbGlwYm9hcmQuYnVja2V0cykge1xuICAgICAgZGVsZXRlIHRoaXMuI2NsaXBib2FyZC5idWNrZXRzW2J1Y2tldF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2NsaXBib2FyZCA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLiNlbXB0eUNsaXBib2FyZCk7XG4gICAgfVxuICAgIHRoaXMuI2NsaXBib2FyZFNvdXJjZS5uZXh0KHRoaXMuI2NsaXBib2FyZCk7XG4gIH1cblxuICBhc3luYyBhZGRUb05hdmlnYXRvckNsaXBCb2FyZChkYXRhOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZGF0YSk7XG4gICAgICBjb25zb2xlLmxvZygnVGV4dCBjb3BpZWQgdG8gY2xpcGJvYXJkJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBjb3B5IHRleHQ6ICcsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- export var Direction;
2
- (function (Direction) {
3
- Direction["LTR"] = "ltr";
4
- Direction["RTL"] = "rtl";
5
- })(Direction || (Direction = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1jb3JlL3NyYy9saWIvc2VydmljZS9jb25maWcvY29uZmlnLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQ0EsTUFBTSxDQUFOLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQix3QkFBVyxDQUFBO0lBQ1gsd0JBQVcsQ0FBQTtBQUNiLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJmYWNlIGZvciB0aGUgYXBwbGljYXRpb25zIG1haW4gY29uZmlnIGZpbGVcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBZdXZDb25maWcge1xuICBjb3JlOiB7XG4gICAgLy8gYXBpQmFzZToge1xuICAgIC8vICAgY29yZTogc3RyaW5nO1xuICAgIC8vICAgJ2FwaS13ZWInOiBzdHJpbmc7XG4gICAgLy8gfTtcbiAgICBsYW5ndWFnZXM6IFl1dkNvbmZpZ0xhbmd1YWdlc1tdO1xuICAgIGxvZ2dpbmc/OiB7XG4gICAgICBsZXZlbDogJ2RlYnVnJyB8ICdlcnJvcicgfCAnd2FybicgfCAnaW5mbyc7XG4gICAgfTtcbiAgICBwZXJtaXNzaW9ucz86IHtcbiAgICAgIHJldGVudGlvbk1hbmFnZXJSb2xlPzogc3RyaW5nO1xuICAgICAgYWR2YW5jZWRVc2VyUm9sZT86IHN0cmluZztcbiAgICAgIG1hbmFnZVNldHRpbmdzUm9sZT86IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBsb2NhdGlvbj86IHtcbiAgICBob3N0bmFtZT86IHN0cmluZztcbiAgICBwb3J0PzogbnVtYmVyO1xuICB9O1xufVxuLyoqXG4gKiBpbnRlcmZhY2UgcHJvdmlkaW5nIGxvY2FsaXphdGlvbiBvZiBhcHBsaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFl1dkNvbmZpZ0xhbmd1YWdlcyB7XG4gIGlzbzogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBkaXI/OiBEaXJlY3Rpb247XG4gIGZhbGxiYWNrPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gRGlyZWN0aW9uIHtcbiAgTFRSID0gJ2x0cicsXG4gIFJUTCA9ICdydGwnXG59XG4iXX0=