@eo-sdk/client 8.13.0-rc.1 → 8.14.0-rc.2
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.
- package/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.d.ts +1 -1
- package/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.d.ts +0 -1
- package/assets/_default/i18n/de.json +1 -0
- package/assets/_default/i18n/en.json +1 -0
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +42 -8
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
- package/bundles/eo-sdk-client.umd.js +45 -60
- package/bundles/eo-sdk-client.umd.js.map +1 -1
- package/bundles/eo-sdk-client.umd.min.js +1 -1
- package/bundles/eo-sdk-client.umd.min.js.map +1 -1
- package/eo-sdk-client.metadata.json +1 -1
- package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
- package/esm2015/app/eo-client/settings/settings.component.js +7 -2
- package/esm2015/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.js +8 -5
- package/esm2015/app/eo-framework/app-shell/app-bar/app-process/app-process.component.js +17 -14
- package/esm2015/app/eo-framework/app-shell/app-bar/app-search/app-search.component.js +2 -2
- package/esm2015/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.js +1 -1
- package/esm2015/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.js +4 -23
- package/esm2015/app/eo-framework/form-elements/id-reference/id-reference.component.js +3 -3
- package/esm2015/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.js +2 -5
- package/esm2015/app/eo-framework/form-elements/id-reference/service/reference-finder.service.js +2 -2
- package/esm2015/app/eo-framework/form-elements/organization/organization.component.js +1 -1
- package/esm2015/app/eo-framework/grid/filters/organization-filter.component.js +1 -1
- package/esm2015/projects/eo-sdk/core/lib/service/bpm/bpm.service.js +34 -8
- package/esm2015/projects/eo-sdk/core/lib/service/config/config.service.js +9 -1
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +41 -7
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
- package/fesm2015/eo-sdk-client.js +42 -53
- package/fesm2015/eo-sdk-client.js.map +1 -1
- package/package.json +2 -2
- package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
- package/projects/eo-sdk/core/lib/service/bpm/bpm.service.d.ts +6 -1
- package/projects/eo-sdk/core/lib/service/config/config.service.d.ts +5 -0
- package/projects/eo-sdk/core/package.json +1 -1
- package/scss/_form.scss +1 -0
- package/styles.css +6 -0
|
@@ -49,11 +49,14 @@ export class BpmService {
|
|
|
49
49
|
* Getter for the executable Processes. If types are provided, you'll get
|
|
50
50
|
* only the processes that are executable for all of them
|
|
51
51
|
* @param types List of dms object types to fetch executable processes for
|
|
52
|
+
* @param useCached If the cached data should be returned rather than requesting again
|
|
53
|
+
* @param additionalData If the additional form data should be also included
|
|
54
|
+
* @param modelid The process model ID to only return the data for one process
|
|
52
55
|
* @returns List of executable processes
|
|
53
56
|
*/
|
|
54
|
-
getExecutableProcesses(types, useCached) {
|
|
57
|
+
getExecutableProcesses(types, useCached, additionalData, modelid) {
|
|
55
58
|
if (this.capabilities.hasCapability('bpm')) {
|
|
56
|
-
return (!!this.executableProcesses && useCached) ? observableOf(this.executableProcesses) : this.fetchExecutableProcesses(types);
|
|
59
|
+
return (!!this.executableProcesses && useCached) ? observableOf(this.executableProcesses) : this.fetchExecutableProcesses(types, additionalData, modelid);
|
|
57
60
|
}
|
|
58
61
|
else {
|
|
59
62
|
return observableOf([]);
|
|
@@ -70,19 +73,42 @@ export class BpmService {
|
|
|
70
73
|
* @returns List of executable processes
|
|
71
74
|
*/
|
|
72
75
|
getExecutableProcessesForDmsObjects(dmsObjects) {
|
|
73
|
-
return this.getExecutableProcesses(dmsObjects.map(o => o.typeName));
|
|
76
|
+
return this.getExecutableProcesses(dmsObjects.map(o => o.typeName), false, true);
|
|
74
77
|
}
|
|
75
78
|
/**
|
|
76
79
|
* Fetches executable Processes from the backend.
|
|
77
80
|
* @param types List of dms object types to fetch executable processes for
|
|
81
|
+
* @param additionalData If the additional form data should be also included
|
|
82
|
+
* @param modelid The process model ID to only return the data for one process
|
|
78
83
|
* @returns List of executable processes
|
|
79
84
|
*/
|
|
80
|
-
fetchExecutableProcesses(types) {
|
|
81
|
-
let uri = '/bpm/process/executable
|
|
85
|
+
fetchExecutableProcesses(types, additionalData, modelid) {
|
|
86
|
+
let uri = '/bpm/process/executable';
|
|
87
|
+
if (additionalData) {
|
|
88
|
+
uri += '?form=true&fields=true';
|
|
89
|
+
}
|
|
82
90
|
if (types) {
|
|
83
|
-
uri +=
|
|
91
|
+
uri += (additionalData ? '&' : '?') + `type=${types.join(',')}`;
|
|
92
|
+
}
|
|
93
|
+
if (modelid) {
|
|
94
|
+
uri += (additionalData || types ? '&' : '?') + `modelid=${modelid}`;
|
|
84
95
|
}
|
|
85
|
-
return this.backend.get(uri).pipe(map(res => res), tap(res =>
|
|
96
|
+
return this.backend.get(uri).pipe(map(res => res), tap(res => {
|
|
97
|
+
// Extend existing processes with additional data, instead of overwriting all processes
|
|
98
|
+
if (additionalData) {
|
|
99
|
+
if (!this.executableProcesses)
|
|
100
|
+
this.executableProcesses = [];
|
|
101
|
+
res.forEach(proc => {
|
|
102
|
+
var existingProcIndex = this.executableProcesses.findIndex(item => item.id == proc.id);
|
|
103
|
+
if (existingProcIndex == -1)
|
|
104
|
+
this.executableProcesses.push(proc);
|
|
105
|
+
else
|
|
106
|
+
this.executableProcesses[existingProcIndex] = proc;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
else
|
|
110
|
+
this.executableProcesses = res;
|
|
111
|
+
}));
|
|
86
112
|
}
|
|
87
113
|
/**
|
|
88
114
|
* Getter for a processes file. The file of a process contains
|
|
@@ -251,4 +277,4 @@ BpmService.ctorParameters = () => [
|
|
|
251
277
|
{ type: EventService },
|
|
252
278
|
{ type: InboxService }
|
|
253
279
|
];
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2UvYnBtL2JwbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxJQUFJLFlBQVksRUFBYyxhQUFhLEVBQUUsVUFBVSxJQUFJLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZJLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBK0IsT0FBTyxFQUFFLFFBQVEsRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFbkU7Ozs7Ozs7OztHQVNHO0FBRUgsTUFBTSxPQUFPLFVBQVU7SUFVckIsWUFBb0IsWUFBaUMsRUFDM0MsT0FBdUIsRUFDdkIsWUFBMEIsRUFDMUIsWUFBMEI7UUFIaEIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQzNDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGlC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VUFBVSxDQUFDLENBQUMsQ0FDeEQsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDRCQUE0QixDQUFDLFFBQWtCLEVBQUUsU0FBb0I7UUFDbkUsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssZUFBZSxDQUFDLElBQUksRUFBRTtZQUMxSSxJQUFJLFFBQXFCLENBQUM7WUFDMUIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDeEIsOERBQThEO2dCQUM5RCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDbkQsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvRTtpQkFBTTtnQkFDTCxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQzthQUMvQjtZQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDeEU7YUFBTTtZQUNMLE9BQU8sb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs7WUFwUUYsVUFBVTs7O1lBZkgsbUJBQW1CO1lBTG5CLGNBQWM7WUFJZCxZQUFZO1lBRFosWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Zm9ya0pvaW4gYXMgb2JzZXJ2YWJsZUZvcmtKb2luLCBvZiBhcyBvYnNlcnZhYmxlT2YsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIHRocm93RXJyb3IgYXMgb2JzZXJ2YWJsZVRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge21lcmdlTWFwLCB0YXAsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1V0aWxzfSBmcm9tICcuLi8uLi91dGlsL3V0aWxzJztcclxuaW1wb3J0IHtCYWNrZW5kU2VydmljZX0gZnJvbSAnLi4vYmFja2VuZC9iYWNrZW5kLnNlcnZpY2UnO1xyXG5pbXBvcnQge1dvcmtJdGVtSGlzdG9yeUVudHJ5fSBmcm9tICcuLi8uLi9tb2RlbC93b3JrLWl0ZW0taGlzdG9yeS5tb2RlbCc7XHJcbmltcG9ydCB7RG1zT2JqZWN0fSBmcm9tICcuLi8uLi9tb2RlbC9kbXMtb2JqZWN0Lm1vZGVsJztcclxuaW1wb3J0IHtJbmJveFNlcnZpY2V9IGZyb20gJy4uL2luYm94L2luYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQge0V2ZW50U2VydmljZX0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0NhcGFiaWxpdGllc1NlcnZpY2V9IGZyb20gJy4uL2NhcGFiaWxpdGllcy9jYXBhYmlsaXRpZXMuc2VydmljZSc7XHJcbmltcG9ydCB7RXhlY3V0YWJsZVByb2Nlc3MsIEZpbGVFbnRyeSwgUHJvY2VzcywgV29ya0l0ZW0sIFdvcmtJdGVtQWN0aW9ufSBmcm9tICcuLi8uLi9tb2RlbC9icG0ubW9kZWwnO1xyXG5pbXBvcnQge0NsaXBib2FyZH0gZnJvbSAnLi4vY2xpcGJvYXJkL2NsaXBib2FyZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0NsaXBib2FyZEFjdGlvbn0gZnJvbSAnLi4vY2xpcGJvYXJkL2NsaXBib2FyZC1hY3Rpb24uZW51bSc7XHJcblxyXG4vKipcclxuICogYEJwbVNlcnZpY2VgIGhhbmRsZXMgaW50ZXJhY3Rpb24gcmVsYXRlZCB0byBCUE0gdGFza3MuXHJcbiAqXHJcbiAqIFRoZSBtYWluIHBhcnRzIHByb3ZpZGVkIGFuZCB1c2VkIGJ5IHRoaXMgc2VydmljZSBhcmUgUHJvY2Vzc2VzIGFuZCBXb3JrSXRlbXMuXHJcbiAqIFByb2Nlc3NlcyBhcmUgZGVmaW5lZCBvbiB0aGUgYmFja2VuZCBzaWRlLiBUaGV5IGRlc2NyaWJlIGEgc2V0IG9mIHRhc2tzIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBieSB0aGUgcHJvY2Vzcy5cclxuICogVGFza3MgdGhhdCByZXF1aXJlIHVzZXIgaW50ZXJhY3Rpb24gYXJlIHJlZmVycmVkIHRvIGFzIFdvcmtJdGVtcy5cclxuICpcclxuICogUHJvY2Vzc2VzIGNhbiBiZSByZWxhdGVkIHRvIGEgc3BlY2lhbCBvYmplY3QgdHlwZSwgYnV0IHRoZXkgZG9uJ3QgaGF2ZSB0by4gSW4gYWRkaXRpb24gdG8gdGhhdCB0aGV5IGNhbiByZWZlclxyXG4gKiB0byBkbXMgb2JqZWN0cy5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEJwbVNlcnZpY2Uge1xyXG4gIGhhc01haW5FeGVjdXRhYmxlUHJvY2Vzc2VzOiBib29sZWFuO1xyXG4gIHByaXZhdGUgZXhlY3V0YWJsZVByb2Nlc3NlczogRXhlY3V0YWJsZVByb2Nlc3NbXTtcclxuICBwcml2YXRlIHByb2Nlc3NJdGVtczogUHJvY2Vzc1tdO1xyXG4gIHByaXZhdGUgcHJvY2Vzc0l0ZW1zU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8UHJvY2Vzc1tdPigxKTtcclxuICAvKipcclxuICAgKiBMb25nIHRlcm0gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3VycmVudCBwcm9jZXNzZXNcclxuICAgKi9cclxuICBwcm9jZXNzSXRlbXMkOiBPYnNlcnZhYmxlPFByb2Nlc3NbXT4gPSB0aGlzLnByb2Nlc3NJdGVtc1NvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgaW5ib3hTZXJ2aWNlOiBJbmJveFNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIGFsbCBwcm9jZXNzZXMgb2YgdGhlIGN1cnJlbnQgdXNlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBzaXplIE1heGltdW0gbnVtYmVyIG9mIHByb2Nlc3NlcyB0byBiZSBmZXRjaGVkXHJcbiAgICogQHJldHVybnMgTGlzdCBvZiBQcm9jZXNzZXNcclxuICAgKi9cclxuICBnZXRQcm9jZXNzZXMoc2l6ZTogbnVtYmVyID0gMTAwMCk6IE9ic2VydmFibGU8UHJvY2Vzc1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKGAvcHJvY2Vzcy91c2VyP3NpemU9JHtzaXplfWAsIHRoaXMuYmFja2VuZC5nZXRCcG1CYXNlKCkpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5jb250ZW50Lm1hcChpdGVtID0+IG5ldyBQcm9jZXNzKGl0ZW0pKSksXHJcbiAgICAgICAgdGFwKChwcm9jZXNzZXM6IFByb2Nlc3NbXSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wcm9jZXNzSXRlbXMgPSBwcm9jZXNzZXM7XHJcbiAgICAgICAgICB0aGlzLnByb2Nlc3NJdGVtc1NvdXJjZS5uZXh0KHRoaXMucHJvY2Vzc0l0ZW1zKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIGZvciB0aGUgZXhlY3V0YWJsZSBQcm9jZXNzZXMuIElmIHR5cGVzIGFyZSBwcm92aWRlZCwgeW91J2xsIGdldFxyXG4gICAqIG9ubHkgdGhlIHByb2Nlc3NlcyB0aGF0IGFyZSBleGVjdXRhYmxlIGZvciBhbGwgb2YgdGhlbVxyXG4gICAqIEBwYXJhbSB0eXBlcyBMaXN0IG9mIGRtcyBvYmplY3QgdHlwZXMgdG8gZmV0Y2ggZXhlY3V0YWJsZSBwcm9jZXNzZXMgZm9yXHJcbiAgICogQHJldHVybnMgTGlzdCBvZiBleGVjdXRhYmxlIHByb2Nlc3Nlc1xyXG4gICAqL1xyXG4gIGdldEV4ZWN1dGFibGVQcm9jZXNzZXModHlwZXM/OiBzdHJpbmdbXSwgdXNlQ2FjaGVkPzogYm9vbGVhbik6IE9ic2VydmFibGU8RXhlY3V0YWJsZVByb2Nlc3NbXT4ge1xyXG4gICAgaWYgKHRoaXMuY2FwYWJpbGl0aWVzLmhhc0NhcGFiaWxpdHkoJ2JwbScpKSB7XHJcbiAgICAgIHJldHVybiAoISF0aGlzLmV4ZWN1dGFibGVQcm9jZXNzZXMgJiYgdXNlQ2FjaGVkKSA/IG9ic2VydmFibGVPZih0aGlzLmV4ZWN1dGFibGVQcm9jZXNzZXMpIDogdGhpcy5mZXRjaEV4ZWN1dGFibGVQcm9jZXNzZXModHlwZXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG9ic2VydmFibGVPZihbXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0RXhlY3V0YWJsZVByb2Nlc3NlcygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHVyaSA9ICcvYnBtL3Byb2Nlc3MvZXhlY3V0YWJsZSc7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldCh1cmkpLnBpcGUodGFwKHJlcyA9PiB0aGlzLmhhc01haW5FeGVjdXRhYmxlUHJvY2Vzc2VzID0gcmVzPy5sZW5ndGgpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgZXhlY3V0YWJsZSBQcm9jZXNzZXMgZm9yIGEgZ2l2ZW4gc2V0IG9mIGRtcyBvYmplY3QuWW91J2xsIGdldFxyXG4gICAqIG9ubHkgdGhlIHByb2Nlc3NlcyB0aGF0IGFyZSBleGVjdXRhYmxlIGZvciBhbGwgb2YgdGhlbS5cclxuICAgKiBAcGFyYW0gZG1zT2JqZWN0cyBMaXN0IG9mIGRtcyBvYmplY3RzIHRvIGZldGNoIGV4ZWN1dGFibGUgcHJvY2Vzc2VzIGZvclxyXG4gICAqIEByZXR1cm5zIExpc3Qgb2YgZXhlY3V0YWJsZSBwcm9jZXNzZXNcclxuICAgKi9cclxuICBnZXRFeGVjdXRhYmxlUHJvY2Vzc2VzRm9yRG1zT2JqZWN0cyhkbXNPYmplY3RzOiBEbXNPYmplY3RbXSk6IE9ic2VydmFibGU8RXhlY3V0YWJsZVByb2Nlc3NbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RXhlY3V0YWJsZVByb2Nlc3NlcyhkbXNPYmplY3RzLm1hcChvID0+IG8udHlwZU5hbWUpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgZXhlY3V0YWJsZSBQcm9jZXNzZXMgZnJvbSB0aGUgYmFja2VuZC5cclxuICAgKiBAcGFyYW0gdHlwZXMgTGlzdCBvZiBkbXMgb2JqZWN0IHR5cGVzIHRvIGZldGNoIGV4ZWN1dGFibGUgcHJvY2Vzc2VzIGZvclxyXG4gICAqIEByZXR1cm5zIExpc3Qgb2YgZXhlY3V0YWJsZSBwcm9jZXNzZXNcclxuICAgKi9cclxuICBwcml2YXRlIGZldGNoRXhlY3V0YWJsZVByb2Nlc3Nlcyh0eXBlcz86IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxFeGVjdXRhYmxlUHJvY2Vzc1tdPiB7XHJcbiAgICBsZXQgdXJpID0gJy9icG0vcHJvY2Vzcy9leGVjdXRhYmxlP2Zvcm09dHJ1ZSZmaWVsZHM9dHJ1ZSc7XHJcbiAgICBpZiAodHlwZXMpIHtcclxuICAgICAgdXJpICs9IGAmdHlwZT0ke3R5cGVzLmpvaW4oJywnKX1gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXQodXJpKS5waXBlKFxyXG4gICAgICBtYXAocmVzID0+IHJlcyBhcyBFeGVjdXRhYmxlUHJvY2Vzc1tdKSxcclxuICAgICAgdGFwKHJlcyA9PiB0aGlzLmV4ZWN1dGFibGVQcm9jZXNzZXMgPSByZXMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIGZvciBhIHByb2Nlc3NlcyBmaWxlLiBUaGUgZmlsZSBvZiBhIHByb2Nlc3MgY29udGFpbnNcclxuICAgKiBkbXMgb2JqZWN0cyBhdHRhY2hlZCB0byB0aGUgcHJvY2Vzcy5cclxuICAgKiBAcGFyYW0gcHJvY2Vzc0lkIElEIG9mIHRoZSBwcm9jZXNzIHRvIGZldGNoIGF0dGFjaGVkIG9iamVjdHMgZm9yXHJcbiAgICovXHJcbiAgZ2V0UHJvY2Vzc0ZpbGUocHJvY2Vzc0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEZpbGVFbnRyeVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKGAvcHJvY2Vzcy8ke3Byb2Nlc3NJZH0vZmlsZWAsIHRoaXMuYmFja2VuZC5nZXRCcG1CYXNlKCkpLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlcyA9PiByZXMuY29udGVudC5tYXAoaSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZDogaS5lbGVtZW50aWQsXHJcbiAgICAgICAgICAgIHRpdGxlOiBpLnRpdGxlLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogaS5kZXNjcmlwdGlvbiA/IGkuZGVzY3JpcHRpb24gOiAnJyxcclxuICAgICAgICAgICAgaWNvbmlkOiBpLmljb25pZCxcclxuICAgICAgICAgICAgY3JlYXRvcjogaS5jcmVhdG9yLFxyXG4gICAgICAgICAgICBhZGR0aW1lOiBpLmFkZHRpbWUsXHJcbiAgICAgICAgICAgIHR5cGU6IGkudHlwZVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIHdvcmsgaXRlbS5cclxuICAgKiBAcGFyYW0gcHJvY2Vzc0lkIElEIG9mIHRoZSBwYXJlbnQgcHJvY2Vzc1xyXG4gICAqIEBwYXJhbSBpdGVtSWQgSUQgb2YgdGhlIHdvcmsgaXRlbSBpdHNlbGZcclxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIHRvIGJlIGFkZGVkIHRvIHRoZSBiYWNrZW5kIGNhbGxcclxuICAgKiBAcmV0dXJucyBhIFdvcmtJdGVtXHJcbiAgICovXHJcbiAgZ2V0V29ya0l0ZW0ocHJvY2Vzc0lkOiBzdHJpbmcsIGl0ZW1JZDogc3RyaW5nLCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxXb3JrSXRlbT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gb3B0aW9ucyA/IG9wdGlvbnMgOiB7Zm9ybTogdHJ1ZSwgZmllbGRzOiB0cnVlfTtcclxuICAgIGNvbnN0IHRhc2tzID0gW1xyXG4gICAgICB0aGlzLmJhY2tlbmQuZ2V0SnNvbihVdGlscy5idWlsZFVyaShgL2JwbS9wcm9jZXNzLyR7cHJvY2Vzc0lkfS8ke2l0ZW1JZH1gLCBwYXJhbXMpKSxcclxuICAgICAgdGhpcy5nZXRQcm9jZXNzRmlsZShwcm9jZXNzSWQpXHJcbiAgICBdO1xyXG4gICAgcmV0dXJuIG9ic2VydmFibGVGb3JrSm9pbih0YXNrcykucGlwZShcclxuICAgICAgbWFwKHJlcyA9PiB7XHJcbiAgICAgICAgY29uc3Qgd2kgPSBuZXcgV29ya0l0ZW0ocmVzWzBdKTtcclxuICAgICAgICB3aS5zZXRGaWxlKHJlc1sxXSk7XHJcbiAgICAgICAgcmV0dXJuIHdpO1xyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTYXZlcyBhIHdvcmsgaXRlbS5cclxuICAgKiBAcGFyYW0gaXRlbSBUaGUgd29yayBpdGVtIHRvIGJlIHNhdmVkXHJcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgV29ya0l0ZW1cclxuICAgKi9cclxuICBzYXZlV29ya0l0ZW0oaXRlbTogV29ya0l0ZW0pOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XHJcbiAgICBjb25zdCB7aWQsIHByb2Nlc3NJZCwgZmlsZSwgZGF0YX0gPSBpdGVtO1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtjb250ZW50czogZmlsZSwgZGF0YX07XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7a2VlcGxvY2s6IHRydWUsIGlzYXV0b2xvY2s6IGZhbHNlfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wb3N0KFV0aWxzLmJ1aWxkVXJpKGAvYnBtL3Byb2Nlc3MvJHtwcm9jZXNzSWR9LyR7aWR9L3NhdmVgLCBwYXJhbXMpLCBwYXlsb2FkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLmdldFdvcmtJdGVtKHByb2Nlc3NJZCwgaWQpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9yd2FyZHMgYSB3b3JrIGl0ZW0uIElmIGEgV29ya0l0ZW0gcHJvdmlkZXMgZGlmZmVyZW50IGFjdGlvbnMgKEBsaW5rIFdvcmtJdGVtQWN0aW9uKVxyXG4gICAqIHlvdSBjYW4gcHJvdmlkZSB0aGUgc2VsZWN0ZWQgYWN0aW9uIHRvby5cclxuICAgKiBAcGFyYW0gaXRlbSBUaGUgd29yayBpdGVtIHRvIGJlIGZvcndhcmRlZFxyXG4gICAqIEBwYXJhbSBhY3Rpb24gQWN0aW9uIHVzZWQgZm9yIGZvcndhcmRpbmdcclxuICAgKi9cclxuICBmb3J3YXJkV29ya0l0ZW0oaXRlbTogV29ya0l0ZW0sIGFjdGlvbj86IFdvcmtJdGVtQWN0aW9uKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtrZWVwbG9jazogZmFsc2UsIGlzYXV0b2xvY2s6IGZhbHNlfTtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIGFjdGlvbjogYWN0aW9uLFxyXG4gICAgICBjb250ZW50czogaXRlbS5maWxlLFxyXG4gICAgICBkYXRhOiBpdGVtLmRhdGFcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wb3N0KFV0aWxzLmJ1aWxkVXJpKGAvYnBtL3Byb2Nlc3MvJHtpdGVtLnByb2Nlc3NJZH0vJHtpdGVtLmlkfS9zYXZlYCwgcGFyYW1zKSwgcGF5bG9hZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaW5ib3hTZXJ2aWNlLnVwZGF0ZUluYm94SXRlbXMoaXRlbS5pZCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2NrcyBhIFdvcmtJdGVtIGZvciB0aGUgY3VycmVudCB1c2VyIChwZXJzb25hbGl6YXRpb24pLCBtZWFuaW5nIHRoYXQgdGhlXHJcbiAgICogY3VycmVudCB1c2VyIGlzIG5vdyBpbiBjaGFyZ2Ugb2YgZnVsZmlsbGluZyB0aGUgV29ya0l0ZW0gdGFzay5cclxuICAgKiBAcGFyYW0gaXRlbSBUaGUgV29ya0l0ZW0gdG8gYmUgbG9ja2VkXHJcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgV29ya0l0ZW1cclxuICAgKi9cclxuICBsb2NrV29ya0l0ZW0oaXRlbTogV29ya0l0ZW0pOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dChgL2JwbS9wcm9jZXNzLyR7aXRlbS5wcm9jZXNzSWR9LyR7aXRlbS5pZH0vbG9ja2ApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0V29ya0l0ZW0oaXRlbS5wcm9jZXNzSWQsIGl0ZW0uaWQpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVsZWFzZXMgdGhlIGxvY2sgZm9yIGEgV29ya0l0ZW0uXHJcbiAgICogQHBhcmFtIGl0ZW0gVGhlIHdvcmsgaXRlbSB0byBiZSB1bmxvY2tlZFxyXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIFdvcmtJdGVtXHJcbiAgICovXHJcbiAgdW5sb2NrV29ya0l0ZW0oaXRlbTogV29ya0l0ZW0pOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbChgL2JwbS9wcm9jZXNzLyR7aXRlbS5wcm9jZXNzSWR9LyR7aXRlbS5pZH0vbG9ja2ApLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0V29ya0l0ZW0oaXRlbS5wcm9jZXNzSWQsIGl0ZW0uaWQpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0cyBhbiBleGVjdXRhYmxlIHByb2Nlc3MuXHJcbiAgICogQHBhcmFtIGV4ZWN1dGFibGVQcm9jZXNzSWQgSUQgb2YgdGhlIGV4ZWN1dGFibGUgUHJvY2VzcyB0byBiZSBzdGFydGVkXHJcbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0byBiZSBwYXNzZWQgdG8gdGhlIHByb2Nlc3MgKHNpbXBsZSBvYmplY3Qgb2Yga2V5L3ZhbHVlIHBhaXJzKVxyXG4gICAqIEBwYXJhbSBjb250ZW50cyBPYmplY3RzIHRvIGJlIGF0dGFjaGVkIHRvIHRoZSBwcm9jZXNzIChwcm9jZXNzLmZpbGUpLlxyXG4gICAqL1xyXG4gIHN0YXJ0UHJvY2VzcyhleGVjdXRhYmxlUHJvY2Vzc0lkOiBzdHJpbmcsIGRhdGE6IGFueSwgY29udGVudHM6IHtpZDogc3RyaW5nLCB0eXBlOiBzdHJpbmd9W10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wb3N0KGAvYnBtL3Byb2Nlc3MvP21vZGVsaWQ9JHtleGVjdXRhYmxlUHJvY2Vzc0lkfWAsIHtcclxuICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgY29udGVudHM6IGNvbnRlbnRzXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGhpc3RvcnkgZm9yIGEgcHJvY2Vzcy4gV2hpY2ggZW50cmllcyBhcmUgcmV0dXJuZWQgZGVwZW5kcyBvbiB0aGVcclxuICAgKiBwZXJtaXNzaW9ucyBvZiB0aGUgY3VycmVudCB1c2VyLlxyXG4gICAqIEBwYXJhbSBwcm9jZXNzSWQgVGhlIElEIG9mIHRoZSBwcm9jZXNzIHRvIGZldGNoIGhpc3RvcnkgZm9yXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxXb3JrSXRlbUhpc3RvcnlFbnRyeVtdPlxyXG4gICAqL1xyXG4gIGdldFByb2Nlc3NIaXN0b3J5KHByb2Nlc3NJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxXb3JrSXRlbUhpc3RvcnlFbnRyeVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKGAvYnBtL3Byb2Nlc3MvJHtwcm9jZXNzSWR9L2hpc3RvcnlgKVxyXG4gICAgICAucGlwZShtYXAocmVzID0+IHJlcyAmJiByZXMubGVuZ3RoID8gcmVzLm1hcChpdGVtID0+IG5ldyBXb3JrSXRlbUhpc3RvcnlFbnRyeShpdGVtKSkgOiBbXSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhIGNvbnRlbnQgZnJvbSB0aGUgd29yayBpdGVtcyBmaWxlLlxyXG4gICAqIEBwYXJhbSBwcm9jZXNzSWQgVGhlIElEIG9mIHRoZSBwcm9jZXNzIHRvIHJlbW92ZSB0aGUgaXRlbSBmcm9tXHJcbiAgICogQHBhcmFtIHdvcmtJdGVtSWQgVGhlIElEIG9mIHRoZSB3b3JrIGl0ZW0gY29udGFpbmluZyB0aGUgZmlsZSBlbGVtZW50IHRvIGJlIHJlbW92ZWRcclxuICAgKiBAcGFyYW0gd29ya0l0ZW1Db250ZW50SWQgVGhlIHRoZSBJRCBvZiB0aGUgZmlsZSBlbGVtZW50IHRvIGJlIHJlbW92ZWRcclxuICAgKi9cclxuICByZW1vdmVGaWxlRWxlbWVudChwcm9jZXNzSWQ6IHN0cmluZywgd29ya0l0ZW1JZDogc3RyaW5nLCB3b3JrSXRlbUNvbnRlbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmRlbChgL3Byb2Nlc3MvJHtwcm9jZXNzSWR9L2ZpbGUvJHt3b3JrSXRlbUNvbnRlbnRJZH0/YWN0aXZpdHlpZD0ke3dvcmtJdGVtSWR9YCwgdGhpcy5iYWNrZW5kLmdldEJwbUJhc2UoKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgY29udGVudHMgdG8gYSB3b3JrIGl0ZW1zIGZpbGUuXHJcbiAgICogQHBhcmFtIHByb2Nlc3NJZCBUaGUgSUQgb2YgdGhlIHByb2Nlc3NcclxuICAgKiBAcGFyYW0gd29ya0l0ZW1JZCBUaGUgSUQgb2YgdGhlIGFjdGl2aXR5XHJcbiAgICogQHBhcmFtIGVsZW1lbnRzIFRoZSBFbGVtZW50cyB0byBiZSBhZGRlZFxyXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIFdvcmtJdGVtXHJcbiAgICovXHJcbiAgYWRkRmlsZUVsZW1lbnRzKHByb2Nlc3NJZDogc3RyaW5nLCB3b3JrSXRlbUlkOiBzdHJpbmcsIGVsZW1lbnRzOiBEbXNPYmplY3RbXSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcclxuICAgIGNvbnN0IHRhc2tzID0gW107XHJcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgIHRhc2tzLnB1c2godGhpcy5iYWNrZW5kLnBvc3QoXHJcbiAgICAgICAgYC9wcm9jZXNzLyR7cHJvY2Vzc0lkfS9maWxlLyR7ZS5pZH0/dHlwZT0ke2UudHlwZS5uYW1lfSZhY3Rpdml0eWlkPSR7d29ya0l0ZW1JZH1gLFxyXG4gICAgICAgIHt9LCB0aGlzLmJhY2tlbmQuZ2V0QnBtQmFzZSgpKSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBvYnNlcnZhYmxlRm9ya0pvaW4odGFza3MpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0V29ya0l0ZW0ocHJvY2Vzc0lkLCB3b3JrSXRlbUlkKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIG9iamVjdHMgZnJvbSB0aGUgY2xpcGJvYXJkIHRvIGEgV29ya0l0ZW0uXHJcbiAgICogQHBhcmFtIHdvcmtJdGVtIFRoZSB3b3JrSXRlbSB0byBhZGQgdGhlIG9iamVjdHMgdG9cclxuICAgKiBAcGFyYW0gY2xpcGJvYXJkIENsaXBib2FyZCBvYmplY3QgaG9sZGluZyB1c2VyIHNlbGVjdGVkIG9iamVjdHNcclxuICAgKiBAcmV0dXJucyBUaGUgdXBkYXRlZCBXb3JrSXRlbVxyXG4gICAqL1xyXG4gIGFkZEZpbGVFbGVtZW50c0Zyb21DbGlwYm9hcmQod29ya0l0ZW06IFdvcmtJdGVtLCBjbGlwYm9hcmQ6IENsaXBib2FyZCk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcclxuICAgIGlmICgod29ya0l0ZW0gJiYgd29ya0l0ZW0uZmlsZUVudHJ5UGVybWlzc2lvbnMuYWRkKSAmJiBjbGlwYm9hcmQgJiYgY2xpcGJvYXJkLmVsZW1lbnRzLmxlbmd0aCAmJiBjbGlwYm9hcmQuYWN0aW9uID09PSBDbGlwYm9hcmRBY3Rpb24uQ09QWSkge1xyXG4gICAgICBsZXQgY29udGVudHM6IERtc09iamVjdFtdO1xyXG4gICAgICBpZiAod29ya0l0ZW0uZmlsZS5sZW5ndGgpIHtcclxuICAgICAgICAvLyBvbmx5IGFkZCBpdGVtcyB0aGF0IGFyZSBub3QgYWxyZWFkeSBwYXJ0IG9mIHRoZSBhdHRhY2htZW50c1xyXG4gICAgICAgIGNvbnN0IGF0dGFjaG1lbnRJZHMgPSB3b3JrSXRlbS5maWxlLm1hcChlID0+IGUuaWQpO1xyXG4gICAgICAgIGNvbnRlbnRzID0gY2xpcGJvYXJkLmVsZW1lbnRzLmZpbHRlcihlID0+IGF0dGFjaG1lbnRJZHMuaW5kZXhPZihlLmlkKSA9PT0gLTEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnRlbnRzID0gY2xpcGJvYXJkLmVsZW1lbnRzO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmFkZEZpbGVFbGVtZW50cyh3b3JrSXRlbS5wcm9jZXNzSWQsIHdvcmtJdGVtLmlkLCBjb250ZW50cyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZVRocm93RXJyb3IoJ2Vycm9yJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2UvYnBtL2JwbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxJQUFJLFlBQVksRUFBYyxhQUFhLEVBQUUsVUFBVSxJQUFJLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZJLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBK0IsT0FBTyxFQUFFLFFBQVEsRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFbkU7Ozs7Ozs7OztHQVNHO0FBRUgsTUFBTSxPQUFPLFVBQVU7SUFVckIsWUFBb0IsWUFBaUMsRUFDM0MsT0FBdUIsRUFDdkIsWUFBMEIsRUFDMUIsWUFBMEI7UUFIaEIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQzNDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGlC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LFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxlQUFlLENBQUMsSUFBSSxFQUFFO1lBQzFJLElBQUksUUFBcUIsQ0FBQztZQUMxQixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUN4Qiw4REFBOEQ7Z0JBQzlELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9FO2lCQUFNO2dCQUNMLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO2FBQy9CO1lBQ0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUN4RTthQUFNO1lBQ0wsT0FBTyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7OztZQTdSRixVQUFVOzs7WUFmSCxtQkFBbUI7WUFMbkIsY0FBYztZQUlkLFlBQVk7WUFEWixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmb3JrSm9pbiBhcyBvYnNlcnZhYmxlRm9ya0pvaW4sIG9mIGFzIG9ic2VydmFibGVPZiwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgdGhyb3dFcnJvciBhcyBvYnNlcnZhYmxlVGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7bWVyZ2VNYXAsIHRhcCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xyXG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XHJcbmltcG9ydCB7V29ya0l0ZW1IaXN0b3J5RW50cnl9IGZyb20gJy4uLy4uL21vZGVsL3dvcmstaXRlbS1oaXN0b3J5Lm1vZGVsJztcclxuaW1wb3J0IHtEbXNPYmplY3R9IGZyb20gJy4uLy4uL21vZGVsL2Rtcy1vYmplY3QubW9kZWwnO1xyXG5pbXBvcnQge0luYm94U2VydmljZX0gZnJvbSAnLi4vaW5ib3gvaW5ib3guc2VydmljZSc7XHJcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tICcuLi9ldmVudHMvZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7Q2FwYWJpbGl0aWVzU2VydmljZX0gZnJvbSAnLi4vY2FwYWJpbGl0aWVzL2NhcGFiaWxpdGllcy5zZXJ2aWNlJztcclxuaW1wb3J0IHtFeGVjdXRhYmxlUHJvY2VzcywgRmlsZUVudHJ5LCBQcm9jZXNzLCBXb3JrSXRlbSwgV29ya0l0ZW1BY3Rpb259IGZyb20gJy4uLy4uL21vZGVsL2JwbS5tb2RlbCc7XHJcbmltcG9ydCB7Q2xpcGJvYXJkfSBmcm9tICcuLi9jbGlwYm9hcmQvY2xpcGJvYXJkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7Q2xpcGJvYXJkQWN0aW9ufSBmcm9tICcuLi9jbGlwYm9hcmQvY2xpcGJvYXJkLWFjdGlvbi5lbnVtJztcclxuXHJcbi8qKlxyXG4gKiBgQnBtU2VydmljZWAgaGFuZGxlcyBpbnRlcmFjdGlvbiByZWxhdGVkIHRvIEJQTSB0YXNrcy5cclxuICpcclxuICogVGhlIG1haW4gcGFydHMgcHJvdmlkZWQgYW5kIHVzZWQgYnkgdGhpcyBzZXJ2aWNlIGFyZSBQcm9jZXNzZXMgYW5kIFdvcmtJdGVtcy5cclxuICogUHJvY2Vzc2VzIGFyZSBkZWZpbmVkIG9uIHRoZSBiYWNrZW5kIHNpZGUuIFRoZXkgZGVzY3JpYmUgYSBzZXQgb2YgdGFza3MgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIGJ5IHRoZSBwcm9jZXNzLlxyXG4gKiBUYXNrcyB0aGF0IHJlcXVpcmUgdXNlciBpbnRlcmFjdGlvbiBhcmUgcmVmZXJyZWQgdG8gYXMgV29ya0l0ZW1zLlxyXG4gKlxyXG4gKiBQcm9jZXNzZXMgY2FuIGJlIHJlbGF0ZWQgdG8gYSBzcGVjaWFsIG9iamVjdCB0eXBlLCBidXQgdGhleSBkb24ndCBoYXZlIHRvLiBJbiBhZGRpdGlvbiB0byB0aGF0IHRoZXkgY2FuIHJlZmVyXHJcbiAqIHRvIGRtcyBvYmplY3RzLlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQnBtU2VydmljZSB7XHJcbiAgaGFzTWFpbkV4ZWN1dGFibGVQcm9jZXNzZXM6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBleGVjdXRhYmxlUHJvY2Vzc2VzOiBFeGVjdXRhYmxlUHJvY2Vzc1tdO1xyXG4gIHByaXZhdGUgcHJvY2Vzc0l0ZW1zOiBQcm9jZXNzW107XHJcbiAgcHJpdmF0ZSBwcm9jZXNzSXRlbXNTb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDxQcm9jZXNzW10+KDEpO1xyXG4gIC8qKlxyXG4gICAqIExvbmcgdGVybSBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBjdXJyZW50IHByb2Nlc3Nlc1xyXG4gICAqL1xyXG4gIHByb2Nlc3NJdGVtcyQ6IE9ic2VydmFibGU8UHJvY2Vzc1tdPiA9IHRoaXMucHJvY2Vzc0l0ZW1zU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhcGFiaWxpdGllczogQ2FwYWJpbGl0aWVzU2VydmljZSxcclxuICAgIHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbmJveFNlcnZpY2U6IEluYm94U2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgYWxsIHByb2Nlc3NlcyBvZiB0aGUgY3VycmVudCB1c2VyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNpemUgTWF4aW11bSBudW1iZXIgb2YgcHJvY2Vzc2VzIHRvIGJlIGZldGNoZWRcclxuICAgKiBAcmV0dXJucyBMaXN0IG9mIFByb2Nlc3Nlc1xyXG4gICAqL1xyXG4gIGdldFByb2Nlc3NlcyhzaXplOiBudW1iZXIgPSAxMDAwKTogT2JzZXJ2YWJsZTxQcm9jZXNzW10+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmdldEpzb24oYC9wcm9jZXNzL3VzZXI/c2l6ZT0ke3NpemV9YCwgdGhpcy5iYWNrZW5kLmdldEJwbUJhc2UoKSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlLmNvbnRlbnQubWFwKGl0ZW0gPT4gbmV3IFByb2Nlc3MoaXRlbSkpKSxcclxuICAgICAgICB0YXAoKHByb2Nlc3NlczogUHJvY2Vzc1tdKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnByb2Nlc3NJdGVtcyA9IHByb2Nlc3NlcztcclxuICAgICAgICAgIHRoaXMucHJvY2Vzc0l0ZW1zU291cmNlLm5leHQodGhpcy5wcm9jZXNzSXRlbXMpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZm9yIHRoZSBleGVjdXRhYmxlIFByb2Nlc3Nlcy4gSWYgdHlwZXMgYXJlIHByb3ZpZGVkLCB5b3UnbGwgZ2V0XHJcbiAgICogb25seSB0aGUgcHJvY2Vzc2VzIHRoYXQgYXJlIGV4ZWN1dGFibGUgZm9yIGFsbCBvZiB0aGVtXHJcbiAgICogQHBhcmFtIHR5cGVzIExpc3Qgb2YgZG1zIG9iamVjdCB0eXBlcyB0byBmZXRjaCBleGVjdXRhYmxlIHByb2Nlc3NlcyBmb3JcclxuICAgKiBAcGFyYW0gdXNlQ2FjaGVkIElmIHRoZSBjYWNoZWQgZGF0YSBzaG91bGQgYmUgcmV0dXJuZWQgcmF0aGVyIHRoYW4gcmVxdWVzdGluZyBhZ2FpblxyXG4gICAqIEBwYXJhbSBhZGRpdGlvbmFsRGF0YSBJZiB0aGUgYWRkaXRpb25hbCBmb3JtIGRhdGEgc2hvdWxkIGJlIGFsc28gaW5jbHVkZWRcclxuICAgKiBAcGFyYW0gbW9kZWxpZCBUaGUgcHJvY2VzcyBtb2RlbCBJRCB0byBvbmx5IHJldHVybiB0aGUgZGF0YSBmb3Igb25lIHByb2Nlc3NcclxuICAgKiBAcmV0dXJucyBMaXN0IG9mIGV4ZWN1dGFibGUgcHJvY2Vzc2VzXHJcbiAgICovXHJcbiAgZ2V0RXhlY3V0YWJsZVByb2Nlc3Nlcyh0eXBlcz86IHN0cmluZ1tdLCB1c2VDYWNoZWQ/OiBib29sZWFuLCBhZGRpdGlvbmFsRGF0YT86IGJvb2xlYW4sIG1vZGVsaWQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEV4ZWN1dGFibGVQcm9jZXNzW10+IHtcclxuICAgIGlmICh0aGlzLmNhcGFiaWxpdGllcy5oYXNDYXBhYmlsaXR5KCdicG0nKSkge1xyXG4gICAgICByZXR1cm4gKCEhdGhpcy5leGVjdXRhYmxlUHJvY2Vzc2VzICYmIHVzZUNhY2hlZCkgPyBvYnNlcnZhYmxlT2YodGhpcy5leGVjdXRhYmxlUHJvY2Vzc2VzKSA6IHRoaXMuZmV0Y2hFeGVjdXRhYmxlUHJvY2Vzc2VzKHR5cGVzLCBhZGRpdGlvbmFsRGF0YSwgbW9kZWxpZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKFtdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRFeGVjdXRhYmxlUHJvY2Vzc2VzKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgdXJpID0gJy9icG0vcHJvY2Vzcy9leGVjdXRhYmxlJztcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0KHVyaSkucGlwZSh0YXAocmVzID0+IHRoaXMuaGFzTWFpbkV4ZWN1dGFibGVQcm9jZXNzZXMgPSByZXM/Lmxlbmd0aCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyBleGVjdXRhYmxlIFByb2Nlc3NlcyBmb3IgYSBnaXZlbiBzZXQgb2YgZG1zIG9iamVjdC5Zb3UnbGwgZ2V0XHJcbiAgICogb25seSB0aGUgcHJvY2Vzc2VzIHRoYXQgYXJlIGV4ZWN1dGFibGUgZm9yIGFsbCBvZiB0aGVtLlxyXG4gICAqIEBwYXJhbSBkbXNPYmplY3RzIExpc3Qgb2YgZG1zIG9iamVjdHMgdG8gZmV0Y2ggZXhlY3V0YWJsZSBwcm9jZXNzZXMgZm9yXHJcbiAgICogQHJldHVybnMgTGlzdCBvZiBleGVjdXRhYmxlIHByb2Nlc3Nlc1xyXG4gICAqL1xyXG4gIGdldEV4ZWN1dGFibGVQcm9jZXNzZXNGb3JEbXNPYmplY3RzKGRtc09iamVjdHM6IERtc09iamVjdFtdKTogT2JzZXJ2YWJsZTxFeGVjdXRhYmxlUHJvY2Vzc1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRFeGVjdXRhYmxlUHJvY2Vzc2VzKGRtc09iamVjdHMubWFwKG8gPT4gby50eXBlTmFtZSksIGZhbHNlLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgZXhlY3V0YWJsZSBQcm9jZXNzZXMgZnJvbSB0aGUgYmFja2VuZC5cclxuICAgKiBAcGFyYW0gdHlwZXMgTGlzdCBvZiBkbXMgb2JqZWN0IHR5cGVzIHRvIGZldGNoIGV4ZWN1dGFibGUgcHJvY2Vzc2VzIGZvclxyXG4gICAqIEBwYXJhbSBhZGRpdGlvbmFsRGF0YSBJZiB0aGUgYWRkaXRpb25hbCBmb3JtIGRhdGEgc2hvdWxkIGJlIGFsc28gaW5jbHVkZWRcclxuICAgKiBAcGFyYW0gbW9kZWxpZCBUaGUgcHJvY2VzcyBtb2RlbCBJRCB0byBvbmx5IHJldHVybiB0aGUgZGF0YSBmb3Igb25lIHByb2Nlc3NcclxuICAgKiBAcmV0dXJucyBMaXN0IG9mIGV4ZWN1dGFibGUgcHJvY2Vzc2VzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmZXRjaEV4ZWN1dGFibGVQcm9jZXNzZXModHlwZXM/OiBzdHJpbmdbXSwgYWRkaXRpb25hbERhdGE/OiBib29sZWFuLCBtb2RlbGlkPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxFeGVjdXRhYmxlUHJvY2Vzc1tdPiB7XHJcbiAgICBsZXQgdXJpID0gJy9icG0vcHJvY2Vzcy9leGVjdXRhYmxlJztcclxuICAgIGlmIChhZGRpdGlvbmFsRGF0YSkge1xyXG4gICAgICB1cmkgKz0gJz9mb3JtPXRydWUmZmllbGRzPXRydWUnO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVzKSB7XHJcbiAgICAgIHVyaSArPSAoYWRkaXRpb25hbERhdGEgPyAnJicgOiAnPycpICsgYHR5cGU9JHt0eXBlcy5qb2luKCcsJyl9YDtcclxuICAgIH1cclxuICAgIGlmIChtb2RlbGlkKSB7XHJcbiAgICAgIHVyaSArPSAoYWRkaXRpb25hbERhdGEgfHwgdHlwZXMgPyAnJicgOiAnPycpICsgYG1vZGVsaWQ9JHttb2RlbGlkfWA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldCh1cmkpLnBpcGUoXHJcbiAgICAgIG1hcChyZXMgPT4gcmVzIGFzIEV4ZWN1dGFibGVQcm9jZXNzW10pLFxyXG4gICAgICB0YXAocmVzID0+IHtcclxuICAgICAgICAvLyBFeHRlbmQgZXhpc3RpbmcgcHJvY2Vzc2VzIHdpdGggYWRkaXRpb25hbCBkYXRhLCBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIGFsbCBwcm9jZXNzZXNcclxuICAgICAgICBpZiAoYWRkaXRpb25hbERhdGEpIHtcclxuICAgICAgICAgIGlmKCF0aGlzLmV4ZWN1dGFibGVQcm9jZXNzZXMpIHRoaXMuZXhlY3V0YWJsZVByb2Nlc3NlcyA9IFtdO1xyXG4gICAgICAgICAgcmVzLmZvckVhY2gocHJvYyA9PiB7XHJcbiAgICAgICAgICAgIHZhciBleGlzdGluZ1Byb2NJbmRleCA9IHRoaXMuZXhlY3V0YWJsZVByb2Nlc3Nlcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09IHByb2MuaWQpO1xyXG4gICAgICAgICAgICBpZiAoZXhpc3RpbmdQcm9jSW5kZXggPT0gLTEpXHJcbiAgICAgICAgICAgICAgdGhpcy5leGVjdXRhYmxlUHJvY2Vzc2VzLnB1c2gocHJvYyk7XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICB0aGlzLmV4ZWN1dGFibGVQcm9jZXNzZXNbZXhpc3RpbmdQcm9jSW5kZXhdID0gcHJvYztcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLmV4ZWN1dGFibGVQcm9jZXNzZXMgPSByZXM7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIGZvciBhIHByb2Nlc3NlcyBmaWxlLiBUaGUgZmlsZSBvZiBhIHByb2Nlc3MgY29udGFpbnNcclxuICAgKiBkbXMgb2JqZWN0cyBhdHRhY2hlZCB0byB0aGUgcHJvY2Vzcy5cclxuICAgKiBAcGFyYW0gcHJvY2Vzc0lkIElEIG9mIHRoZSBwcm9jZXNzIHRvIGZldGNoIGF0dGFjaGVkIG9iamVjdHMgZm9yXHJcbiAgICovXHJcbiAgZ2V0UHJvY2Vzc0ZpbGUocHJvY2Vzc0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEZpbGVFbnRyeVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKGAvcHJvY2Vzcy8ke3Byb2Nlc3NJZH0vZmlsZWAsIHRoaXMuYmFja2VuZC5nZXRCcG1CYXNlKCkpLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlcyA9PiByZXMuY29udGVudC5tYXAoaSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZDogaS5lbGVtZW50aWQsXHJcbiAgICAgICAgICAgIHRpdGxlOiBpLnRpdGxlLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogaS5kZXNjcmlwdGlvbiA/IGkuZGVzY3JpcHRpb24gOiAnJyxcclxuICAgICAgICAgICAgaWNvbmlkOiBpLmljb25pZCxcclxuICAgICAgICAgICAgY3JlYXRvcjogaS5jcmVhdG9yLFxyXG4gICAgICAgICAgICBhZGR0aW1lOiBpLmFkZHRpbWUsXHJcbiAgICAgICAgICAgIHR5cGU6IGkudHlwZVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIHdvcmsgaXRlbS5cclxuICAgKiBAcGFyYW0gcHJvY2Vzc0lkIElEIG9mIHRoZSBwYXJlbnQgcHJvY2Vzc1xyXG4gICAqIEBwYXJhbSBpdGVtSWQgSUQgb2YgdGhlIHdvcmsgaXRlbSBpdHNlbGZcclxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIHRvIGJlIGFkZGVkIHRvIHRoZSBiYWNrZW5kIGNhbGxcclxuICAgKiBAcmV0dXJucyBhIFdvcmtJdGVtXHJcbiAgICovXHJcbiAgZ2V0V29ya0l0ZW0ocHJvY2Vzc0lkOiBzdHJpbmcsIGl0ZW1JZDogc3RyaW5nLCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxXb3JrSXRlbT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gb3B0aW9ucyA/IG9wdGlvbnMgOiB7Zm9ybTogdHJ1ZSwgZmllbGRzOiB0cnVlfTtcclxuICAgIGNvbnN0IHRhc2tzID0gW1xyXG4gICAgICB0aGlzLmJhY2tlbmQuZ2V0SnNvbihVdGlscy5idWlsZFVyaShgL2JwbS9wcm9jZXNzLyR7cHJvY2Vzc0lkfS8ke2l0ZW1JZH1gLCBwYXJhbXMpKSxcclxuICAgICAgdGhpcy5nZXRQcm9jZXNzRmlsZShwcm9jZXNzSWQpXHJcbiAgICBdO1xyXG4gICAgcmV0dXJuIG9ic2VydmFibGVGb3JrSm9pbih0YXNrcykucGlwZShcclxuICAgICAgbWFwKHJlcyA9PiB7XHJcbiAgICAgICAgY29uc3Qgd2kgPSBuZXcgV29ya0l0ZW0ocmVzWzBdKTtcclxuICAgICAgICB3aS5zZXRGaWxlKHJlc1sxXSk7XHJcbiAgICAgICAgcmV0dXJuIHdpO1xyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTYXZlcyBhIHdvcmsgaXRlbS5cclxuICAgKiBAcGFyYW0gaXRlbSBUaGUgd29yayBpdGVtIHRvIGJlIHNhdmVkXHJcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgV29ya0l0ZW1cclxuICAgKi9cclxuICBzYXZlV29ya0l0ZW0oaXRlbTogV29ya0l0ZW0pOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XHJcbiAgICBjb25zdCB7aWQsIHByb2Nlc3NJZCwgZmlsZSwgZGF0YX0gPSBpdGVtO1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtjb250ZW50czogZmlsZSwgZGF0YX07XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7a2VlcGxvY2s6IHRydWUsIGlzYXV0b2xvY2s6IGZhbHNlfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wb3N0KFV0aWxzLmJ1aWxkVXJpKGAvYnBtL3Byb2Nlc3MvJHtwcm9jZXNzSWR9LyR7aWR9L3NhdmVgLCBwYXJhbXMpLCBwYXlsb2FkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLmdldFdvcmtJdGVtKHByb2Nlc3NJZCwgaWQpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9yd2FyZHMgYSB3b3JrIGl0ZW0uIElmIGEgV29ya0l0ZW0gcHJvdmlkZXMgZGlmZmVyZW50IGFjdGlvbnMgKEBsaW5rIFdvcmtJdGVtQWN0aW9uKVxyXG4gICAqIHlvdSBjYW4gcHJvdmlkZSB0aGUgc2VsZWN0ZWQgYWN0aW9uIHRvby5cclxuICAgKiBAcGFyYW0gaXRlbSBUaGUgd29yayBpdGVtIHRvIGJlIGZvcndhcmRlZFxyXG4gICAqIEBwYXJhbSBhY3Rpb24gQWN0aW9uIHVzZWQgZm9yIGZvcndhcmRpbmdcclxuICAgKi9cclxuICBmb3J3YXJkV29ya0l0ZW0oaXRlbTogV29ya0l0ZW0sIGFjdGlvbj86IFdvcmtJdGVtQWN0aW9uKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtrZWVwbG9jazogZmFsc2UsIGlzYXV0b2xvY2s6IGZhbHNlfTtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIGFjdGlvbjogYWN0aW9uLFxyXG4gICAgICBjb250ZW50czogaXRlbS5maWxlLFxyXG4gICAgICBkYXRhOiBpdGVtLmRhdGFcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wb3N0KFV0aWxzLmJ1aWxkVXJpKGAvYnBtL3Byb2Nlc3MvJHtpdGVtLnByb2Nlc3NJZH0vJHtpdGVtLmlkfS9zYXZlYCwgcGFyYW1zKSwgcGF5bG9hZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaW5ib3hTZXJ2aWNlLnVwZGF0ZUluYm94SXRlbXMoaXRlbS5pZCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2NrcyBhIFdvcmtJdGVtIGZvciB0aGUgY3VycmVudCB1c2VyIChwZXJzb25hbGl6YXRpb24pLCBtZWFuaW5nIHRoYXQgdGhlXHJcbiAgICogY3VycmVudCB1c2VyIGlzIG5vdyBpbiBjaGFyZ2Ugb2YgZnVsZmlsbGluZyB0aGUgV29ya0l0ZW0gdGFzay5cclxuICAgKiBAcGFyYW0gaXRlbSBUaGUgV29ya0l0ZW0gdG8gYmUgbG9ja2VkXHJcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgV29ya0l0ZW1cclxuICAgKi9cclxuICBsb2NrV29ya0l0ZW0oaXRlbTogV29ya0l0ZW0pOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dChgL2JwbS9wcm9jZXNzLyR7aXRlbS5wcm9jZXNzSWR9LyR7aXRlbS5pZH0vbG9ja2ApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0V29ya0l0ZW0oaXRlbS5wcm9jZXNzSWQsIGl0ZW0uaWQpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVsZWFzZXMgdGhlIGxvY2sgZm9yIGEgV29ya0l0ZW0uXHJcbiAgICogQHBhcmFtIGl0ZW0gVGhlIHdvcmsgaXRlbSB0byBiZSB1bmxvY2tlZFxyXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIFdvcmtJdGVtXHJcbiAgICovXHJcbiAgdW5sb2NrV29ya0l0ZW0oaXRlbTogV29ya0l0ZW0pOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbChgL2JwbS9wcm9jZXNzLyR7aXRlbS5wcm9jZXNzSWR9LyR7aXRlbS5pZH0vbG9ja2ApLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0V29ya0l0ZW0oaXRlbS5wcm9jZXNzSWQsIGl0ZW0uaWQpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0cyBhbiBleGVjdXRhYmxlIHByb2Nlc3MuXHJcbiAgICogQHBhcmFtIGV4ZWN1dGFibGVQcm9jZXNzSWQgSUQgb2YgdGhlIGV4ZWN1dGFibGUgUHJvY2VzcyB0byBiZSBzdGFydGVkXHJcbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0byBiZSBwYXNzZWQgdG8gdGhlIHByb2Nlc3MgKHNpbXBsZSBvYmplY3Qgb2Yga2V5L3ZhbHVlIHBhaXJzKVxyXG4gICAqIEBwYXJhbSBjb250ZW50cyBPYmplY3RzIHRvIGJlIGF0dGFjaGVkIHRvIHRoZSBwcm9jZXNzIChwcm9jZXNzLmZpbGUpLlxyXG4gICAqL1xyXG4gIHN0YXJ0UHJvY2VzcyhleGVjdXRhYmxlUHJvY2Vzc0lkOiBzdHJpbmcsIGRhdGE6IGFueSwgY29udGVudHM6IHtpZDogc3RyaW5nLCB0eXBlOiBzdHJpbmd9W10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wb3N0KGAvYnBtL3Byb2Nlc3MvP21vZGVsaWQ9JHtleGVjdXRhYmxlUHJvY2Vzc0lkfWAsIHtcclxuICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgY29udGVudHM6IGNvbnRlbnRzXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGhpc3RvcnkgZm9yIGEgcHJvY2Vzcy4gV2hpY2ggZW50cmllcyBhcmUgcmV0dXJuZWQgZGVwZW5kcyBvbiB0aGVcclxuICAgKiBwZXJtaXNzaW9ucyBvZiB0aGUgY3VycmVudCB1c2VyLlxyXG4gICAqIEBwYXJhbSBwcm9jZXNzSWQgVGhlIElEIG9mIHRoZSBwcm9jZXNzIHRvIGZldGNoIGhpc3RvcnkgZm9yXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxXb3JrSXRlbUhpc3RvcnlFbnRyeVtdPlxyXG4gICAqL1xyXG4gIGdldFByb2Nlc3NIaXN0b3J5KHByb2Nlc3NJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxXb3JrSXRlbUhpc3RvcnlFbnRyeVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKGAvYnBtL3Byb2Nlc3MvJHtwcm9jZXNzSWR9L2hpc3RvcnlgKVxyXG4gICAgICAucGlwZShtYXAocmVzID0+IHJlcyAmJiByZXMubGVuZ3RoID8gcmVzLm1hcChpdGVtID0+IG5ldyBXb3JrSXRlbUhpc3RvcnlFbnRyeShpdGVtKSkgOiBbXSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhIGNvbnRlbnQgZnJvbSB0aGUgd29yayBpdGVtcyBmaWxlLlxyXG4gICAqIEBwYXJhbSBwcm9jZXNzSWQgVGhlIElEIG9mIHRoZSBwcm9jZXNzIHRvIHJlbW92ZSB0aGUgaXRlbSBmcm9tXHJcbiAgICogQHBhcmFtIHdvcmtJdGVtSWQgVGhlIElEIG9mIHRoZSB3b3JrIGl0ZW0gY29udGFpbmluZyB0aGUgZmlsZSBlbGVtZW50IHRvIGJlIHJlbW92ZWRcclxuICAgKiBAcGFyYW0gd29ya0l0ZW1Db250ZW50SWQgVGhlIHRoZSBJRCBvZiB0aGUgZmlsZSBlbGVtZW50IHRvIGJlIHJlbW92ZWRcclxuICAgKi9cclxuICByZW1vdmVGaWxlRWxlbWVudChwcm9jZXNzSWQ6IHN0cmluZywgd29ya0l0ZW1JZDogc3RyaW5nLCB3b3JrSXRlbUNvbnRlbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmRlbChgL3Byb2Nlc3MvJHtwcm9jZXNzSWR9L2ZpbGUvJHt3b3JrSXRlbUNvbnRlbnRJZH0/YWN0aXZpdHlpZD0ke3dvcmtJdGVtSWR9YCwgdGhpcy5iYWNrZW5kLmdldEJwbUJhc2UoKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgY29udGVudHMgdG8gYSB3b3JrIGl0ZW1zIGZpbGUuXHJcbiAgICogQHBhcmFtIHByb2Nlc3NJZCBUaGUgSUQgb2YgdGhlIHByb2Nlc3NcclxuICAgKiBAcGFyYW0gd29ya0l0ZW1JZCBUaGUgSUQgb2YgdGhlIGFjdGl2aXR5XHJcbiAgICogQHBhcmFtIGVsZW1lbnRzIFRoZSBFbGVtZW50cyB0byBiZSBhZGRlZFxyXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIFdvcmtJdGVtXHJcbiAgICovXHJcbiAgYWRkRmlsZUVsZW1lbnRzKHByb2Nlc3NJZDogc3RyaW5nLCB3b3JrSXRlbUlkOiBzdHJpbmcsIGVsZW1lbnRzOiBEbXNPYmplY3RbXSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcclxuICAgIGNvbnN0IHRhc2tzID0gW107XHJcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgIHRhc2tzLnB1c2godGhpcy5iYWNrZW5kLnBvc3QoXHJcbiAgICAgICAgYC9wcm9jZXNzLyR7cHJvY2Vzc0lkfS9maWxlLyR7ZS5pZH0/dHlwZT0ke2UudHlwZS5uYW1lfSZhY3Rpdml0eWlkPSR7d29ya0l0ZW1JZH1gLFxyXG4gICAgICAgIHt9LCB0aGlzLmJhY2tlbmQuZ2V0QnBtQmFzZSgpKSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBvYnNlcnZhYmxlRm9ya0pvaW4odGFza3MpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0V29ya0l0ZW0ocHJvY2Vzc0lkLCB3b3JrSXRlbUlkKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIG9iamVjdHMgZnJvbSB0aGUgY2xpcGJvYXJkIHRvIGEgV29ya0l0ZW0uXHJcbiAgICogQHBhcmFtIHdvcmtJdGVtIFRoZSB3b3JrSXRlbSB0byBhZGQgdGhlIG9iamVjdHMgdG9cclxuICAgKiBAcGFyYW0gY2xpcGJvYXJkIENsaXBib2FyZCBvYmplY3QgaG9sZGluZyB1c2VyIHNlbGVjdGVkIG9iamVjdHNcclxuICAgKiBAcmV0dXJucyBUaGUgdXBkYXRlZCBXb3JrSXRlbVxyXG4gICAqL1xyXG4gIGFkZEZpbGVFbGVtZW50c0Zyb21DbGlwYm9hcmQod29ya0l0ZW06IFdvcmtJdGVtLCBjbGlwYm9hcmQ6IENsaXBib2FyZCk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcclxuICAgIGlmICgod29ya0l0ZW0gJiYgd29ya0l0ZW0uZmlsZUVudHJ5UGVybWlzc2lvbnMuYWRkKSAmJiBjbGlwYm9hcmQgJiYgY2xpcGJvYXJkLmVsZW1lbnRzLmxlbmd0aCAmJiBjbGlwYm9hcmQuYWN0aW9uID09PSBDbGlwYm9hcmRBY3Rpb24uQ09QWSkge1xyXG4gICAgICBsZXQgY29udGVudHM6IERtc09iamVjdFtdO1xyXG4gICAgICBpZiAod29ya0l0ZW0uZmlsZS5sZW5ndGgpIHtcclxuICAgICAgICAvLyBvbmx5IGFkZCBpdGVtcyB0aGF0IGFyZSBub3QgYWxyZWFkeSBwYXJ0IG9mIHRoZSBhdHRhY2htZW50c1xyXG4gICAgICAgIGNvbnN0IGF0dGFjaG1lbnRJZHMgPSB3b3JrSXRlbS5maWxlLm1hcChlID0+IGUuaWQpO1xyXG4gICAgICAgIGNvbnRlbnRzID0gY2xpcGJvYXJkLmVsZW1lbnRzLmZpbHRlcihlID0+IGF0dGFjaG1lbnRJZHMuaW5kZXhPZihlLmlkKSA9PT0gLTEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnRlbnRzID0gY2xpcGJvYXJkLmVsZW1lbnRzO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmFkZEZpbGVFbGVtZW50cyh3b3JrSXRlbS5wcm9jZXNzSWQsIHdvcmtJdGVtLmlkLCBjb250ZW50cyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZVRocm93RXJyb3IoJ2Vycm9yJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -58,6 +58,14 @@ export class Config {
|
|
|
58
58
|
getClientLocales() {
|
|
59
59
|
return this.cfg['languages'];
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Getter for the supported client locales
|
|
63
|
+
* @returns supported client locales
|
|
64
|
+
*/
|
|
65
|
+
getSupportedClientLocales() {
|
|
66
|
+
return ['en', 'de', 'ar', 'es', 'pt', 'fr', 'zh', 'lv', 'ru', 'it', 'nl', 'sk', 'pl', 'uk', 'ja', 'ko', 'hi', 'bn', 'de-CH', 'zh-Hant',
|
|
67
|
+
'th', 'vi', 'en-GB', 'he'];
|
|
68
|
+
}
|
|
61
69
|
/**
|
|
62
70
|
* Get the dashboards background image
|
|
63
71
|
* @returns background image uri for the dashboards background image
|
|
@@ -104,4 +112,4 @@ Config.ctorParameters = () => [
|
|
|
104
112
|
{ type: TranslateService },
|
|
105
113
|
{ type: EventService }
|
|
106
114
|
];
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2UvY29uZmlnL2NvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFNUM7O0dBRUc7QUFFSCxNQUFNLE9BQU8sTUFBTTtJQUlqQjs7T0FFRztJQUNILFlBQW9CLFNBQTJCLEVBQVUsS0FBbUI7UUFBeEQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBTHBFLFFBQUcsR0FBZ0IsSUFBSSxDQUFDO0lBTWhDLENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWM7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDSSxHQUFHLENBQUMsR0FBZ0I7UUFDekIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUdELFlBQVk7UUFDVixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFFBQWdCO1FBQzVCLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDckUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsUUFBZ0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSSx5QkFBeUI7UUFDOUIsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTO1lBQ3BJLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSSwyQkFBMkI7UUFDaEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHFCQUFxQjtRQUMxQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSSxzQkFBc0I7UUFDM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7O1lBL0dGLFVBQVU7OztZQVRILGdCQUFnQjtZQUVoQixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XHJcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tICcuLi9ldmVudHMvZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7RW5haW9Db25maWd9IGZyb20gJy4vY29uZmlnLmludGVyZmFjZSc7XHJcbmltcG9ydCB7RW5haW9FdmVudH0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50cyc7XHJcblxyXG4vKipcclxuICogQ29sbGVjdGlvbiBvZiBhbGwgQ29uZmlndXJhdGlvbnNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbmZpZyB7XHJcblxyXG4gIHByaXZhdGUgY2ZnOiBFbmFpb0NvbmZpZyA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSBldmVudDogRXZlbnRTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplR3JpZCgpIHtcclxuICAgIHRoaXMuZXZlbnQudHJpZ2dlcihFbmFpb0V2ZW50LkVPX0xJQ0VOU0VfR1JJRCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICogU2V0IGR1cmluZyBhcHAgaW5pdCAoc2VlIENvcmVJbml0KVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXQoY2ZnOiBFbmFpb0NvbmZpZykge1xyXG4gICAgdGhpcy5jZmcgPSBjZmc7XHJcbiAgICBjb25zdCBsYW5ndWFnZXMgPSB0aGlzLmdldENsaWVudExvY2FsZXMoKS5tYXAobGFuZyA9PiBsYW5nLmlzbyk7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5hZGRMYW5ncyhsYW5ndWFnZXMpO1xyXG4gICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcodGhpcy5nZXREZWZhdWx0Q2xpZW50TG9jYWxlKCkpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplR3JpZCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldExvZ2luQmFzZSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IGxiID0gdGhpcy5nZXRVcmkoJ2xvZ2luQmFzZScpO1xyXG4gICAgcmV0dXJuIChsYiAmJiBsYiAhPT0gJy8nKSA/IGxiIDogJyc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIG5lc3RlZCBwcm9wZXJ0eSBvZiBjb25maWcgfCBjb21wbGV0ZSBjb25maWcgYnkgZGVmYXVsdFxyXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYmUgcmV0cmlldmVkXHJcbiAgICovXHJcbiAgcHVibGljIGdldFJhdyhwcm9wZXJ0eTogc3RyaW5nKTogYW55IHtcclxuICAgIHJldHVybiBwcm9wZXJ0eSA/IFV0aWxzLmdldFByb3BlcnR5KHRoaXMuY2ZnLCBwcm9wZXJ0eSkgOiB0aGlzLmNmZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlciBmb3IgdGhlIFVSSVxyXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkvdXJpIHRvIGJlIHJldHJpZXZlZFxyXG4gICAqIEByZXR1cm5zIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBmcm9tIHRoZSBVUkktU2VjdGlvbiBvZiB0aGUgY29uZmlnXHJcbiAgICovXHJcbiAgcHVibGljIGdldFVyaShwcm9wZXJ0eTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNmZ1sndXJpJ11bcHJvcGVydHldO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIGZvciB0aGUgYXZhaWxhYmxlIGNsaWVudCBsb2NhbGVzXHJcbiAgICogQHJldHVybnMgYXZhaWxhYmxlIGNsaWVudCBsb2NhbGVzXHJcbiAgICovXHJcbiAgcHVibGljIGdldENsaWVudExvY2FsZXMoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2ZnWydsYW5ndWFnZXMnXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlciBmb3IgdGhlIHN1cHBvcnRlZCBjbGllbnQgbG9jYWxlc1xyXG4gICAqIEByZXR1cm5zIHN1cHBvcnRlZCBjbGllbnQgbG9jYWxlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRTdXBwb3J0ZWRDbGllbnRMb2NhbGVzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBbJ2VuJywgJ2RlJywgJ2FyJywgJ2VzJywgJ3B0JywgJ2ZyJywgJ3poJywgJ2x2JywgJ3J1JywgJ2l0JywgJ25sJywgJ3NrJywgJ3BsJywgJ3VrJywgJ2phJywgJ2tvJywgJ2hpJywgJ2JuJywgJ2RlLUNIJywgJ3poLUhhbnQnLFxyXG4gICAgICAndGgnLCAndmknLCAnZW4tR0InLCAnaGUnXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgZGFzaGJvYXJkcyBiYWNrZ3JvdW5kIGltYWdlXHJcbiAgICogQHJldHVybnMgYmFja2dyb3VuZCBpbWFnZSB1cmkgZm9yIHRoZSBkYXNoYm9hcmRzIGJhY2tncm91bmQgaW1hZ2VcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0RGFzaGJvYXJkQmFja2dyb3VuZEltYWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jZmdbJ2Rhc2hib2FyZEJhY2tncm91bmRJbWFnZSddO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBzaWRlYmFycyBoZWFkZXIgYmFja2dyb3VuZCBpbWFnZVxyXG4gICAqIEByZXR1cm5zIGJhY2tncm91bmQgaW1hZ2UgdXJpIGZvciB0aGUgc2lkZWJhcnMgaGVhZGVyIGJhY2tncm91bmQgaW1hZ2VcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0U2lkZUJhckhlYWRlckltYWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jZmdbJ3NpZGVCYXJIZWFkZXJJbWFnZSddO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBuYXZpZ2F0aW9uIGJhciBpbWFnZSAoTG9nbylcclxuICAgKiBvbmx5IGFjY2VwdHMgc3ZnLlxyXG4gICAqIEByZXR1cm5zIGJhY2tncm91bmQgaW1hZ2UgdXJpIGZvciB0aGUgTmF2aWdhdGlvbmJhciAoTG9nbylcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0TmF2aWdhdGlvbkJhckltYWdlKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgbG9nbyA9IHRoaXMuY2ZnWyduYXZCYXJMb2dvJ107XHJcbiAgICBsb2dvID0gbG9nby5lbmRzV2l0aCgnLnN2ZycpID8gbG9nbyA6IGA8c3ZnPjwvc3ZnPmA7XHJcbiAgICByZXR1cm4gbG9nbztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgZGVmYXVsdCBjbGllbnQgbG9jYWxlXHJcbiAgICogQHJldHVybnMgSVNPIHN0cmluZyBvZiB0aGUgbG9jYWxlXHJcbiAgICovXHJcbiAgcHVibGljIGdldERlZmF1bHRDbGllbnRMb2NhbGUoKSB7XHJcbiAgICBjb25zdCBsYW5nID0gdGhpcy5nZXRDbGllbnRMb2NhbGVzKCkuZmluZChfID0+IF8uZmFsbGJhY2spO1xyXG4gICAgcmV0dXJuIGxhbmcgPyBsYW5nLmlzbyA6ICdlbic7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZm9yIHRoZSBBZ2VudCBDb25maWd1cmF0aW9uXHJcbiAgICovXHJcbiAgcHVibGljIGdldEFnZW50Q29uZmlnKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5jZmdbJ2FnZW50J107XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -589,6 +589,14 @@ class Config {
|
|
|
589
589
|
getClientLocales() {
|
|
590
590
|
return this.cfg['languages'];
|
|
591
591
|
}
|
|
592
|
+
/**
|
|
593
|
+
* Getter for the supported client locales
|
|
594
|
+
* @returns supported client locales
|
|
595
|
+
*/
|
|
596
|
+
getSupportedClientLocales() {
|
|
597
|
+
return ['en', 'de', 'ar', 'es', 'pt', 'fr', 'zh', 'lv', 'ru', 'it', 'nl', 'sk', 'pl', 'uk', 'ja', 'ko', 'hi', 'bn', 'de-CH', 'zh-Hant',
|
|
598
|
+
'th', 'vi', 'en-GB', 'he'];
|
|
599
|
+
}
|
|
592
600
|
/**
|
|
593
601
|
* Get the dashboards background image
|
|
594
602
|
* @returns background image uri for the dashboards background image
|
|
@@ -2726,11 +2734,14 @@ class BpmService {
|
|
|
2726
2734
|
* Getter for the executable Processes. If types are provided, you'll get
|
|
2727
2735
|
* only the processes that are executable for all of them
|
|
2728
2736
|
* @param types List of dms object types to fetch executable processes for
|
|
2737
|
+
* @param useCached If the cached data should be returned rather than requesting again
|
|
2738
|
+
* @param additionalData If the additional form data should be also included
|
|
2739
|
+
* @param modelid The process model ID to only return the data for one process
|
|
2729
2740
|
* @returns List of executable processes
|
|
2730
2741
|
*/
|
|
2731
|
-
getExecutableProcesses(types, useCached) {
|
|
2742
|
+
getExecutableProcesses(types, useCached, additionalData, modelid) {
|
|
2732
2743
|
if (this.capabilities.hasCapability('bpm')) {
|
|
2733
|
-
return (!!this.executableProcesses && useCached) ? of(this.executableProcesses) : this.fetchExecutableProcesses(types);
|
|
2744
|
+
return (!!this.executableProcesses && useCached) ? of(this.executableProcesses) : this.fetchExecutableProcesses(types, additionalData, modelid);
|
|
2734
2745
|
}
|
|
2735
2746
|
else {
|
|
2736
2747
|
return of([]);
|
|
@@ -2747,19 +2758,42 @@ class BpmService {
|
|
|
2747
2758
|
* @returns List of executable processes
|
|
2748
2759
|
*/
|
|
2749
2760
|
getExecutableProcessesForDmsObjects(dmsObjects) {
|
|
2750
|
-
return this.getExecutableProcesses(dmsObjects.map(o => o.typeName));
|
|
2761
|
+
return this.getExecutableProcesses(dmsObjects.map(o => o.typeName), false, true);
|
|
2751
2762
|
}
|
|
2752
2763
|
/**
|
|
2753
2764
|
* Fetches executable Processes from the backend.
|
|
2754
2765
|
* @param types List of dms object types to fetch executable processes for
|
|
2766
|
+
* @param additionalData If the additional form data should be also included
|
|
2767
|
+
* @param modelid The process model ID to only return the data for one process
|
|
2755
2768
|
* @returns List of executable processes
|
|
2756
2769
|
*/
|
|
2757
|
-
fetchExecutableProcesses(types) {
|
|
2758
|
-
let uri = '/bpm/process/executable
|
|
2770
|
+
fetchExecutableProcesses(types, additionalData, modelid) {
|
|
2771
|
+
let uri = '/bpm/process/executable';
|
|
2772
|
+
if (additionalData) {
|
|
2773
|
+
uri += '?form=true&fields=true';
|
|
2774
|
+
}
|
|
2759
2775
|
if (types) {
|
|
2760
|
-
uri +=
|
|
2776
|
+
uri += (additionalData ? '&' : '?') + `type=${types.join(',')}`;
|
|
2761
2777
|
}
|
|
2762
|
-
|
|
2778
|
+
if (modelid) {
|
|
2779
|
+
uri += (additionalData || types ? '&' : '?') + `modelid=${modelid}`;
|
|
2780
|
+
}
|
|
2781
|
+
return this.backend.get(uri).pipe(map(res => res), tap(res => {
|
|
2782
|
+
// Extend existing processes with additional data, instead of overwriting all processes
|
|
2783
|
+
if (additionalData) {
|
|
2784
|
+
if (!this.executableProcesses)
|
|
2785
|
+
this.executableProcesses = [];
|
|
2786
|
+
res.forEach(proc => {
|
|
2787
|
+
var existingProcIndex = this.executableProcesses.findIndex(item => item.id == proc.id);
|
|
2788
|
+
if (existingProcIndex == -1)
|
|
2789
|
+
this.executableProcesses.push(proc);
|
|
2790
|
+
else
|
|
2791
|
+
this.executableProcesses[existingProcIndex] = proc;
|
|
2792
|
+
});
|
|
2793
|
+
}
|
|
2794
|
+
else
|
|
2795
|
+
this.executableProcesses = res;
|
|
2796
|
+
}));
|
|
2763
2797
|
}
|
|
2764
2798
|
/**
|
|
2765
2799
|
* Getter for a processes file. The file of a process contains
|