@hestia-earth/ui-components 0.22.1 → 0.22.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.
|
@@ -9,7 +9,7 @@ import { headersFromCsv } from '@hestia-earth/schema-convert';
|
|
|
9
9
|
import { baseUrl } from '../common/utils';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
import * as i1 from "@angular/common/http";
|
|
12
|
-
export const schemaBaseUrl = (version) => `${baseUrl()}/schema/${version || SCHEMA_VERSION}`;
|
|
12
|
+
export const schemaBaseUrl = (version) => `${baseUrl()}/schema-data/${version || SCHEMA_VERSION}`;
|
|
13
13
|
export const linkTypeEnabled = (type) => [NodeType.Cycle, NodeType.ImpactAssessment, NodeType.Site, NodeType.Source, NodeType.Term].includes(type);
|
|
14
14
|
export const refToSchemaType = (ref = '') => ref.startsWith('http') ? ref : ref.substring(2).replace('-deep', '').replace('.json#', '');
|
|
15
15
|
export const definitionToSchemaType = ({ title, $ref }) => (title || refToSchemaType($ref));
|
|
@@ -101,9 +101,15 @@ export class HeSchemaService {
|
|
|
101
101
|
this.sortConfigLoaded = false;
|
|
102
102
|
this._sortConfig = new ReplaySubject(1);
|
|
103
103
|
}
|
|
104
|
-
|
|
104
|
+
getSchema$(type, version) {
|
|
105
|
+
return this.http.get(`${schemaBaseUrl(version)}/json-schema/${type}.json`);
|
|
106
|
+
}
|
|
107
|
+
getSchema(type, version) {
|
|
108
|
+
return this.getSchema$(type, version).toPromise();
|
|
109
|
+
}
|
|
110
|
+
loadSchemas(version) {
|
|
105
111
|
this.schemasLoading = true;
|
|
106
|
-
return from(Object.values(SchemaType)).pipe(mergeMap(type => this.
|
|
112
|
+
return from(Object.values(SchemaType)).pipe(mergeMap(type => this.getSchema$(type, version).pipe(map(schema => ({ type, schema })), catchError(() => of({ type, schema: { properties: [] } })))), reduce((prev, { type, schema }) => ({ ...prev, [type]: schema }), {}), map(data => {
|
|
107
113
|
this._schemas.next(data);
|
|
108
114
|
this.schemasLoading = false;
|
|
109
115
|
this.schemasLoaded = true;
|
|
@@ -116,9 +122,9 @@ export class HeSchemaService {
|
|
|
116
122
|
schemas() {
|
|
117
123
|
return this.schemas$.pipe(take(1)).toPromise();
|
|
118
124
|
}
|
|
119
|
-
loadSortConfig() {
|
|
125
|
+
loadSortConfig(version) {
|
|
120
126
|
this.sortConfigLoading = true;
|
|
121
|
-
return this.http.get(`${schemaBaseUrl()}/sort-config/config.json`).pipe(catchError(() => of(undefined)), map(data => {
|
|
127
|
+
return this.http.get(`${schemaBaseUrl(version)}/sort-config/config.json`).pipe(catchError(() => of(undefined)), map(data => {
|
|
122
128
|
this._sortConfig.next(data);
|
|
123
129
|
this.sortConfigLoading = false;
|
|
124
130
|
this.sortConfigLoaded = true;
|
|
@@ -157,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
|
|
|
157
163
|
providedIn: 'root'
|
|
158
164
|
}]
|
|
159
165
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2NoZW1hL3NjaGVtYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBYyxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RyxPQUFPLEVBT0wscUJBQXFCLEVBQ3RCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRTFDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLFdBQVcsT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFDO0FBRXRHLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQTJCLEVBQUUsRUFBRSxDQUM3RCxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQWdCLENBQUMsQ0FBQztBQUV4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Z0IsR0FBRyxJQUFJLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuSCxDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBa0I7UUFDMUMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLElBQUk7WUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2QyxPQUFPLGNBQWMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQy9DO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLE9BQU8sQ0FBQztTQUNoQjtJQUNILENBQUM7OEdBMUVVLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGZyb20sIG9mLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIG1lcmdlTWFwLCByZWR1Y2UsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc0VtcHR5LCBpc1VuZGVmaW5lZCwgaXNFcXVhbCB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMnO1xuaW1wb3J0IHsgU2NoZW1hVHlwZSwgTm9kZVR5cGUsIFNDSEVNQV9WRVJTSU9OLCBzb3J0Q29uZmlnLCBzb3J0S2V5c0J5VHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7XG4gIGRlZmluaXRpb25zLFxuICBkZWZpbml0aW9uLFxuICBJRGVmaW5pdGlvbixcbiAgSURlZmluaXRpb25PYmplY3QsXG4gIElEZWZpbml0aW9uQXJyYXksXG4gIElEZWZpbml0aW9uUHJvcGVydGllcyxcbiAgcmVjb21tZW5kZWRQcm9wZXJ0aWVzXG59IGZyb20gJ0BoZXN0aWEtZWFydGgvanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgaGVhZGVyc0Zyb21Dc3YgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYS1jb252ZXJ0JztcblxuaW1wb3J0IHsgYmFzZVVybCB9IGZyb20gJy4uL2NvbW1vbi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBzY2hlbWFCYXNlVXJsID0gKHZlcnNpb24/OiBzdHJpbmcpID0+IGAke2Jhc2VVcmwoKX0vc2NoZW1hLyR7dmVyc2lvbiB8fCBTQ0hFTUFfVkVSU0lPTn1gO1xuXG5leHBvcnQgY29uc3QgbGlua1R5cGVFbmFibGVkID0gKHR5cGU6IFNjaGVtYVR5cGUgfCBOb2RlVHlwZSkgPT5cbiAgW05vZGVUeXBlLkN5Y2xlLCBOb2RlVHlwZS5JbXBhY3RBc3Nlc3NtZW50LCBOb2RlVHlwZS5TaXRlLCBOb2RlVHlwZS5Tb3VyY2UsIE5vZGVUeXBlLlRlcm1dLmluY2x1ZGVzKHR5cGUgYXMgTm9kZVR5cGUpO1xuXG5leHBvcnQgY29uc3QgcmVmVG9TY2hlbWFUeXBlID0gKHJlZiA9ICcnKSA9PlxuICByZWYuc3RhcnRzV2l0aCgnaHR0cCcpID8gcmVmIDogKHJlZi5zdWJzdHJpbmcoMikucmVwbGFjZSgnLWRlZXAnLCAnJykucmVwbGFjZSgnLmpzb24jJywgJycpIGFzIFNjaGVtYVR5cGUpO1xuXG5leHBvcnQgY29uc3QgZGVmaW5pdGlvblRvU2NoZW1hVHlwZSA9ICh7IHRpdGxlLCAkcmVmIH06IElEZWZpbml0aW9uT2JqZWN0KSA9PlxuICAodGl0bGUgfHwgcmVmVG9TY2hlbWFUeXBlKCRyZWYpKSBhcyBTY2hlbWFUeXBlO1xuXG5jb25zdCBzY2hlbWFUeXBlUHJvcGVydGllcyA9IChwcm9wZXJ0aWVzOiBJRGVmaW5pdGlvblByb3BlcnRpZXMsIHNjaGVtYVR5cGU/OiBTY2hlbWFUeXBlKSA9PlxuICBzY2hlbWFUeXBlID8gWyd0eXBlJywgLi4uKCdpZCcgaW4gcHJvcGVydGllcyAmJiBzY2hlbWFUeXBlICE9PSBTY2hlbWFUeXBlLlRlcm0gPyBbJ2lkJ10gOiBbXSldIDogW107XG5cbmNvbnN0IGRlZmluaXRpb25Ub1NjaGVtYSA9ICh7IHJlcXVpcmVkLCBwcm9wZXJ0aWVzIH06IElEZWZpbml0aW9uT2JqZWN0KSA9PiAoe1xuICByZXF1aXJlZDogcmVxdWlyZWQgfHwgW10sXG4gIHByb3BlcnRpZXM6IHByb3BlcnRpZXMgfHwge31cbn0pO1xuXG5leHBvcnQgY29uc3Qgc2NoZW1hUmVxdWlyZWRQcm9wZXJ0aWVzID0gKHNjaGVtYXM6IGRlZmluaXRpb25zLCBkZWY6IElEZWZpbml0aW9uT2JqZWN0KSA9PiB7XG4gIGNvbnN0IHNjaGVtYVR5cGUgPSBkZWZpbml0aW9uVG9TY2hlbWFUeXBlKGRlZik7XG4gIGNvbnN0IHNjaGVtYSA9IHNjaGVtYXNbc2NoZW1hVHlwZV0gYXMgSURlZmluaXRpb25PYmplY3Q7XG4gIGNvbnN0IHsgcmVxdWlyZWQsIHByb3BlcnRpZXMgfSA9IHNjaGVtYSB8fCBkZWZpbml0aW9uVG9TY2hlbWEoZGVmKTtcbiAgY29uc3QgcHJvcHMgPSBbLi4uKHJlcXVpcmVkIHx8IFtdKSwgLi4ucmVjb21tZW5kZWRQcm9wZXJ0aWVzKHNjaGVtYSB8fCBkZWYpXS5maWx0ZXIoa2V5ID0+ICFwcm9wZXJ0aWVzW2tleV0uaW50ZXJuYWwpOyAvLyByZW1vdmUgaW50ZXJuYWwgcHJvcGVydGllc1xuICByZXR1cm4ge1xuICAgIHNjaGVtYVR5cGUsXG4gICAgcHJvcGVydGllczogWy4uLnByb3BzLCAuLi5zY2hlbWFUeXBlUHJvcGVydGllcyhwcm9wZXJ0aWVzLCBzY2hlbWFUeXBlKV0ubWFwKGtleSA9PiAoe1xuICAgICAga2V5LFxuICAgICAgdmFsdWU6IHByb3BlcnRpZXNba2V5XVxuICAgIH0pKVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHZhbHVlVHlwZVRvRGVmYXVsdCA9IHtcbiAgbnVtYmVyOiAnJyxcbiAgaW50ZWdlcjogJycsXG4gIGJvb2xlYW46IGZhbHNlLFxuICBzdHJpbmc6ICcnXG59O1xuXG5leHBvcnQgY29uc3QgbmVzdGluZ1R5cGVFbmFibGVkID0gKHNjaGVtYVR5cGU6IFNjaGVtYVR5cGUpID0+XG4gICFbXG4gICAgU2NoZW1hVHlwZS5DeWNsZSxcbiAgICBTY2hlbWFUeXBlLkltcGFjdEFzc2Vzc21lbnQsXG4gICAgU2NoZW1hVHlwZS5PcmdhbmlzYXRpb24sXG4gICAgU2NoZW1hVHlwZS5TaXRlLFxuICAgIFNjaGVtYVR5cGUuU291cmNlXG4gIF0uaW5jbHVkZXMoc2NoZW1hVHlwZSk7XG5cbmV4cG9ydCBjb25zdCBuZXN0aW5nRW5hYmxlZCA9IChzY2hlbWFUeXBlOiBTY2hlbWFUeXBlLCBrZXk6IHN0cmluZykgPT5cbiAgbmVzdGluZ1R5cGVFbmFibGVkKHNjaGVtYVR5cGUpIHx8IFsndHlwZScsICdpZCddLmluY2x1ZGVzKGtleSk7XG5cbmV4cG9ydCBjb25zdCBzY2hlbWFUeXBlVG9EZWZhdWx0VmFsdWUgPSAoc2NoZW1hczogZGVmaW5pdGlvbnMsIHByb3A6IGRlZmluaXRpb24sIG5lc3RlZCA9IGZhbHNlKTogYW55ID0+IHtcbiAgY29uc3QgbWFwcGluZ3M6IHtcbiAgICBba2V5OiBzdHJpbmddOiAoKSA9PiBhbnk7XG4gIH0gPSB7XG4gICAgb2JqZWN0OiAoKSA9PiB7XG4gICAgICBjb25zdCB7IHNjaGVtYVR5cGUsIHByb3BlcnRpZXMgfSA9IHNjaGVtYVJlcXVpcmVkUHJvcGVydGllcyhzY2hlbWFzLCBwcm9wIGFzIElEZWZpbml0aW9uT2JqZWN0KTtcbiAgICAgIHJldHVybiBwcm9wZXJ0aWVzXG4gICAgICAgIC5maWx0ZXIoKHsga2V5IH0pID0+ICFuZXN0ZWQgfHwgbmVzdGluZ0VuYWJsZWQoc2NoZW1hVHlwZSwga2V5KSlcbiAgICAgICAgLm1hcCgoeyBrZXksIHZhbHVlIH0pID0+ICh7IGtleSwgdmFsdWU6IHNjaGVtYVR5cGVUb0RlZmF1bHRWYWx1ZShzY2hlbWFzLCB2YWx1ZSwgdHJ1ZSkgfSkpXG4gICAgICAgIC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+ICh7IC4uLnByZXYsIFtjdXJyLmtleV06IGN1cnIudmFsdWUgfSksIHt9KTtcbiAgICB9LFxuICAgIGFycmF5OiAoKSA9PiB7XG4gICAgICBjb25zdCB7IGl0ZW1zIH0gPSBwcm9wIGFzIElEZWZpbml0aW9uQXJyYXk7XG4gICAgICByZXR1cm4gW3NjaGVtYVR5cGVUb0RlZmF1bHRWYWx1ZShzY2hlbWFzLCBpdGVtcywgdHJ1ZSldO1xuICAgIH0sXG4gICAgZGVmYXVsdDogKCkgPT4gcHJvcC5kZWZhdWx0IHx8ICh2YWx1ZVR5cGVUb0RlZmF1bHQgYXMgYW55KVtwcm9wLnR5cGUgYXMgc3RyaW5nXVxuICB9O1xuICBjb25zdCBtYXBwZWQgPSAhcHJvcC50eXBlXG4gICAgPyBtYXBwaW5ncy5vYmplY3RcbiAgICA6IChwcm9wLnR5cGUgYXMgc3RyaW5nKSBpbiBtYXBwaW5nc1xuICAgID8gbWFwcGluZ3NbcHJvcC50eXBlIGFzIHN0cmluZ11cbiAgICA6IG1hcHBpbmdzLmRlZmF1bHQ7XG4gIHJldHVybiBtYXBwZWQoKTtcbn07XG5cbmNvbnN0IHR5cGVQcm9wZXJ0aWVzS2V5czoge1xuICBbdHlwZSBpbiBTY2hlbWFUeXBlXT86IHN0cmluZ1tdO1xufSA9IHtcbiAgW1NjaGVtYVR5cGUuVGVybV06IFsndHlwZScsICdpZCcsICdAaWQnLCAnbmFtZSddXG59O1xuXG5leHBvcnQgY29uc3QgYXZhaWxhYmxlUHJvcGVydGllcyA9IChcbiAgc2NoZW1hOiBkZWZpbml0aW9uLFxuICBzY2hlbWFUeXBlOiBTY2hlbWFUeXBlLFxuICB2YWx1ZTogYW55LFxuICBpc1RvcExldmVsID0gdHJ1ZSxcbiAgc2tpcEV4aXN0aW5nTm9kZSA9IHRydWVcbikgPT4ge1xuICBjb25zdCB7IHByb3BlcnRpZXMgfSA9ICdwcm9wZXJ0aWVzJyBpbiBzY2hlbWEgPyBzY2hlbWEgOiB7IHByb3BlcnRpZXM6IHt9IH07XG4gIGNvbnN0IGtleXMgPSBzY2hlbWFUeXBlIGluIHR5cGVQcm9wZXJ0aWVzS2V5cyA/IHR5cGVQcm9wZXJ0aWVzS2V5c1tzY2hlbWFUeXBlXSA6IE9iamVjdC5rZXlzKHByb3BlcnRpZXMgfHwge30pO1xuICBjb25zdCBpbnRlcm5hbFByb3BzID0ga2V5cz8uZmlsdGVyKHByb3AgPT4gcHJvcGVydGllc1twcm9wXS5pbnRlcm5hbCk7XG4gIGNvbnN0IGV4aXN0aW5nID0gW1xuICAgIC4uLihpc0VtcHR5KHZhbHVlKSA/IFtdIDogT2JqZWN0LmtleXModmFsdWUpLmZpbHRlcih2ID0+ICFpc0VtcHR5KHZhbHVlW3ZdKSB8fCB2YWx1ZVt2XSA9PT0gJycpKSxcbiAgICAuLi5pbnRlcm5hbFByb3BzISxcbiAgICAuLi4oaXNUb3BMZXZlbCA/IFtdIDogWydAaWQnXSksXG4gICAgJ0B0eXBlJ1xuICBdO1xuICBjb25zdCBhdmFpbGFibGUgPSBrZXlzXG4gICAgPy5maWx0ZXIocHJvcCA9PiAhZXhpc3RpbmcuaW5jbHVkZXMocHJvcCkpXG4gICAgLnJlZHVjZSgocHJldjogYW55LCBwcm9wKSA9PiB7XG4gICAgICBwcmV2W3Byb3BdID0gcHJvcGVydGllc1twcm9wXTtcbiAgICAgIHJldHVybiBwcmV2O1xuICAgIH0sIHt9KTtcbiAgLy8gYXZvaWQgZWRpdGluZyBhbiBleGlzdGluZyBub2RlXG4gIGNvbnN0IGlzRXhpc3RpbmdOb2RlID1cbiAgICAhaXNVbmRlZmluZWQodmFsdWUpICYmICFpc1VuZGVmaW5lZCh2YWx1ZVsnQHR5cGUnXSB8fCB2YWx1ZS50eXBlKSAmJiAhaXNVbmRlZmluZWQodmFsdWVbJ0BpZCddKTtcbiAgcmV0dXJuIGlzRXhpc3RpbmdOb2RlICYmIHNraXBFeGlzdGluZ05vZGUgPyB7fSA6IGF2YWlsYWJsZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NjaGVtYUlyaSA9IChzY2hlbWE/OiBJRGVmaW5pdGlvbk9iamVjdCkgPT5cbiAgaXNFcXVhbChPYmplY3Qua2V5cyhzY2hlbWE/LnByb3BlcnRpZXMgfHwge30pLCBbJ0BpZCddKSAmJiBpc0VxdWFsKHNjaGVtYT8ucmVxdWlyZWQgfHwgW10sIFsnQGlkJ10pO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIZVNjaGVtYVNlcnZpY2Uge1xuICBwcml2YXRlIHNjaGVtYXNMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgc2NoZW1hc0xvYWRlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9zY2hlbWFzID0gbmV3IFJlcGxheVN1YmplY3Q8ZGVmaW5pdGlvbnM+KDEpO1xuXG4gIHByaXZhdGUgc29ydENvbmZpZ0xvYWRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzb3J0Q29uZmlnTG9hZGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX3NvcnRDb25maWcgPSBuZXcgUmVwbGF5U3ViamVjdDxzb3J0Q29uZmlnPigxKTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCkge31cblxuICBwcml2YXRlIGxvYWRTY2hlbWFzKCkge1xuICAgIHRoaXMuc2NoZW1hc0xvYWRpbmcgPSB0cnVlO1xuICAgIHJldHVybiBmcm9tKE9iamVjdC52YWx1ZXMoU2NoZW1hVHlwZSkpLnBpcGUoXG4gICAgICBtZXJnZU1hcCh0eXBlID0+XG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8SURlZmluaXRpb24+KGAke3NjaGVtYUJhc2VVcmwoKX0vanNvbi1zY2hlbWEvJHt0eXBlfS5qc29uYCkucGlwZShcbiAgICAgICAgICBtYXAoc2NoZW1hID0+ICh7IHR5cGUsIHNjaGVtYSB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih7IHR5cGUsIHNjaGVtYTogeyBwcm9wZXJ0aWVzOiBbXSB9IH0pKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgcmVkdWNlKChwcmV2LCB7IHR5cGUsIHNjaGVtYSB9KSA9PiAoeyAuLi5wcmV2LCBbdHlwZV06IHNjaGVtYSB9KSwge30gYXMgZGVmaW5pdGlvbnMpLFxuICAgICAgbWFwKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLl9zY2hlbWFzLm5leHQoZGF0YSk7XG4gICAgICAgIHRoaXMuc2NoZW1hc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zY2hlbWFzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNjaGVtYXMkKCkge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYXNMb2FkaW5nIHx8IHRoaXMuc2NoZW1hc0xvYWRlZCA/IHRoaXMuX3NjaGVtYXMuYXNPYnNlcnZhYmxlKCkgOiB0aGlzLmxvYWRTY2hlbWFzKCk7XG4gIH1cblxuICBwdWJsaWMgc2NoZW1hcygpIHtcbiAgICByZXR1cm4gdGhpcy5zY2hlbWFzJC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkU29ydENvbmZpZygpIHtcbiAgICB0aGlzLnNvcnRDb25maWdMb2FkaW5nID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxzb3J0Q29uZmlnPihgJHtzY2hlbWFCYXNlVXJsKCl9L3NvcnQtY29uZmlnL2NvbmZpZy5qc29uYCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YodW5kZWZpbmVkIGFzIGFueSBhcyBzb3J0Q29uZmlnKSksXG4gICAgICBtYXAoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuX3NvcnRDb25maWcubmV4dChkYXRhKTtcbiAgICAgICAgdGhpcy5zb3J0Q29uZmlnTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNvcnRDb25maWdMb2FkZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc29ydENvbmZpZyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc29ydENvbmZpZ0xvYWRpbmcgfHwgdGhpcy5zb3J0Q29uZmlnTG9hZGVkID8gdGhpcy5fc29ydENvbmZpZy5hc09ic2VydmFibGUoKSA6IHRoaXMubG9hZFNvcnRDb25maWcoKTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0Q29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLnNvcnRDb25maWckLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYW5kIHNvcnQgKGlmIHBvc3NpYmxlKSBoZWFkZXJzIGZyb20gQ1NWIGNvbnRlbnQgYWNjb3JkaW5nIHRvIHRoZSBzY2hlbWEgb3JkZXIuXG4gICAqIFRoaXMgd2lsbCBsb2FkIHRoZSBzb3J0IGNvbmZpZ3VyYXRpb24gYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IHNjaGVtYSB2ZXJzaW9uLlxuICAgKlxuICAgKiBAcGFyYW0gY3N2Q29udGVudCBUaGUgY29udGVudCBhcyBhIHN0cmluZ1xuICAgKiBAcmV0dXJucyBMaXN0IG9mIHN0cmluZ3MgYXMgT2JzZXJ2YWJsZSB3aGVuIHBhcnNpbmcgLyBzb3J0aW5nIGlzIGRvbmUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcGFyc2VIZWFkZXJzKGNzdkNvbnRlbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBoZWFkZXJzRnJvbUNzdihjc3ZDb250ZW50KTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgdGhpcy5zb3J0Q29uZmlnKCk7XG4gICAgICByZXR1cm4gc29ydEtleXNCeVR5cGUoaGVhZGVycywgJ2FzYycsIGNvbmZpZyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXR1cm4gaGVhZGVycztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2NoZW1hL3NjaGVtYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBYyxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RyxPQUFPLEVBT0wscUJBQXFCLEVBQ3RCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRTFDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLGdCQUFnQixPQUFPLElBQUksY0FBYyxFQUFFLENBQUM7QUFFM0csTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBMkIsRUFBRSxFQUFFLENBQzdELENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBZ0IsQ0FBQyxDQUFDO0FB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TTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgZnJvbSwgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgbWVyZ2VNYXAsIHJlZHVjZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGlzRW1wdHksIGlzVW5kZWZpbmVkLCBpc0VxdWFsIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5pbXBvcnQgeyBTY2hlbWFUeXBlLCBOb2RlVHlwZSwgU0NIRU1BX1ZFUlNJT04sIHNvcnRDb25maWcsIHNvcnRLZXlzQnlUeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHtcbiAgZGVmaW5pdGlvbnMsXG4gIGRlZmluaXRpb24sXG4gIElEZWZpbml0aW9uLFxuICBJRGVmaW5pdGlvbk9iamVjdCxcbiAgSURlZmluaXRpb25BcnJheSxcbiAgSURlZmluaXRpb25Qcm9wZXJ0aWVzLFxuICByZWNvbW1lbmRlZFByb3BlcnRpZXNcbn0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9qc29uLXNjaGVtYSc7XG5pbXBvcnQgeyBoZWFkZXJzRnJvbUNzdiB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hLWNvbnZlcnQnO1xuXG5pbXBvcnQgeyBiYXNlVXJsIH0gZnJvbSAnLi4vY29tbW9uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IHNjaGVtYUJhc2VVcmwgPSAodmVyc2lvbj86IHN0cmluZykgPT4gYCR7YmFzZVVybCgpfS9zY2hlbWEtZGF0YS8ke3ZlcnNpb24gfHwgU0NIRU1BX1ZFUlNJT059YDtcblxuZXhwb3J0IGNvbnN0IGxpbmtUeXBlRW5hYmxlZCA9ICh0eXBlOiBTY2hlbWFUeXBlIHwgTm9kZVR5cGUpID0+XG4gIFtOb2RlVHlwZS5DeWNsZSwgTm9kZVR5cGUuSW1wYWN0QXNzZXNzbWVudCwgTm9kZVR5cGUuU2l0ZSwgTm9kZVR5cGUuU291cmNlLCBOb2RlVHlwZS5UZXJtXS5pbmNsdWRlcyh0eXBlIGFzIE5vZGVUeXBlKTtcblxuZXhwb3J0IGNvbnN0IHJlZlRvU2NoZW1hVHlwZSA9IChyZWYgPSAnJykgPT5cbiAgcmVmLnN0YXJ0c1dpdGgoJ2h0dHAnKSA/IHJlZiA6IChyZWYuc3Vic3RyaW5nKDIpLnJlcGxhY2UoJy1kZWVwJywgJycpLnJlcGxhY2UoJy5qc29uIycsICcnKSBhcyBTY2hlbWFUeXBlKTtcblxuZXhwb3J0IGNvbnN0IGRlZmluaXRpb25Ub1NjaGVtYVR5cGUgPSAoeyB0aXRsZSwgJHJlZiB9OiBJRGVmaW5pdGlvbk9iamVjdCkgPT5cbiAgKHRpdGxlIHx8IHJlZlRvU2NoZW1hVHlwZSgkcmVmKSkgYXMgU2NoZW1hVHlwZTtcblxuY29uc3Qgc2NoZW1hVHlwZVByb3BlcnRpZXMgPSAocHJvcGVydGllczogSURlZmluaXRpb25Qcm9wZXJ0aWVzLCBzY2hlbWFUeXBlPzogU2NoZW1hVHlwZSkgPT5cbiAgc2NoZW1hVHlwZSA/IFsndHlwZScsIC4uLignaWQnIGluIHByb3BlcnRpZXMgJiYgc2NoZW1hVHlwZSAhPT0gU2NoZW1hVHlwZS5UZXJtID8gWydpZCddIDogW10pXSA6IFtdO1xuXG5jb25zdCBkZWZpbml0aW9uVG9TY2hlbWEgPSAoeyByZXF1aXJlZCwgcHJvcGVydGllcyB9OiBJRGVmaW5pdGlvbk9iamVjdCkgPT4gKHtcbiAgcmVxdWlyZWQ6IHJlcXVpcmVkIHx8IFtdLFxuICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzIHx8IHt9XG59KTtcblxuZXhwb3J0IGNvbnN0IHNjaGVtYVJlcXVpcmVkUHJvcGVydGllcyA9IChzY2hlbWFzOiBkZWZpbml0aW9ucywgZGVmOiBJRGVmaW5pdGlvbk9iamVjdCkgPT4ge1xuICBjb25zdCBzY2hlbWFUeXBlID0gZGVmaW5pdGlvblRvU2NoZW1hVHlwZShkZWYpO1xuICBjb25zdCBzY2hlbWEgPSBzY2hlbWFzW3NjaGVtYVR5cGVdIGFzIElEZWZpbml0aW9uT2JqZWN0O1xuICBjb25zdCB7IHJlcXVpcmVkLCBwcm9wZXJ0aWVzIH0gPSBzY2hlbWEgfHwgZGVmaW5pdGlvblRvU2NoZW1hKGRlZik7XG4gIGNvbnN0IHByb3BzID0gWy4uLihyZXF1aXJlZCB8fCBbXSksIC4uLnJlY29tbWVuZGVkUHJvcGVydGllcyhzY2hlbWEgfHwgZGVmKV0uZmlsdGVyKGtleSA9PiAhcHJvcGVydGllc1trZXldLmludGVybmFsKTsgLy8gcmVtb3ZlIGludGVybmFsIHByb3BlcnRpZXNcbiAgcmV0dXJuIHtcbiAgICBzY2hlbWFUeXBlLFxuICAgIHByb3BlcnRpZXM6IFsuLi5wcm9wcywgLi4uc2NoZW1hVHlwZVByb3BlcnRpZXMocHJvcGVydGllcywgc2NoZW1hVHlwZSldLm1hcChrZXkgPT4gKHtcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlOiBwcm9wZXJ0aWVzW2tleV1cbiAgICB9KSlcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB2YWx1ZVR5cGVUb0RlZmF1bHQgPSB7XG4gIG51bWJlcjogJycsXG4gIGludGVnZXI6ICcnLFxuICBib29sZWFuOiBmYWxzZSxcbiAgc3RyaW5nOiAnJ1xufTtcblxuZXhwb3J0IGNvbnN0IG5lc3RpbmdUeXBlRW5hYmxlZCA9IChzY2hlbWFUeXBlOiBTY2hlbWFUeXBlKSA9PlxuICAhW1xuICAgIFNjaGVtYVR5cGUuQ3ljbGUsXG4gICAgU2NoZW1hVHlwZS5JbXBhY3RBc3Nlc3NtZW50LFxuICAgIFNjaGVtYVR5cGUuT3JnYW5pc2F0aW9uLFxuICAgIFNjaGVtYVR5cGUuU2l0ZSxcbiAgICBTY2hlbWFUeXBlLlNvdXJjZVxuICBdLmluY2x1ZGVzKHNjaGVtYVR5cGUpO1xuXG5leHBvcnQgY29uc3QgbmVzdGluZ0VuYWJsZWQgPSAoc2NoZW1hVHlwZTogU2NoZW1hVHlwZSwga2V5OiBzdHJpbmcpID0+XG4gIG5lc3RpbmdUeXBlRW5hYmxlZChzY2hlbWFUeXBlKSB8fCBbJ3R5cGUnLCAnaWQnXS5pbmNsdWRlcyhrZXkpO1xuXG5leHBvcnQgY29uc3Qgc2NoZW1hVHlwZVRvRGVmYXVsdFZhbHVlID0gKHNjaGVtYXM6IGRlZmluaXRpb25zLCBwcm9wOiBkZWZpbml0aW9uLCBuZXN0ZWQgPSBmYWxzZSk6IGFueSA9PiB7XG4gIGNvbnN0IG1hcHBpbmdzOiB7XG4gICAgW2tleTogc3RyaW5nXTogKCkgPT4gYW55O1xuICB9ID0ge1xuICAgIG9iamVjdDogKCkgPT4ge1xuICAgICAgY29uc3QgeyBzY2hlbWFUeXBlLCBwcm9wZXJ0aWVzIH0gPSBzY2hlbWFSZXF1aXJlZFByb3BlcnRpZXMoc2NoZW1hcywgcHJvcCBhcyBJRGVmaW5pdGlvbk9iamVjdCk7XG4gICAgICByZXR1cm4gcHJvcGVydGllc1xuICAgICAgICAuZmlsdGVyKCh7IGtleSB9KSA9PiAhbmVzdGVkIHx8IG5lc3RpbmdFbmFibGVkKHNjaGVtYVR5cGUsIGtleSkpXG4gICAgICAgIC5tYXAoKHsga2V5LCB2YWx1ZSB9KSA9PiAoeyBrZXksIHZhbHVlOiBzY2hlbWFUeXBlVG9EZWZhdWx0VmFsdWUoc2NoZW1hcywgdmFsdWUsIHRydWUpIH0pKVxuICAgICAgICAucmVkdWNlKChwcmV2LCBjdXJyKSA9PiAoeyAuLi5wcmV2LCBbY3Vyci5rZXldOiBjdXJyLnZhbHVlIH0pLCB7fSk7XG4gICAgfSxcbiAgICBhcnJheTogKCkgPT4ge1xuICAgICAgY29uc3QgeyBpdGVtcyB9ID0gcHJvcCBhcyBJRGVmaW5pdGlvbkFycmF5O1xuICAgICAgcmV0dXJuIFtzY2hlbWFUeXBlVG9EZWZhdWx0VmFsdWUoc2NoZW1hcywgaXRlbXMsIHRydWUpXTtcbiAgICB9LFxuICAgIGRlZmF1bHQ6ICgpID0+IHByb3AuZGVmYXVsdCB8fCAodmFsdWVUeXBlVG9EZWZhdWx0IGFzIGFueSlbcHJvcC50eXBlIGFzIHN0cmluZ11cbiAgfTtcbiAgY29uc3QgbWFwcGVkID0gIXByb3AudHlwZVxuICAgID8gbWFwcGluZ3Mub2JqZWN0XG4gICAgOiAocHJvcC50eXBlIGFzIHN0cmluZykgaW4gbWFwcGluZ3NcbiAgICA/IG1hcHBpbmdzW3Byb3AudHlwZSBhcyBzdHJpbmddXG4gICAgOiBtYXBwaW5ncy5kZWZhdWx0O1xuICByZXR1cm4gbWFwcGVkKCk7XG59O1xuXG5jb25zdCB0eXBlUHJvcGVydGllc0tleXM6IHtcbiAgW3R5cGUgaW4gU2NoZW1hVHlwZV0/OiBzdHJpbmdbXTtcbn0gPSB7XG4gIFtTY2hlbWFUeXBlLlRlcm1dOiBbJ3R5cGUnLCAnaWQnLCAnQGlkJywgJ25hbWUnXVxufTtcblxuZXhwb3J0IGNvbnN0IGF2YWlsYWJsZVByb3BlcnRpZXMgPSAoXG4gIHNjaGVtYTogZGVmaW5pdGlvbixcbiAgc2NoZW1hVHlwZTogU2NoZW1hVHlwZSxcbiAgdmFsdWU6IGFueSxcbiAgaXNUb3BMZXZlbCA9IHRydWUsXG4gIHNraXBFeGlzdGluZ05vZGUgPSB0cnVlXG4pID0+IHtcbiAgY29uc3QgeyBwcm9wZXJ0aWVzIH0gPSAncHJvcGVydGllcycgaW4gc2NoZW1hID8gc2NoZW1hIDogeyBwcm9wZXJ0aWVzOiB7fSB9O1xuICBjb25zdCBrZXlzID0gc2NoZW1hVHlwZSBpbiB0eXBlUHJvcGVydGllc0tleXMgPyB0eXBlUHJvcGVydGllc0tleXNbc2NoZW1hVHlwZV0gOiBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzIHx8IHt9KTtcbiAgY29uc3QgaW50ZXJuYWxQcm9wcyA9IGtleXM/LmZpbHRlcihwcm9wID0+IHByb3BlcnRpZXNbcHJvcF0uaW50ZXJuYWwpO1xuICBjb25zdCBleGlzdGluZyA9IFtcbiAgICAuLi4oaXNFbXB0eSh2YWx1ZSkgPyBbXSA6IE9iamVjdC5rZXlzKHZhbHVlKS5maWx0ZXIodiA9PiAhaXNFbXB0eSh2YWx1ZVt2XSkgfHwgdmFsdWVbdl0gPT09ICcnKSksXG4gICAgLi4uaW50ZXJuYWxQcm9wcyEsXG4gICAgLi4uKGlzVG9wTGV2ZWwgPyBbXSA6IFsnQGlkJ10pLFxuICAgICdAdHlwZSdcbiAgXTtcbiAgY29uc3QgYXZhaWxhYmxlID0ga2V5c1xuICAgID8uZmlsdGVyKHByb3AgPT4gIWV4aXN0aW5nLmluY2x1ZGVzKHByb3ApKVxuICAgIC5yZWR1Y2UoKHByZXY6IGFueSwgcHJvcCkgPT4ge1xuICAgICAgcHJldltwcm9wXSA9IHByb3BlcnRpZXNbcHJvcF07XG4gICAgICByZXR1cm4gcHJldjtcbiAgICB9LCB7fSk7XG4gIC8vIGF2b2lkIGVkaXRpbmcgYW4gZXhpc3Rpbmcgbm9kZVxuICBjb25zdCBpc0V4aXN0aW5nTm9kZSA9XG4gICAgIWlzVW5kZWZpbmVkKHZhbHVlKSAmJiAhaXNVbmRlZmluZWQodmFsdWVbJ0B0eXBlJ10gfHwgdmFsdWUudHlwZSkgJiYgIWlzVW5kZWZpbmVkKHZhbHVlWydAaWQnXSk7XG4gIHJldHVybiBpc0V4aXN0aW5nTm9kZSAmJiBza2lwRXhpc3RpbmdOb2RlID8ge30gOiBhdmFpbGFibGU7XG59O1xuXG5leHBvcnQgY29uc3QgaXNTY2hlbWFJcmkgPSAoc2NoZW1hPzogSURlZmluaXRpb25PYmplY3QpID0+XG4gIGlzRXF1YWwoT2JqZWN0LmtleXMoc2NoZW1hPy5wcm9wZXJ0aWVzIHx8IHt9KSwgWydAaWQnXSkgJiYgaXNFcXVhbChzY2hlbWE/LnJlcXVpcmVkIHx8IFtdLCBbJ0BpZCddKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGVTY2hlbWFTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzY2hlbWFzTG9hZGluZyA9IGZhbHNlO1xuICBwcml2YXRlIHNjaGVtYXNMb2FkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc2NoZW1hcyA9IG5ldyBSZXBsYXlTdWJqZWN0PGRlZmluaXRpb25zPigxKTtcblxuICBwcml2YXRlIHNvcnRDb25maWdMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgc29ydENvbmZpZ0xvYWRlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9zb3J0Q29uZmlnID0gbmV3IFJlcGxheVN1YmplY3Q8c29ydENvbmZpZz4oMSk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgcHVibGljIGdldFNjaGVtYSQodHlwZTogU2NoZW1hVHlwZSwgdmVyc2lvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PElEZWZpbml0aW9uPihgJHtzY2hlbWFCYXNlVXJsKHZlcnNpb24pfS9qc29uLXNjaGVtYS8ke3R5cGV9Lmpzb25gKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTY2hlbWEodHlwZTogU2NoZW1hVHlwZSwgdmVyc2lvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdldFNjaGVtYSQodHlwZSwgdmVyc2lvbikudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRTY2hlbWFzKHZlcnNpb24/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNjaGVtYXNMb2FkaW5nID0gdHJ1ZTtcbiAgICByZXR1cm4gZnJvbShPYmplY3QudmFsdWVzKFNjaGVtYVR5cGUpKS5waXBlKFxuICAgICAgbWVyZ2VNYXAodHlwZSA9PlxuICAgICAgICB0aGlzLmdldFNjaGVtYSQodHlwZSwgdmVyc2lvbikucGlwZShcbiAgICAgICAgICBtYXAoc2NoZW1hID0+ICh7IHR5cGUsIHNjaGVtYSB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih7IHR5cGUsIHNjaGVtYTogeyBwcm9wZXJ0aWVzOiBbXSB9IH0pKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgcmVkdWNlKChwcmV2LCB7IHR5cGUsIHNjaGVtYSB9KSA9PiAoeyAuLi5wcmV2LCBbdHlwZV06IHNjaGVtYSB9KSwge30gYXMgZGVmaW5pdGlvbnMpLFxuICAgICAgbWFwKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLl9zY2hlbWFzLm5leHQoZGF0YSk7XG4gICAgICAgIHRoaXMuc2NoZW1hc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zY2hlbWFzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNjaGVtYXMkKCkge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYXNMb2FkaW5nIHx8IHRoaXMuc2NoZW1hc0xvYWRlZCA/IHRoaXMuX3NjaGVtYXMuYXNPYnNlcnZhYmxlKCkgOiB0aGlzLmxvYWRTY2hlbWFzKCk7XG4gIH1cblxuICBwdWJsaWMgc2NoZW1hcygpIHtcbiAgICByZXR1cm4gdGhpcy5zY2hlbWFzJC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkU29ydENvbmZpZyh2ZXJzaW9uPzogc3RyaW5nKSB7XG4gICAgdGhpcy5zb3J0Q29uZmlnTG9hZGluZyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8c29ydENvbmZpZz4oYCR7c2NoZW1hQmFzZVVybCh2ZXJzaW9uKX0vc29ydC1jb25maWcvY29uZmlnLmpzb25gKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih1bmRlZmluZWQgYXMgYW55IGFzIHNvcnRDb25maWcpKSxcbiAgICAgIG1hcChkYXRhID0+IHtcbiAgICAgICAgdGhpcy5fc29ydENvbmZpZy5uZXh0KGRhdGEpO1xuICAgICAgICB0aGlzLnNvcnRDb25maWdMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc29ydENvbmZpZ0xvYWRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBzb3J0Q29uZmlnJCgpIHtcbiAgICByZXR1cm4gdGhpcy5zb3J0Q29uZmlnTG9hZGluZyB8fCB0aGlzLnNvcnRDb25maWdMb2FkZWQgPyB0aGlzLl9zb3J0Q29uZmlnLmFzT2JzZXJ2YWJsZSgpIDogdGhpcy5sb2FkU29ydENvbmZpZygpO1xuICB9XG5cbiAgcHVibGljIHNvcnRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc29ydENvbmZpZyQucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhbmQgc29ydCAoaWYgcG9zc2libGUpIGhlYWRlcnMgZnJvbSBDU1YgY29udGVudCBhY2NvcmRpbmcgdG8gdGhlIHNjaGVtYSBvcmRlci5cbiAgICogVGhpcyB3aWxsIGxvYWQgdGhlIHNvcnQgY29uZmlndXJhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgc2NoZW1hIHZlcnNpb24uXG4gICAqXG4gICAqIEBwYXJhbSBjc3ZDb250ZW50IFRoZSBjb250ZW50IGFzIGEgc3RyaW5nXG4gICAqIEByZXR1cm5zIExpc3Qgb2Ygc3RyaW5ncyBhcyBPYnNlcnZhYmxlIHdoZW4gcGFyc2luZyAvIHNvcnRpbmcgaXMgZG9uZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBwYXJzZUhlYWRlcnMoY3N2Q29udGVudDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IGhlYWRlcnNGcm9tQ3N2KGNzdkNvbnRlbnQpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLnNvcnRDb25maWcoKTtcbiAgICAgIHJldHVybiBzb3J0S2V5c0J5VHlwZShoZWFkZXJzLCAnYXNjJywgY29uZmlnKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiBoZWFkZXJzO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -5011,7 +5011,7 @@ const primaryProduct = ({ products }) => (products || []).find(({ primary }) =>
|
|
|
5011
5011
|
const logsKey = (node) => ((node.type || node['@type']) === NodeType.Cycle ? null : node.term['@id']);
|
|
5012
5012
|
|
|
5013
5013
|
/* eslint-disable complexity */
|
|
5014
|
-
const schemaBaseUrl = (version) => `${baseUrl()}/schema/${version || SCHEMA_VERSION}`;
|
|
5014
|
+
const schemaBaseUrl = (version) => `${baseUrl()}/schema-data/${version || SCHEMA_VERSION}`;
|
|
5015
5015
|
const linkTypeEnabled = (type) => [NodeType.Cycle, NodeType.ImpactAssessment, NodeType.Site, NodeType.Source, NodeType.Term].includes(type);
|
|
5016
5016
|
const refToSchemaType = (ref = '') => ref.startsWith('http') ? ref : ref.substring(2).replace('-deep', '').replace('.json#', '');
|
|
5017
5017
|
const definitionToSchemaType = ({ title, $ref }) => (title || refToSchemaType($ref));
|
|
@@ -5103,9 +5103,15 @@ class HeSchemaService {
|
|
|
5103
5103
|
this.sortConfigLoaded = false;
|
|
5104
5104
|
this._sortConfig = new ReplaySubject(1);
|
|
5105
5105
|
}
|
|
5106
|
-
|
|
5106
|
+
getSchema$(type, version) {
|
|
5107
|
+
return this.http.get(`${schemaBaseUrl(version)}/json-schema/${type}.json`);
|
|
5108
|
+
}
|
|
5109
|
+
getSchema(type, version) {
|
|
5110
|
+
return this.getSchema$(type, version).toPromise();
|
|
5111
|
+
}
|
|
5112
|
+
loadSchemas(version) {
|
|
5107
5113
|
this.schemasLoading = true;
|
|
5108
|
-
return from(Object.values(SchemaType)).pipe(mergeMap(type => this.
|
|
5114
|
+
return from(Object.values(SchemaType)).pipe(mergeMap(type => this.getSchema$(type, version).pipe(map(schema => ({ type, schema })), catchError(() => of({ type, schema: { properties: [] } })))), reduce((prev, { type, schema }) => ({ ...prev, [type]: schema }), {}), map(data => {
|
|
5109
5115
|
this._schemas.next(data);
|
|
5110
5116
|
this.schemasLoading = false;
|
|
5111
5117
|
this.schemasLoaded = true;
|
|
@@ -5118,9 +5124,9 @@ class HeSchemaService {
|
|
|
5118
5124
|
schemas() {
|
|
5119
5125
|
return this.schemas$.pipe(take(1)).toPromise();
|
|
5120
5126
|
}
|
|
5121
|
-
loadSortConfig() {
|
|
5127
|
+
loadSortConfig(version) {
|
|
5122
5128
|
this.sortConfigLoading = true;
|
|
5123
|
-
return this.http.get(`${schemaBaseUrl()}/sort-config/config.json`).pipe(catchError(() => of(undefined)), map(data => {
|
|
5129
|
+
return this.http.get(`${schemaBaseUrl(version)}/sort-config/config.json`).pipe(catchError(() => of(undefined)), map(data => {
|
|
5124
5130
|
this._sortConfig.next(data);
|
|
5125
5131
|
this.sortConfigLoading = false;
|
|
5126
5132
|
this.sortConfigLoaded = true;
|