@hestia-earth/ui-components 0.27.32 → 0.27.33

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,8 @@ import { recommendedProperties } from '@hestia-earth/json-schema';
9
9
  import { headersFromCsv } from '@hestia-earth/schema-convert';
10
10
  import { baseUrl } from '../common/utils';
11
11
  import * as i0 from "@angular/core";
12
- export const schemaBaseUrl = (version) => `${baseUrl()}/schema-data/${version || SCHEMA_VERSION}`;
12
+ export const schemaBaseUrl = (version) => [baseUrl(), 'schema', version].filter(Boolean).join('/');
13
+ export const schemaDataBaseUrl = (version) => `${baseUrl()}/schema-data/${version || SCHEMA_VERSION}`;
13
14
  export const linkTypeEnabled = (type) => [NodeType.Cycle, NodeType.ImpactAssessment, NodeType.Site, NodeType.Source, NodeType.Term].includes(type);
14
15
  export const refToSchemaType = (ref = '') => ref.startsWith('http') ? ref : ref.substring(2).replace('-deep', '').replace('.json#', '');
15
16
  export const definitionToSchemaType = ({ title, $ref }) => (title || refToSchemaType($ref));
@@ -102,7 +103,7 @@ export class HeSchemaService {
102
103
  this._sortConfig = new ReplaySubject(1);
103
104
  }
104
105
  getSchema$(type, version) {
105
- return this.http.get(`${schemaBaseUrl(version)}/json-schema/${type}.json`);
106
+ return this.http.get(`${schemaDataBaseUrl(version)}/json-schema/${type}.json`);
106
107
  }
107
108
  getSchema(type, version) {
108
109
  return this.getSchema$(type, version).toPromise();
@@ -124,7 +125,7 @@ export class HeSchemaService {
124
125
  }
125
126
  loadSortConfig(version) {
126
127
  this.sortConfigLoading = true;
127
- return this.http.get(`${schemaBaseUrl(version)}/sort-config/config.json`).pipe(catchError(() => of(undefined)), map(data => {
128
+ return this.http.get(`${schemaDataBaseUrl(version)}/sort-config/config.json`).pipe(catchError(() => of(undefined)), map(data => {
128
129
  this._sortConfig.next(data);
129
130
  this.sortConfigLoading = false;
130
131
  this.sortConfigLoaded = true;
@@ -157,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
157
158
  providedIn: 'root'
158
159
  }]
159
160
  }] });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2NoZW1hL3NjaGVtYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFjLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hHLE9BQU8sRUFPTCxxQkFBcUIsRUFDdEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUxQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFnQixFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxnQkFBZ0IsT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFDO0FBRTNHLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQTJCLEVBQUUsRUFBRSxDQUM3RCxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxR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QUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUM5QixDQUFDO0lBQ0osQ0FBQzs4R0FqRlUsZUFBZTtrSEFBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBmcm9tLCBvZiwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBtZXJnZU1hcCwgcmVkdWNlLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNFbXB0eSwgaXNVbmRlZmluZWQsIGlzRXF1YWwgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcbmltcG9ydCB7IFNjaGVtYVR5cGUsIE5vZGVUeXBlLCBTQ0hFTUFfVkVSU0lPTiwgc29ydENvbmZpZywgc29ydEtleXNCeVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQge1xuICBkZWZpbml0aW9ucyxcbiAgZGVmaW5pdGlvbixcbiAgSURlZmluaXRpb24sXG4gIElEZWZpbml0aW9uT2JqZWN0LFxuICBJRGVmaW5pdGlvbkFycmF5LFxuICBJRGVmaW5pdGlvblByb3BlcnRpZXMsXG4gIHJlY29tbWVuZGVkUHJvcGVydGllc1xufSBmcm9tICdAaGVzdGlhLWVhcnRoL2pzb24tc2NoZW1hJztcbmltcG9ydCB7IGhlYWRlcnNGcm9tQ3N2IH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEtY29udmVydCc7XG5cbmltcG9ydCB7IGJhc2VVcmwgfSBmcm9tICcuLi9jb21tb24vdXRpbHMnO1xuXG5leHBvcnQgY29uc3Qgc2NoZW1hQmFzZVVybCA9ICh2ZXJzaW9uPzogc3RyaW5nKSA9PiBgJHtiYXNlVXJsKCl9L3NjaGVtYS1kYXRhLyR7dmVyc2lvbiB8fCBTQ0hFTUFfVkVSU0lPTn1gO1xuXG5leHBvcnQgY29uc3QgbGlua1R5cGVFbmFibGVkID0gKHR5cGU6IFNjaGVtYVR5cGUgfCBOb2RlVHlwZSkgPT5cbiAgW05vZGVUeXBlLkN5Y2xlLCBOb2RlVHlwZS5JbXBhY3RBc3Nlc3NtZW50LCBOb2RlVHlwZS5TaXRlLCBOb2RlVHlwZS5Tb3VyY2UsIE5vZGVUeXBlLlRlcm1dLmluY2x1ZGVzKHR5cGUgYXMgTm9kZVR5cGUpO1xuXG5leHBvcnQgY29uc3QgcmVmVG9TY2hlbWFUeXBlID0gKHJlZiA9ICcnKSA9PlxuICByZWYuc3RhcnRzV2l0aCgnaHR0cCcpID8gcmVmIDogKHJlZi5zdWJzdHJpbmcoMikucmVwbGFjZSgnLWRlZXAnLCAnJykucmVwbGFjZSgnLmpzb24jJywgJycpIGFzIFNjaGVtYVR5cGUpO1xuXG5leHBvcnQgY29uc3QgZGVmaW5pdGlvblRvU2NoZW1hVHlwZSA9ICh7IHRpdGxlLCAkcmVmIH06IElEZWZpbml0aW9uT2JqZWN0KSA9PlxuICAodGl0bGUgfHwgcmVmVG9TY2hlbWFUeXBlKCRyZWYpKSBhcyBTY2hlbWFUeXBlO1xuXG5jb25zdCBzY2hlbWFUeXBlUHJvcGVydGllcyA9IChwcm9wZXJ0aWVzOiBJRGVmaW5pdGlvblByb3BlcnRpZXMsIHNjaGVtYVR5cGU/OiBTY2hlbWFUeXBlKSA9PlxuICBzY2hlbWFUeXBlID8gWyd0eXBlJywgLi4uKCdpZCcgaW4gcHJvcGVydGllcyAmJiBzY2hlbWFUeXBlICE9PSBTY2hlbWFUeXBlLlRlcm0gPyBbJ2lkJ10gOiBbXSldIDogW107XG5cbmNvbnN0IGRlZmluaXRpb25Ub1NjaGVtYSA9ICh7IHJlcXVpcmVkLCBwcm9wZXJ0aWVzIH06IElEZWZpbml0aW9uT2JqZWN0KSA9PiAoe1xuICByZXF1aXJlZDogcmVxdWlyZWQgfHwgW10sXG4gIHByb3BlcnRpZXM6IHByb3BlcnRpZXMgfHwge31cbn0pO1xuXG5leHBvcnQgY29uc3Qgc2NoZW1hUmVxdWlyZWRQcm9wZXJ0aWVzID0gKHNjaGVtYXM6IGRlZmluaXRpb25zLCBkZWY6IElEZWZpbml0aW9uT2JqZWN0KSA9PiB7XG4gIGNvbnN0IHNjaGVtYVR5cGUgPSBkZWZpbml0aW9uVG9TY2hlbWFUeXBlKGRlZik7XG4gIGNvbnN0IHNjaGVtYSA9IHNjaGVtYXNbc2NoZW1hVHlwZV0gYXMgSURlZmluaXRpb25PYmplY3Q7XG4gIGNvbnN0IHsgcmVxdWlyZWQsIHByb3BlcnRpZXMgfSA9IHNjaGVtYSB8fCBkZWZpbml0aW9uVG9TY2hlbWEoZGVmKTtcbiAgY29uc3QgcHJvcHMgPSBbLi4uKHJlcXVpcmVkIHx8IFtdKSwgLi4ucmVjb21tZW5kZWRQcm9wZXJ0aWVzKHNjaGVtYSB8fCBkZWYpXS5maWx0ZXIoa2V5ID0+ICFwcm9wZXJ0aWVzW2tleV0uaW50ZXJuYWwpOyAvLyByZW1vdmUgaW50ZXJuYWwgcHJvcGVydGllc1xuICByZXR1cm4ge1xuICAgIHNjaGVtYVR5cGUsXG4gICAgcHJvcGVydGllczogWy4uLnByb3BzLCAuLi5zY2hlbWFUeXBlUHJvcGVydGllcyhwcm9wZXJ0aWVzLCBzY2hlbWFUeXBlKV0ubWFwKGtleSA9PiAoe1xuICAgICAga2V5LFxuICAgICAgdmFsdWU6IHByb3BlcnRpZXNba2V5XVxuICAgIH0pKVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHZhbHVlVHlwZVRvRGVmYXVsdCA9IHtcbiAgbnVtYmVyOiAnJyxcbiAgaW50ZWdlcjogJycsXG4gIGJvb2xlYW46IGZhbHNlLFxuICBzdHJpbmc6ICcnXG59O1xuXG5leHBvcnQgY29uc3QgbmVzdGluZ1R5cGVFbmFibGVkID0gKHNjaGVtYVR5cGU6IFNjaGVtYVR5cGUpID0+XG4gICFbXG4gICAgU2NoZW1hVHlwZS5DeWNsZSxcbiAgICBTY2hlbWFUeXBlLkltcGFjdEFzc2Vzc21lbnQsXG4gICAgU2NoZW1hVHlwZS5PcmdhbmlzYXRpb24sXG4gICAgU2NoZW1hVHlwZS5TaXRlLFxuICAgIFNjaGVtYVR5cGUuU291cmNlXG4gIF0uaW5jbHVkZXMoc2NoZW1hVHlwZSk7XG5cbmV4cG9ydCBjb25zdCBuZXN0aW5nRW5hYmxlZCA9IChzY2hlbWFUeXBlOiBTY2hlbWFUeXBlLCBrZXk6IHN0cmluZykgPT5cbiAgbmVzdGluZ1R5cGVFbmFibGVkKHNjaGVtYVR5cGUpIHx8IFsndHlwZScsICdpZCddLmluY2x1ZGVzKGtleSk7XG5cbmV4cG9ydCBjb25zdCBzY2hlbWFUeXBlVG9EZWZhdWx0VmFsdWUgPSAoc2NoZW1hczogZGVmaW5pdGlvbnMsIHByb3A6IGRlZmluaXRpb24sIG5lc3RlZCA9IGZhbHNlKTogYW55ID0+IHtcbiAgY29uc3QgbWFwcGluZ3M6IHtcbiAgICBba2V5OiBzdHJpbmddOiAoKSA9PiBhbnk7XG4gIH0gPSB7XG4gICAgb2JqZWN0OiAoKSA9PiB7XG4gICAgICBjb25zdCB7IHNjaGVtYVR5cGUsIHByb3BlcnRpZXMgfSA9IHNjaGVtYVJlcXVpcmVkUHJvcGVydGllcyhzY2hlbWFzLCBwcm9wIGFzIElEZWZpbml0aW9uT2JqZWN0KTtcbiAgICAgIHJldHVybiBwcm9wZXJ0aWVzXG4gICAgICAgIC5maWx0ZXIoKHsga2V5IH0pID0+ICFuZXN0ZWQgfHwgbmVzdGluZ0VuYWJsZWQoc2NoZW1hVHlwZSwga2V5KSlcbiAgICAgICAgLm1hcCgoeyBrZXksIHZhbHVlIH0pID0+ICh7IGtleSwgdmFsdWU6IHNjaGVtYVR5cGVUb0RlZmF1bHRWYWx1ZShzY2hlbWFzLCB2YWx1ZSwgdHJ1ZSkgfSkpXG4gICAgICAgIC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+ICh7IC4uLnByZXYsIFtjdXJyLmtleV06IGN1cnIudmFsdWUgfSksIHt9KTtcbiAgICB9LFxuICAgIGFycmF5OiAoKSA9PiB7XG4gICAgICBjb25zdCB7IGl0ZW1zIH0gPSBwcm9wIGFzIElEZWZpbml0aW9uQXJyYXk7XG4gICAgICByZXR1cm4gW3NjaGVtYVR5cGVUb0RlZmF1bHRWYWx1ZShzY2hlbWFzLCBpdGVtcywgdHJ1ZSldO1xuICAgIH0sXG4gICAgZGVmYXVsdDogKCkgPT4gcHJvcC5kZWZhdWx0IHx8ICh2YWx1ZVR5cGVUb0RlZmF1bHQgYXMgYW55KVtwcm9wLnR5cGUgYXMgc3RyaW5nXVxuICB9O1xuICBjb25zdCBtYXBwZWQgPSAhcHJvcC50eXBlXG4gICAgPyBtYXBwaW5ncy5vYmplY3RcbiAgICA6IChwcm9wLnR5cGUgYXMgc3RyaW5nKSBpbiBtYXBwaW5nc1xuICAgICAgPyBtYXBwaW5nc1twcm9wLnR5cGUgYXMgc3RyaW5nXVxuICAgICAgOiBtYXBwaW5ncy5kZWZhdWx0O1xuICByZXR1cm4gbWFwcGVkKCk7XG59O1xuXG5jb25zdCB0eXBlUHJvcGVydGllc0tleXM6IHtcbiAgW3R5cGUgaW4gU2NoZW1hVHlwZV0/OiBzdHJpbmdbXTtcbn0gPSB7XG4gIFtTY2hlbWFUeXBlLlRlcm1dOiBbJ3R5cGUnLCAnaWQnLCAnQGlkJywgJ25hbWUnXVxufTtcblxuZXhwb3J0IGNvbnN0IGF2YWlsYWJsZVByb3BlcnRpZXMgPSAoXG4gIHNjaGVtYTogZGVmaW5pdGlvbixcbiAgc2NoZW1hVHlwZTogU2NoZW1hVHlwZSxcbiAgdmFsdWU6IGFueSxcbiAgaXNUb3BMZXZlbCA9IHRydWUsXG4gIHNraXBFeGlzdGluZ05vZGUgPSB0cnVlXG4pID0+IHtcbiAgY29uc3QgeyBwcm9wZXJ0aWVzIH0gPSAncHJvcGVydGllcycgaW4gc2NoZW1hID8gc2NoZW1hIDogeyBwcm9wZXJ0aWVzOiB7fSB9O1xuICBjb25zdCBrZXlzID0gc2NoZW1hVHlwZSBpbiB0eXBlUHJvcGVydGllc0tleXMgPyB0eXBlUHJvcGVydGllc0tleXNbc2NoZW1hVHlwZV0gOiBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzIHx8IHt9KTtcbiAgY29uc3QgaW50ZXJuYWxQcm9wcyA9IGtleXM/LmZpbHRlcihwcm9wID0+IHByb3BlcnRpZXNbcHJvcF0uaW50ZXJuYWwpO1xuICBjb25zdCBleGlzdGluZyA9IFtcbiAgICAuLi4oaXNFbXB0eSh2YWx1ZSkgPyBbXSA6IE9iamVjdC5rZXlzKHZhbHVlKS5maWx0ZXIodiA9PiAhaXNFbXB0eSh2YWx1ZVt2XSkgfHwgdmFsdWVbdl0gPT09ICcnKSksXG4gICAgLi4uaW50ZXJuYWxQcm9wcyEsXG4gICAgLi4uKGlzVG9wTGV2ZWwgPyBbXSA6IFsnQGlkJ10pLFxuICAgICdAdHlwZSdcbiAgXTtcbiAgY29uc3QgYXZhaWxhYmxlID0ga2V5c1xuICAgID8uZmlsdGVyKHByb3AgPT4gIWV4aXN0aW5nLmluY2x1ZGVzKHByb3ApKVxuICAgIC5yZWR1Y2UoKHByZXY6IGFueSwgcHJvcCkgPT4ge1xuICAgICAgcHJldltwcm9wXSA9IHByb3BlcnRpZXNbcHJvcF07XG4gICAgICByZXR1cm4gcHJldjtcbiAgICB9LCB7fSk7XG4gIC8vIGF2b2lkIGVkaXRpbmcgYW4gZXhpc3Rpbmcgbm9kZVxuICBjb25zdCBpc0V4aXN0aW5nTm9kZSA9XG4gICAgIWlzVW5kZWZpbmVkKHZhbHVlKSAmJiAhaXNVbmRlZmluZWQodmFsdWVbJ0B0eXBlJ10gfHwgdmFsdWUudHlwZSkgJiYgIWlzVW5kZWZpbmVkKHZhbHVlWydAaWQnXSk7XG4gIHJldHVybiBpc0V4aXN0aW5nTm9kZSAmJiBza2lwRXhpc3RpbmdOb2RlID8ge30gOiBhdmFpbGFibGU7XG59O1xuXG5leHBvcnQgY29uc3QgaXNTY2hlbWFJcmkgPSAoc2NoZW1hPzogSURlZmluaXRpb25PYmplY3QpID0+XG4gIGlzRXF1YWwoT2JqZWN0LmtleXMoc2NoZW1hPy5wcm9wZXJ0aWVzIHx8IHt9KSwgWydAaWQnXSkgJiYgaXNFcXVhbChzY2hlbWE/LnJlcXVpcmVkIHx8IFtdLCBbJ0BpZCddKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGVTY2hlbWFTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgcHJpdmF0ZSBzY2hlbWFzTG9hZGluZyA9IGZhbHNlO1xuICBwcml2YXRlIHNjaGVtYXNMb2FkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc2NoZW1hcyA9IG5ldyBSZXBsYXlTdWJqZWN0PGRlZmluaXRpb25zPigxKTtcblxuICBwcml2YXRlIHNvcnRDb25maWdMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgc29ydENvbmZpZ0xvYWRlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9zb3J0Q29uZmlnID0gbmV3IFJlcGxheVN1YmplY3Q8c29ydENvbmZpZz4oMSk7XG5cbiAgcHVibGljIGdldFNjaGVtYSQodHlwZTogU2NoZW1hVHlwZSwgdmVyc2lvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PElEZWZpbml0aW9uPihgJHtzY2hlbWFCYXNlVXJsKHZlcnNpb24pfS9qc29uLXNjaGVtYS8ke3R5cGV9Lmpzb25gKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTY2hlbWEodHlwZTogU2NoZW1hVHlwZSwgdmVyc2lvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdldFNjaGVtYSQodHlwZSwgdmVyc2lvbikudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRTY2hlbWFzKHZlcnNpb24/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNjaGVtYXNMb2FkaW5nID0gdHJ1ZTtcbiAgICByZXR1cm4gZnJvbShPYmplY3QudmFsdWVzKFNjaGVtYVR5cGUpKS5waXBlKFxuICAgICAgbWVyZ2VNYXAodHlwZSA9PlxuICAgICAgICB0aGlzLmdldFNjaGVtYSQodHlwZSwgdmVyc2lvbikucGlwZShcbiAgICAgICAgICBtYXAoc2NoZW1hID0+ICh7IHR5cGUsIHNjaGVtYSB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih7IHR5cGUsIHNjaGVtYTogeyBwcm9wZXJ0aWVzOiBbXSB9IH0pKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgcmVkdWNlKChwcmV2LCB7IHR5cGUsIHNjaGVtYSB9KSA9PiAoeyAuLi5wcmV2LCBbdHlwZV06IHNjaGVtYSB9KSwge30gYXMgZGVmaW5pdGlvbnMpLFxuICAgICAgbWFwKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLl9zY2hlbWFzLm5leHQoZGF0YSk7XG4gICAgICAgIHRoaXMuc2NoZW1hc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zY2hlbWFzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNjaGVtYXMkKCkge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYXNMb2FkaW5nIHx8IHRoaXMuc2NoZW1hc0xvYWRlZCA/IHRoaXMuX3NjaGVtYXMuYXNPYnNlcnZhYmxlKCkgOiB0aGlzLmxvYWRTY2hlbWFzKCk7XG4gIH1cblxuICBwdWJsaWMgc2NoZW1hcygpIHtcbiAgICByZXR1cm4gdGhpcy5zY2hlbWFzJC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkU29ydENvbmZpZyh2ZXJzaW9uPzogc3RyaW5nKSB7XG4gICAgdGhpcy5zb3J0Q29uZmlnTG9hZGluZyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8c29ydENvbmZpZz4oYCR7c2NoZW1hQmFzZVVybCh2ZXJzaW9uKX0vc29ydC1jb25maWcvY29uZmlnLmpzb25gKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih1bmRlZmluZWQgYXMgYW55IGFzIHNvcnRDb25maWcpKSxcbiAgICAgIG1hcChkYXRhID0+IHtcbiAgICAgICAgdGhpcy5fc29ydENvbmZpZy5uZXh0KGRhdGEpO1xuICAgICAgICB0aGlzLnNvcnRDb25maWdMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc29ydENvbmZpZ0xvYWRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBzb3J0Q29uZmlnJCgpIHtcbiAgICByZXR1cm4gdGhpcy5zb3J0Q29uZmlnTG9hZGluZyB8fCB0aGlzLnNvcnRDb25maWdMb2FkZWQgPyB0aGlzLl9zb3J0Q29uZmlnLmFzT2JzZXJ2YWJsZSgpIDogdGhpcy5sb2FkU29ydENvbmZpZygpO1xuICB9XG5cbiAgcHVibGljIHNvcnRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc29ydENvbmZpZyQucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhbmQgc29ydCAoaWYgcG9zc2libGUpIGhlYWRlcnMgZnJvbSBDU1YgY29udGVudCBhY2NvcmRpbmcgdG8gdGhlIHNjaGVtYSBvcmRlci5cbiAgICogVGhpcyB3aWxsIGxvYWQgdGhlIHNvcnQgY29uZmlndXJhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgc2NoZW1hIHZlcnNpb24uXG4gICAqXG4gICAqIEBwYXJhbSBjc3ZDb250ZW50IFRoZSBjb250ZW50IGFzIGEgc3RyaW5nXG4gICAqIEByZXR1cm5zIExpc3Qgb2Ygc3RyaW5ncyBhcyBPYnNlcnZhYmxlIHdoZW4gcGFyc2luZyAvIHNvcnRpbmcgaXMgZG9uZS5cbiAgICovXG4gIHB1YmxpYyBwYXJzZUhlYWRlcnMkKGNzdkNvbnRlbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBoZWFkZXJzRnJvbUNzdihjc3ZDb250ZW50KTtcbiAgICByZXR1cm4gdGhpcy5zb3J0Q29uZmlnJC5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIG1hcChjb25maWcgPT4gc29ydEtleXNCeVR5cGUoaGVhZGVycywgJ2FzYycsIGNvbmZpZykpLFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihoZWFkZXJzKSlcbiAgICApO1xuICB9XG59XG4iXX0=
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2NoZW1hL3NjaGVtYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFjLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hHLE9BQU8sRUFPTCxxQkFBcUIsRUFDdEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUxQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRTVHLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsZ0JBQWdCLE9BQU8sSUFBSSxjQUFjLEVB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SUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzFCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUNyRCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQzlCLENBQUM7SUFDSixDQUFDOzhHQWpGVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGZyb20sIG9mLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIG1lcmdlTWFwLCByZWR1Y2UsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc0VtcHR5LCBpc1VuZGVmaW5lZCwgaXNFcXVhbCB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMnO1xuaW1wb3J0IHsgU2NoZW1hVHlwZSwgTm9kZVR5cGUsIFNDSEVNQV9WRVJTSU9OLCBzb3J0Q29uZmlnLCBzb3J0S2V5c0J5VHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7XG4gIGRlZmluaXRpb25zLFxuICBkZWZpbml0aW9uLFxuICBJRGVmaW5pdGlvbixcbiAgSURlZmluaXRpb25PYmplY3QsXG4gIElEZWZpbml0aW9uQXJyYXksXG4gIElEZWZpbml0aW9uUHJvcGVydGllcyxcbiAgcmVjb21tZW5kZWRQcm9wZXJ0aWVzXG59IGZyb20gJ0BoZXN0aWEtZWFydGgvanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgaGVhZGVyc0Zyb21Dc3YgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYS1jb252ZXJ0JztcblxuaW1wb3J0IHsgYmFzZVVybCB9IGZyb20gJy4uL2NvbW1vbi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBzY2hlbWFCYXNlVXJsID0gKHZlcnNpb24/OiBzdHJpbmcpID0+IFtiYXNlVXJsKCksICdzY2hlbWEnLCB2ZXJzaW9uXS5maWx0ZXIoQm9vbGVhbikuam9pbignLycpO1xuXG5leHBvcnQgY29uc3Qgc2NoZW1hRGF0YUJhc2VVcmwgPSAodmVyc2lvbj86IHN0cmluZykgPT4gYCR7YmFzZVVybCgpfS9zY2hlbWEtZGF0YS8ke3ZlcnNpb24gfHwgU0NIRU1BX1ZFUlNJT059YDtcblxuZXhwb3J0IGNvbnN0IGxpbmtUeXBlRW5hYmxlZCA9ICh0eXBlOiBTY2hlbWFUeXBlIHwgTm9kZVR5cGUpID0+XG4gIFtOb2RlVHlwZS5DeWNsZSwgTm9kZVR5cGUuSW1wYWN0QXNzZXNzbWVudCwgTm9kZVR5cGUuU2l0ZSwgTm9kZVR5cGUuU291cmNlLCBOb2RlVHlwZS5UZXJtXS5pbmNsdWRlcyh0eXBlIGFzIE5vZGVUeXBlKTtcblxuZXhwb3J0IGNvbnN0IHJlZlRvU2NoZW1hVHlwZSA9IChyZWYgPSAnJykgPT5cbiAgcmVmLnN0YXJ0c1dpdGgoJ2h0dHAnKSA/IHJlZiA6IChyZWYuc3Vic3RyaW5nKDIpLnJlcGxhY2UoJy1kZWVwJywgJycpLnJlcGxhY2UoJy5qc29uIycsICcnKSBhcyBTY2hlbWFUeXBlKTtcblxuZXhwb3J0IGNvbnN0IGRlZmluaXRpb25Ub1NjaGVtYVR5cGUgPSAoeyB0aXRsZSwgJHJlZiB9OiBJRGVmaW5pdGlvbk9iamVjdCkgPT5cbiAgKHRpdGxlIHx8IHJlZlRvU2NoZW1hVHlwZSgkcmVmKSkgYXMgU2NoZW1hVHlwZTtcblxuY29uc3Qgc2NoZW1hVHlwZVByb3BlcnRpZXMgPSAocHJvcGVydGllczogSURlZmluaXRpb25Qcm9wZXJ0aWVzLCBzY2hlbWFUeXBlPzogU2NoZW1hVHlwZSkgPT5cbiAgc2NoZW1hVHlwZSA/IFsndHlwZScsIC4uLignaWQnIGluIHByb3BlcnRpZXMgJiYgc2NoZW1hVHlwZSAhPT0gU2NoZW1hVHlwZS5UZXJtID8gWydpZCddIDogW10pXSA6IFtdO1xuXG5jb25zdCBkZWZpbml0aW9uVG9TY2hlbWEgPSAoeyByZXF1aXJlZCwgcHJvcGVydGllcyB9OiBJRGVmaW5pdGlvbk9iamVjdCkgPT4gKHtcbiAgcmVxdWlyZWQ6IHJlcXVpcmVkIHx8IFtdLFxuICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzIHx8IHt9XG59KTtcblxuZXhwb3J0IGNvbnN0IHNjaGVtYVJlcXVpcmVkUHJvcGVydGllcyA9IChzY2hlbWFzOiBkZWZpbml0aW9ucywgZGVmOiBJRGVmaW5pdGlvbk9iamVjdCkgPT4ge1xuICBjb25zdCBzY2hlbWFUeXBlID0gZGVmaW5pdGlvblRvU2NoZW1hVHlwZShkZWYpO1xuICBjb25zdCBzY2hlbWEgPSBzY2hlbWFzW3NjaGVtYVR5cGVdIGFzIElEZWZpbml0aW9uT2JqZWN0O1xuICBjb25zdCB7IHJlcXVpcmVkLCBwcm9wZXJ0aWVzIH0gPSBzY2hlbWEgfHwgZGVmaW5pdGlvblRvU2NoZW1hKGRlZik7XG4gIGNvbnN0IHByb3BzID0gWy4uLihyZXF1aXJlZCB8fCBbXSksIC4uLnJlY29tbWVuZGVkUHJvcGVydGllcyhzY2hlbWEgfHwgZGVmKV0uZmlsdGVyKGtleSA9PiAhcHJvcGVydGllc1trZXldLmludGVybmFsKTsgLy8gcmVtb3ZlIGludGVybmFsIHByb3BlcnRpZXNcbiAgcmV0dXJuIHtcbiAgICBzY2hlbWFUeXBlLFxuICAgIHByb3BlcnRpZXM6IFsuLi5wcm9wcywgLi4uc2NoZW1hVHlwZVByb3BlcnRpZXMocHJvcGVydGllcywgc2NoZW1hVHlwZSldLm1hcChrZXkgPT4gKHtcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlOiBwcm9wZXJ0aWVzW2tleV1cbiAgICB9KSlcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB2YWx1ZVR5cGVUb0RlZmF1bHQgPSB7XG4gIG51bWJlcjogJycsXG4gIGludGVnZXI6ICcnLFxuICBib29sZWFuOiBmYWxzZSxcbiAgc3RyaW5nOiAnJ1xufTtcblxuZXhwb3J0IGNvbnN0IG5lc3RpbmdUeXBlRW5hYmxlZCA9IChzY2hlbWFUeXBlOiBTY2hlbWFUeXBlKSA9PlxuICAhW1xuICAgIFNjaGVtYVR5cGUuQ3ljbGUsXG4gICAgU2NoZW1hVHlwZS5JbXBhY3RBc3Nlc3NtZW50LFxuICAgIFNjaGVtYVR5cGUuT3JnYW5pc2F0aW9uLFxuICAgIFNjaGVtYVR5cGUuU2l0ZSxcbiAgICBTY2hlbWFUeXBlLlNvdXJjZVxuICBdLmluY2x1ZGVzKHNjaGVtYVR5cGUpO1xuXG5leHBvcnQgY29uc3QgbmVzdGluZ0VuYWJsZWQgPSAoc2NoZW1hVHlwZTogU2NoZW1hVHlwZSwga2V5OiBzdHJpbmcpID0+XG4gIG5lc3RpbmdUeXBlRW5hYmxlZChzY2hlbWFUeXBlKSB8fCBbJ3R5cGUnLCAnaWQnXS5pbmNsdWRlcyhrZXkpO1xuXG5leHBvcnQgY29uc3Qgc2NoZW1hVHlwZVRvRGVmYXVsdFZhbHVlID0gKHNjaGVtYXM6IGRlZmluaXRpb25zLCBwcm9wOiBkZWZpbml0aW9uLCBuZXN0ZWQgPSBmYWxzZSk6IGFueSA9PiB7XG4gIGNvbnN0IG1hcHBpbmdzOiB7XG4gICAgW2tleTogc3RyaW5nXTogKCkgPT4gYW55O1xuICB9ID0ge1xuICAgIG9iamVjdDogKCkgPT4ge1xuICAgICAgY29uc3QgeyBzY2hlbWFUeXBlLCBwcm9wZXJ0aWVzIH0gPSBzY2hlbWFSZXF1aXJlZFByb3BlcnRpZXMoc2NoZW1hcywgcHJvcCBhcyBJRGVmaW5pdGlvbk9iamVjdCk7XG4gICAgICByZXR1cm4gcHJvcGVydGllc1xuICAgICAgICAuZmlsdGVyKCh7IGtleSB9KSA9PiAhbmVzdGVkIHx8IG5lc3RpbmdFbmFibGVkKHNjaGVtYVR5cGUsIGtleSkpXG4gICAgICAgIC5tYXAoKHsga2V5LCB2YWx1ZSB9KSA9PiAoeyBrZXksIHZhbHVlOiBzY2hlbWFUeXBlVG9EZWZhdWx0VmFsdWUoc2NoZW1hcywgdmFsdWUsIHRydWUpIH0pKVxuICAgICAgICAucmVkdWNlKChwcmV2LCBjdXJyKSA9PiAoeyAuLi5wcmV2LCBbY3Vyci5rZXldOiBjdXJyLnZhbHVlIH0pLCB7fSk7XG4gICAgfSxcbiAgICBhcnJheTogKCkgPT4ge1xuICAgICAgY29uc3QgeyBpdGVtcyB9ID0gcHJvcCBhcyBJRGVmaW5pdGlvbkFycmF5O1xuICAgICAgcmV0dXJuIFtzY2hlbWFUeXBlVG9EZWZhdWx0VmFsdWUoc2NoZW1hcywgaXRlbXMsIHRydWUpXTtcbiAgICB9LFxuICAgIGRlZmF1bHQ6ICgpID0+IHByb3AuZGVmYXVsdCB8fCAodmFsdWVUeXBlVG9EZWZhdWx0IGFzIGFueSlbcHJvcC50eXBlIGFzIHN0cmluZ11cbiAgfTtcbiAgY29uc3QgbWFwcGVkID0gIXByb3AudHlwZVxuICAgID8gbWFwcGluZ3Mub2JqZWN0XG4gICAgOiAocHJvcC50eXBlIGFzIHN0cmluZykgaW4gbWFwcGluZ3NcbiAgICAgID8gbWFwcGluZ3NbcHJvcC50eXBlIGFzIHN0cmluZ11cbiAgICAgIDogbWFwcGluZ3MuZGVmYXVsdDtcbiAgcmV0dXJuIG1hcHBlZCgpO1xufTtcblxuY29uc3QgdHlwZVByb3BlcnRpZXNLZXlzOiB7XG4gIFt0eXBlIGluIFNjaGVtYVR5cGVdPzogc3RyaW5nW107XG59ID0ge1xuICBbU2NoZW1hVHlwZS5UZXJtXTogWyd0eXBlJywgJ2lkJywgJ0BpZCcsICduYW1lJ11cbn07XG5cbmV4cG9ydCBjb25zdCBhdmFpbGFibGVQcm9wZXJ0aWVzID0gKFxuICBzY2hlbWE6IGRlZmluaXRpb24sXG4gIHNjaGVtYVR5cGU6IFNjaGVtYVR5cGUsXG4gIHZhbHVlOiBhbnksXG4gIGlzVG9wTGV2ZWwgPSB0cnVlLFxuICBza2lwRXhpc3RpbmdOb2RlID0gdHJ1ZVxuKSA9PiB7XG4gIGNvbnN0IHsgcHJvcGVydGllcyB9ID0gJ3Byb3BlcnRpZXMnIGluIHNjaGVtYSA/IHNjaGVtYSA6IHsgcHJvcGVydGllczoge30gfTtcbiAgY29uc3Qga2V5cyA9IHNjaGVtYVR5cGUgaW4gdHlwZVByb3BlcnRpZXNLZXlzID8gdHlwZVByb3BlcnRpZXNLZXlzW3NjaGVtYVR5cGVdIDogT2JqZWN0LmtleXMocHJvcGVydGllcyB8fCB7fSk7XG4gIGNvbnN0IGludGVybmFsUHJvcHMgPSBrZXlzPy5maWx0ZXIocHJvcCA9PiBwcm9wZXJ0aWVzW3Byb3BdLmludGVybmFsKTtcbiAgY29uc3QgZXhpc3RpbmcgPSBbXG4gICAgLi4uKGlzRW1wdHkodmFsdWUpID8gW10gOiBPYmplY3Qua2V5cyh2YWx1ZSkuZmlsdGVyKHYgPT4gIWlzRW1wdHkodmFsdWVbdl0pIHx8IHZhbHVlW3ZdID09PSAnJykpLFxuICAgIC4uLmludGVybmFsUHJvcHMhLFxuICAgIC4uLihpc1RvcExldmVsID8gW10gOiBbJ0BpZCddKSxcbiAgICAnQHR5cGUnXG4gIF07XG4gIGNvbnN0IGF2YWlsYWJsZSA9IGtleXNcbiAgICA/LmZpbHRlcihwcm9wID0+ICFleGlzdGluZy5pbmNsdWRlcyhwcm9wKSlcbiAgICAucmVkdWNlKChwcmV2OiBhbnksIHByb3ApID0+IHtcbiAgICAgIHByZXZbcHJvcF0gPSBwcm9wZXJ0aWVzW3Byb3BdO1xuICAgICAgcmV0dXJuIHByZXY7XG4gICAgfSwge30pO1xuICAvLyBhdm9pZCBlZGl0aW5nIGFuIGV4aXN0aW5nIG5vZGVcbiAgY29uc3QgaXNFeGlzdGluZ05vZGUgPVxuICAgICFpc1VuZGVmaW5lZCh2YWx1ZSkgJiYgIWlzVW5kZWZpbmVkKHZhbHVlWydAdHlwZSddIHx8IHZhbHVlLnR5cGUpICYmICFpc1VuZGVmaW5lZCh2YWx1ZVsnQGlkJ10pO1xuICByZXR1cm4gaXNFeGlzdGluZ05vZGUgJiYgc2tpcEV4aXN0aW5nTm9kZSA/IHt9IDogYXZhaWxhYmxlO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU2NoZW1hSXJpID0gKHNjaGVtYT86IElEZWZpbml0aW9uT2JqZWN0KSA9PlxuICBpc0VxdWFsKE9iamVjdC5rZXlzKHNjaGVtYT8ucHJvcGVydGllcyB8fCB7fSksIFsnQGlkJ10pICYmIGlzRXF1YWwoc2NoZW1hPy5yZXF1aXJlZCB8fCBbXSwgWydAaWQnXSk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhlU2NoZW1hU2VydmljZSB7XG4gIHByb3RlY3RlZCBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gIHByaXZhdGUgc2NoZW1hc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzY2hlbWFzTG9hZGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX3NjaGVtYXMgPSBuZXcgUmVwbGF5U3ViamVjdDxkZWZpbml0aW9ucz4oMSk7XG5cbiAgcHJpdmF0ZSBzb3J0Q29uZmlnTG9hZGluZyA9IGZhbHNlO1xuICBwcml2YXRlIHNvcnRDb25maWdMb2FkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc29ydENvbmZpZyA9IG5ldyBSZXBsYXlTdWJqZWN0PHNvcnRDb25maWc+KDEpO1xuXG4gIHB1YmxpYyBnZXRTY2hlbWEkKHR5cGU6IFNjaGVtYVR5cGUsIHZlcnNpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxJRGVmaW5pdGlvbj4oYCR7c2NoZW1hRGF0YUJhc2VVcmwodmVyc2lvbil9L2pzb24tc2NoZW1hLyR7dHlwZX0uanNvbmApO1xuICB9XG5cbiAgcHVibGljIGdldFNjaGVtYSh0eXBlOiBTY2hlbWFUeXBlLCB2ZXJzaW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U2NoZW1hJCh0eXBlLCB2ZXJzaW9uKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFNjaGVtYXModmVyc2lvbj86IHN0cmluZykge1xuICAgIHRoaXMuc2NoZW1hc0xvYWRpbmcgPSB0cnVlO1xuICAgIHJldHVybiBmcm9tKE9iamVjdC52YWx1ZXMoU2NoZW1hVHlwZSkpLnBpcGUoXG4gICAgICBtZXJnZU1hcCh0eXBlID0+XG4gICAgICAgIHRoaXMuZ2V0U2NoZW1hJCh0eXBlLCB2ZXJzaW9uKS5waXBlKFxuICAgICAgICAgIG1hcChzY2hlbWEgPT4gKHsgdHlwZSwgc2NoZW1hIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHsgdHlwZSwgc2NoZW1hOiB7IHByb3BlcnRpZXM6IFtdIH0gfSkpXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICByZWR1Y2UoKHByZXYsIHsgdHlwZSwgc2NoZW1hIH0pID0+ICh7IC4uLnByZXYsIFt0eXBlXTogc2NoZW1hIH0pLCB7fSBhcyBkZWZpbml0aW9ucyksXG4gICAgICBtYXAoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuX3NjaGVtYXMubmV4dChkYXRhKTtcbiAgICAgICAgdGhpcy5zY2hlbWFzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNjaGVtYXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2NoZW1hcyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NoZW1hc0xvYWRpbmcgfHwgdGhpcy5zY2hlbWFzTG9hZGVkID8gdGhpcy5fc2NoZW1hcy5hc09ic2VydmFibGUoKSA6IHRoaXMubG9hZFNjaGVtYXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzY2hlbWFzKCkge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYXMkLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRTb3J0Q29uZmlnKHZlcnNpb24/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvcnRDb25maWdMb2FkaW5nID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxzb3J0Q29uZmlnPihgJHtzY2hlbWFEYXRhQmFzZVVybCh2ZXJzaW9uKX0vc29ydC1jb25maWcvY29uZmlnLmpzb25gKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih1bmRlZmluZWQgYXMgYW55IGFzIHNvcnRDb25maWcpKSxcbiAgICAgIG1hcChkYXRhID0+IHtcbiAgICAgICAgdGhpcy5fc29ydENvbmZpZy5uZXh0KGRhdGEpO1xuICAgICAgICB0aGlzLnNvcnRDb25maWdMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc29ydENvbmZpZ0xvYWRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBzb3J0Q29uZmlnJCgpIHtcbiAgICByZXR1cm4gdGhpcy5zb3J0Q29uZmlnTG9hZGluZyB8fCB0aGlzLnNvcnRDb25maWdMb2FkZWQgPyB0aGlzLl9zb3J0Q29uZmlnLmFzT2JzZXJ2YWJsZSgpIDogdGhpcy5sb2FkU29ydENvbmZpZygpO1xuICB9XG5cbiAgcHVibGljIHNvcnRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc29ydENvbmZpZyQucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhbmQgc29ydCAoaWYgcG9zc2libGUpIGhlYWRlcnMgZnJvbSBDU1YgY29udGVudCBhY2NvcmRpbmcgdG8gdGhlIHNjaGVtYSBvcmRlci5cbiAgICogVGhpcyB3aWxsIGxvYWQgdGhlIHNvcnQgY29uZmlndXJhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgc2NoZW1hIHZlcnNpb24uXG4gICAqXG4gICAqIEBwYXJhbSBjc3ZDb250ZW50IFRoZSBjb250ZW50IGFzIGEgc3RyaW5nXG4gICAqIEByZXR1cm5zIExpc3Qgb2Ygc3RyaW5ncyBhcyBPYnNlcnZhYmxlIHdoZW4gcGFyc2luZyAvIHNvcnRpbmcgaXMgZG9uZS5cbiAgICovXG4gIHB1YmxpYyBwYXJzZUhlYWRlcnMkKGNzdkNvbnRlbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBoZWFkZXJzRnJvbUNzdihjc3ZDb250ZW50KTtcbiAgICByZXR1cm4gdGhpcy5zb3J0Q29uZmlnJC5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIG1hcChjb25maWcgPT4gc29ydEtleXNCeVR5cGUoaGVhZGVycywgJ2FzYycsIGNvbmZpZykpLFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihoZWFkZXJzKSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -5480,7 +5480,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
5480
5480
  }] });
5481
5481
 
5482
5482
  /* eslint-disable complexity */
5483
- const schemaBaseUrl = (version) => `${baseUrl()}/schema-data/${version || SCHEMA_VERSION}`;
5483
+ const schemaBaseUrl = (version) => [baseUrl(), 'schema', version].filter(Boolean).join('/');
5484
+ const schemaDataBaseUrl = (version) => `${baseUrl()}/schema-data/${version || SCHEMA_VERSION}`;
5484
5485
  const linkTypeEnabled = (type) => [NodeType.Cycle, NodeType.ImpactAssessment, NodeType.Site, NodeType.Source, NodeType.Term].includes(type);
5485
5486
  const refToSchemaType = (ref = '') => ref.startsWith('http') ? ref : ref.substring(2).replace('-deep', '').replace('.json#', '');
5486
5487
  const definitionToSchemaType = ({ title, $ref }) => (title || refToSchemaType($ref));
@@ -5573,7 +5574,7 @@ class HeSchemaService {
5573
5574
  this._sortConfig = new ReplaySubject(1);
5574
5575
  }
5575
5576
  getSchema$(type, version) {
5576
- return this.http.get(`${schemaBaseUrl(version)}/json-schema/${type}.json`);
5577
+ return this.http.get(`${schemaDataBaseUrl(version)}/json-schema/${type}.json`);
5577
5578
  }
5578
5579
  getSchema(type, version) {
5579
5580
  return this.getSchema$(type, version).toPromise();
@@ -5595,7 +5596,7 @@ class HeSchemaService {
5595
5596
  }
5596
5597
  loadSortConfig(version) {
5597
5598
  this.sortConfigLoading = true;
5598
- return this.http.get(`${schemaBaseUrl(version)}/sort-config/config.json`).pipe(catchError(() => of(undefined)), map(data => {
5599
+ return this.http.get(`${schemaDataBaseUrl(version)}/sort-config/config.json`).pipe(catchError(() => of(undefined)), map(data => {
5599
5600
  this._sortConfig.next(data);
5600
5601
  this.sortConfigLoading = false;
5601
5602
  this.sortConfigLoaded = true;
@@ -12311,5 +12312,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
12311
12312
  * Generated bundle index. Do not edit.
12312
12313
  */
12313
12314
 
12314
- export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BindOnceDirective, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, ChartComponent, ChartConfigurationDirective, ClickOutsideDirective, ClipboardComponent, ColorPalette, CompoundDirective, CompoundPipe, CycleNodesKeyGroup, CyclesCompletenessComponent, CyclesEmissionsChartComponent, CyclesFunctionalUnitMeasureComponent, CyclesNodesComponent, CyclesNodesTimelineComponent, CyclesResultComponent, DataTableComponent, DefaultPipe, DeltaColour, DiffsDisplayType, DrawerContainerComponent, DropdownComponent, EllipsisPipe, EngineModelsStageComponent, EngineModelsVersionLinkComponent, EngineOrchestratorEditComponent, EngineRequirementsFormComponent, FileSizePipe, FilesFormComponent, FilesFormEditableComponent, FilesUploadErrorsComponent, FilterComponent, FilterHasOptionsPipe, GetPipe, GlossaryMigrationFormat, HE_API_BASE_URL, HE_CALCULATIONS_BASE_URL, HE_MAP_LOADED, HE_ORCHESTRATOR_BASE_URL, HeAggregationEngineService, HeAuthService, HeCommonService, HeEngineService, HeGlossaryService, HeMendeleyService, HeNodeCsvService, HeNodeService, HeNodeStoreService, HeSchemaService, HeSearchService, HeSvgIconsModule, HeToastService, HeUsersService, ImpactAssessmentsGraphComponent, ImpactAssessmentsIndicatorBreakdownChartComponent, ImpactAssessmentsIndicatorsChartComponent, ImpactAssessmentsProductsComponent, IsArrayPipe, IsObjectPipe, IssueConfirmComponent, KeyToLabelPipe, KeysPipe, Level, LineChartComponent, LinkKeyValueComponent, LogStatus, MAX_RESULTS, MAX_STAGE, MapsDrawingComponent, MapsDrawingConfirmComponent, MendeleySearchResult, MobileShellComponent, NavigationMenuComponent, NoExtPipe, NodeCsvExportConfirmComponent, NodeCsvSelectHeadersComponent, NodeDiffsComponent, NodeElementDirective, NodeIconComponent, NodeKeyState, NodeLinkComponent, NodeLogsFileComponent, NodeLogsModelsComponent, NodeMissingLookupFactorsComponent, NodeRecommendationsComponent, NodeValueDetailsComponent, OPTION_GROUP_TOKEN, PluralizePipe, PopoverComponent, PopoverConfirmComponent, PrecisionPipe, RemoveMarkdownPipe, Repository, ResizedDirective, ResizedEvent, ResponsiveService, SELECT_OPTION_TOKEN, SELECT_TOKEN, SchemaInfoComponent, SchemaVersionLinkComponent, SearchExtendComponent, SelectComponent, SelectOptionComponent, SelectOptionGroupComponent, ShelfDialogComponent, ShellComponent, SitesManagementChartComponent, SitesMapsComponent, SitesNodesComponent, SkeletonTextComponent, SocialTagsComponent, SortByPipe, SortSelectComponent, TagsInputDirective, Template, TermsPropertyContentComponent, TermsSubClassOfContentComponent, TermsUnitsDescriptionComponent, ThousandSuffixesPipe, TimesPipe, ToastComponent, ToggleOptionDirective, UnitConverterComponent, addPolygonToFeature, allCountriesQuery, arrayValue, availableProperties, baseApiUrl, baseUrl, bottom, buildSummary, bytesSize, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, changelogUrl, clustererImage, code, compoundToHtml, computeKeys, computeTerms, contactUsEmail, contactUsLink, coordinatesToPoint, copyObject, countriesQuery, createMarker, cropsQuery, d3ellipse, d3wrap, dataPathLabel, dataPathToKey, defaultFeature, defaultLabel, defaultSuggestionType, definitionToSchemaType, distinctUntilChangedDeep, ellipsis, engineGitBaseUrl, engineGitUrl, errorHasError, errorHasWarning, errorText, evaluateSuccess, externalLink, fillColor, fillStyle, filterBlankNode$1 as filterBlankNode, filterError, filterParams, findConfigModels, findMatchingModel, findModels, findOrchestratorModel, findProperty, findPropertyById, flatFilterData, flatFilterNode, formatCustomErrorMessage, formatDate, formatError, formatPropertyError, formatter, getColor, getDatesBetween, gitBranch, gitHome, gitlabRawUrl, glossaryLink, groupChanged, groupLogsByModel, groupLogsByTerm, groupNodesByTerm, groupdLogsByKey, grouppedKeys, grouppedValueKeys, handleAPIError, hasError, hasLeafWithValue, hasWarning, ignoreKeys$1 as ignoreKeys, initialFilterState, isAddPropertyEnabled, isChrome, isEqual, isExternal, isMethodModelAllowed, isMigrationError, isMissingOneOfError, isMissingPropertyError, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, keyToDataPath, levels, linkTypeEnabled, listColor, listColorContinuous, loadMapApi, locationQuery, logToCsv$1 as logToCsv, logValueArray, logsKey, lookupUrl, lookups, mapFilterData, mapsUrl, markerIcon, markerPie, matchAggregatedQuery, matchAggregatedValidatedQuery, matchBoolPrefixQuery, matchCountry, matchExactQuery, matchGlobalRegion, matchId, matchNameNormalized, matchNestedKey, matchPhrasePrefixQuery, matchPhraseQuery, matchPrimaryProductQuery, matchQuery, matchRegex, matchRegion, matchTermType, matchType, maxAreaSize, measurementValue, methodTierOrder, migrationErrorMessage, migrationsUrl, missingNodeErrors, modelCount, modelKeyParams, modelParams, multiMatchQuery, nestedProperty, nestingEnabled, nestingTypeEnabled, nodeAvailableProperties, nodeLink, nodeLogsUrl, nodeTypeDataState, nodeUrl, nodeVersion, numberGte, parentKey, parentProperty, parseData, parseDataPath, parseLines, parseMessage$1 as parseMessage, parseNewValue, pathToApiDocsPath, pluralize, pointToCoordinates, polygonBounds, polygonToCoordinates, polygonToMap, polygonsFromFeature, populateWithTrackIdsFilterData, primaryProduct, productsQuery, propertyError, propertyId, recursiveProperties, refToSchemaType, refreshPropertyKeys, regionsQuery, repeat, reportIssueLink, reportIssueUrl, safeJSONParse, safeJSONStringify, schemaBaseUrl, schemaLink, schemaRequiredProperties, schemaTypeToDefaultValue, scrollToEl, scrollTop, searchFilterData, searchableTypes, siblingProperty, singleProperty, siteTooBig, sortProperties, strokeColor, strokeStyle, suggestMatchQuery, suggestQuery, takeAfterViewInit, termLocation, termLocationName, termProperties, termTypeLabel, toThousands, typeToNewProperty, typeaheadFocus, updateProperties, valueTypeToDefault, waitFor, wildcardQuery };
12315
+ export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BindOnceDirective, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, ChartComponent, ChartConfigurationDirective, ClickOutsideDirective, ClipboardComponent, ColorPalette, CompoundDirective, CompoundPipe, CycleNodesKeyGroup, CyclesCompletenessComponent, CyclesEmissionsChartComponent, CyclesFunctionalUnitMeasureComponent, CyclesNodesComponent, CyclesNodesTimelineComponent, CyclesResultComponent, DataTableComponent, DefaultPipe, DeltaColour, DiffsDisplayType, DrawerContainerComponent, DropdownComponent, EllipsisPipe, EngineModelsStageComponent, EngineModelsVersionLinkComponent, EngineOrchestratorEditComponent, EngineRequirementsFormComponent, FileSizePipe, FilesFormComponent, FilesFormEditableComponent, FilesUploadErrorsComponent, FilterComponent, FilterHasOptionsPipe, GetPipe, GlossaryMigrationFormat, HE_API_BASE_URL, HE_CALCULATIONS_BASE_URL, HE_MAP_LOADED, HE_ORCHESTRATOR_BASE_URL, HeAggregationEngineService, HeAuthService, HeCommonService, HeEngineService, HeGlossaryService, HeMendeleyService, HeNodeCsvService, HeNodeService, HeNodeStoreService, HeSchemaService, HeSearchService, HeSvgIconsModule, HeToastService, HeUsersService, ImpactAssessmentsGraphComponent, ImpactAssessmentsIndicatorBreakdownChartComponent, ImpactAssessmentsIndicatorsChartComponent, ImpactAssessmentsProductsComponent, IsArrayPipe, IsObjectPipe, IssueConfirmComponent, KeyToLabelPipe, KeysPipe, Level, LineChartComponent, LinkKeyValueComponent, LogStatus, MAX_RESULTS, MAX_STAGE, MapsDrawingComponent, MapsDrawingConfirmComponent, MendeleySearchResult, MobileShellComponent, NavigationMenuComponent, NoExtPipe, NodeCsvExportConfirmComponent, NodeCsvSelectHeadersComponent, NodeDiffsComponent, NodeElementDirective, NodeIconComponent, NodeKeyState, NodeLinkComponent, NodeLogsFileComponent, NodeLogsModelsComponent, NodeMissingLookupFactorsComponent, NodeRecommendationsComponent, NodeValueDetailsComponent, OPTION_GROUP_TOKEN, PluralizePipe, PopoverComponent, PopoverConfirmComponent, PrecisionPipe, RemoveMarkdownPipe, Repository, ResizedDirective, ResizedEvent, ResponsiveService, SELECT_OPTION_TOKEN, SELECT_TOKEN, SchemaInfoComponent, SchemaVersionLinkComponent, SearchExtendComponent, SelectComponent, SelectOptionComponent, SelectOptionGroupComponent, ShelfDialogComponent, ShellComponent, SitesManagementChartComponent, SitesMapsComponent, SitesNodesComponent, SkeletonTextComponent, SocialTagsComponent, SortByPipe, SortSelectComponent, TagsInputDirective, Template, TermsPropertyContentComponent, TermsSubClassOfContentComponent, TermsUnitsDescriptionComponent, ThousandSuffixesPipe, TimesPipe, ToastComponent, ToggleOptionDirective, UnitConverterComponent, addPolygonToFeature, allCountriesQuery, arrayValue, availableProperties, baseApiUrl, baseUrl, bottom, buildSummary, bytesSize, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, changelogUrl, clustererImage, code, compoundToHtml, computeKeys, computeTerms, contactUsEmail, contactUsLink, coordinatesToPoint, copyObject, countriesQuery, createMarker, cropsQuery, d3ellipse, d3wrap, dataPathLabel, dataPathToKey, defaultFeature, defaultLabel, defaultSuggestionType, definitionToSchemaType, distinctUntilChangedDeep, ellipsis, engineGitBaseUrl, engineGitUrl, errorHasError, errorHasWarning, errorText, evaluateSuccess, externalLink, fillColor, fillStyle, filterBlankNode$1 as filterBlankNode, filterError, filterParams, findConfigModels, findMatchingModel, findModels, findOrchestratorModel, findProperty, findPropertyById, flatFilterData, flatFilterNode, formatCustomErrorMessage, formatDate, formatError, formatPropertyError, formatter, getColor, getDatesBetween, gitBranch, gitHome, gitlabRawUrl, glossaryLink, groupChanged, groupLogsByModel, groupLogsByTerm, groupNodesByTerm, groupdLogsByKey, grouppedKeys, grouppedValueKeys, handleAPIError, hasError, hasLeafWithValue, hasWarning, ignoreKeys$1 as ignoreKeys, initialFilterState, isAddPropertyEnabled, isChrome, isEqual, isExternal, isMethodModelAllowed, isMigrationError, isMissingOneOfError, isMissingPropertyError, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, keyToDataPath, levels, linkTypeEnabled, listColor, listColorContinuous, loadMapApi, locationQuery, logToCsv$1 as logToCsv, logValueArray, logsKey, lookupUrl, lookups, mapFilterData, mapsUrl, markerIcon, markerPie, matchAggregatedQuery, matchAggregatedValidatedQuery, matchBoolPrefixQuery, matchCountry, matchExactQuery, matchGlobalRegion, matchId, matchNameNormalized, matchNestedKey, matchPhrasePrefixQuery, matchPhraseQuery, matchPrimaryProductQuery, matchQuery, matchRegex, matchRegion, matchTermType, matchType, maxAreaSize, measurementValue, methodTierOrder, migrationErrorMessage, migrationsUrl, missingNodeErrors, modelCount, modelKeyParams, modelParams, multiMatchQuery, nestedProperty, nestingEnabled, nestingTypeEnabled, nodeAvailableProperties, nodeLink, nodeLogsUrl, nodeTypeDataState, nodeUrl, nodeVersion, numberGte, parentKey, parentProperty, parseData, parseDataPath, parseLines, parseMessage$1 as parseMessage, parseNewValue, pathToApiDocsPath, pluralize, pointToCoordinates, polygonBounds, polygonToCoordinates, polygonToMap, polygonsFromFeature, populateWithTrackIdsFilterData, primaryProduct, productsQuery, propertyError, propertyId, recursiveProperties, refToSchemaType, refreshPropertyKeys, regionsQuery, repeat, reportIssueLink, reportIssueUrl, safeJSONParse, safeJSONStringify, schemaBaseUrl, schemaDataBaseUrl, schemaLink, schemaRequiredProperties, schemaTypeToDefaultValue, scrollToEl, scrollTop, searchFilterData, searchableTypes, siblingProperty, singleProperty, siteTooBig, sortProperties, strokeColor, strokeStyle, suggestMatchQuery, suggestQuery, takeAfterViewInit, termLocation, termLocationName, termProperties, termTypeLabel, toThousands, typeToNewProperty, typeaheadFocus, updateProperties, valueTypeToDefault, waitFor, wildcardQuery };
12315
12316
  //# sourceMappingURL=hestia-earth-ui-components.mjs.map