@hestia-earth/ui-components 0.24.0-7 → 0.24.0-8

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.
@@ -7,7 +7,7 @@ import orderBy from 'lodash.orderby';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "./node.service";
9
9
  const defaultDataStates = [DataState.original, DataState.recalculated];
10
- const nodeTypeDataState = {
10
+ export const nodeTypeDataState = {
11
11
  [NodeType.Cycle]: {
12
12
  default: defaultDataStates,
13
13
  aggregated: [DataState.original]
@@ -31,6 +31,7 @@ const nodeTypeDataStates = (nodeType, aggregated = false) => {
31
31
  const sortNodes = (values) => values?.length
32
32
  ? orderBy(values.filter(Boolean), ['original.aggregated', 'original.site.@id', 'original.cycle.@id', 'original.@id'], ['asc', 'asc', 'asc', 'asc'])
33
33
  : [];
34
+ const isAggregated = (id) => !!id.match(/^[a-zA-Z]+[-][a-zA-Z]+[-][\d]{4,}[-][\d]{4,}/g);
34
35
  export class HeNodeStoreService {
35
36
  constructor(nodeService) {
36
37
  this.nodeService = nodeService;
@@ -43,7 +44,7 @@ export class HeNodeStoreService {
43
44
  return nodes.findIndex(n => n.type === node['@type'] && n.id === node['@id']);
44
45
  }
45
46
  loadNode(node) {
46
- const aggregated = 'aggregated' in node ? node.aggregated : false;
47
+ const aggregated = 'aggregated' in node ? node.aggregated : isAggregated(node['@id']);
47
48
  const dataStates = nodeTypeDataStates(node['@type'], aggregated);
48
49
  const index = this._nodesLoadRequests[node['@type']].length;
49
50
  const request = forkJoin(dataStates.reduce((prev, dataState) => ({
@@ -51,12 +52,13 @@ export class HeNodeStoreService {
51
52
  [dataState]: this.nodeService
52
53
  .get$({ ...node, dataState })
53
54
  .pipe(catchError(() => of(undefined)))
54
- }), {})).pipe(shareReplay({ bufferSize: 1, refCount: true }), map((values) => ({
55
+ }), {})).pipe(shareReplay({ bufferSize: 1, refCount: true }), map((values) => Object.fromEntries(Object.values(DataState).map(dataState => [
56
+ dataState,
57
+ values[dataState] || values[DataState.original] || node
58
+ ]))), map(values => ({
55
59
  index,
56
60
  type: node['@type'],
57
61
  id: node['@id'],
58
- // default values when the states were not fetched
59
- ...Object.fromEntries(defaultDataStates.map(dataState => [dataState, values[DataState.original] || node])),
60
62
  ...values
61
63
  })));
62
64
  this._nodesLoadRequests[node['@type']].push({
@@ -113,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
113
115
  providedIn: 'root'
114
116
  }]
115
117
  }], ctorParameters: function () { return [{ type: i1.HeNodeService }]; } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25vZGUvbm9kZS1zdG9yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBYyxhQUFhLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBNkJyQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFdkUsTUFBTSxpQkFBaUIsR0FLbkI7SUFDRixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNoQixPQUFPLEVBQUUsaUJBQWlCO1FBQzFCLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7S0FDakM7SUFDRCxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1FBQzNCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztLQUNyQztJQUNELENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2YsT0FBTyxFQUFFLGlCQUFpQjtRQUMxQixVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0tBQ2pDO0NBQ0YsQ0FBQztBQUVGLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxRQUFrQixF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QUMsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7OEdBOUdVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKU09OTEQsIE5vZGVUeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgRGF0YVN0YXRlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBtZXJnZU1hcCwgc2hhcmVSZXBsYXksIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCBvcmRlckJ5IGZyb20gJ2xvZGFzaC5vcmRlcmJ5JztcblxuaW1wb3J0IHsgSGVOb2RlU2VydmljZSB9IGZyb20gJy4vbm9kZS5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBJU3RvcmVkTm9kZSB7XG4gIGluZGV4OiBudW1iZXI7XG4gIHR5cGU6IE5vZGVUeXBlO1xuICBpZDogc3RyaW5nO1xufVxuXG50eXBlIG5vZGVTdGF0ZXMgPSB7XG4gIFtkYXRhU3RhdGUgaW4gRGF0YVN0YXRlXT86IEpTT05MRDxOb2RlVHlwZT47XG59O1xuXG50eXBlIG5vZGVzID0ge1xuICBbbm9kZVR5cGUgaW4gTm9kZVR5cGVdPzogKG5vZGVTdGF0ZXMgJiBJU3RvcmVkTm9kZSlbXTtcbn07XG5cbnR5cGUgbm9kZUxvYWRSZXF1ZXN0ID0ge1xuICBbZGF0YVN0YXRlIGluIERhdGFTdGF0ZV06IE9ic2VydmFibGU8SlNPTkxEPE5vZGVUeXBlPj47XG59O1xuXG50eXBlIG5vZGVzTG9hZFJlcXVlc3QgPSB7XG4gIFtub2RlVHlwZSBpbiBOb2RlVHlwZV0/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICByZXF1ZXN0OiBPYnNlcnZhYmxlPG5vZGVTdGF0ZXMgJiBJU3RvcmVkTm9kZT47XG4gIH1bXTtcbn07XG5cbmNvbnN0IGRlZmF1bHREYXRhU3RhdGVzID0gW0RhdGFTdGF0ZS5vcmlnaW5hbCwgRGF0YVN0YXRlLnJlY2FsY3VsYXRlZF07XG5cbmNvbnN0IG5vZGVUeXBlRGF0YVN0YXRlOiB7XG4gIFt0eXBlIGluIE5vZGVUeXBlXT86IHtcbiAgICBkZWZhdWx0OiBEYXRhU3RhdGVbXTtcbiAgICBhZ2dyZWdhdGVkPzogRGF0YVN0YXRlW107XG4gIH07XG59ID0ge1xuICBbTm9kZVR5cGUuQ3ljbGVdOiB7XG4gICAgZGVmYXVsdDogZGVmYXVsdERhdGFTdGF0ZXMsXG4gICAgYWdncmVnYXRlZDogW0RhdGFTdGF0ZS5vcmlnaW5hbF1cbiAgfSxcbiAgW05vZGVUeXBlLkltcGFjdEFzc2Vzc21lbnRdOiB7XG4gICAgZGVmYXVsdDogZGVmYXVsdERhdGFTdGF0ZXMsXG4gICAgYWdncmVnYXRlZDogW0RhdGFTdGF0ZS5yZWNhbGN1bGF0ZWRdXG4gIH0sXG4gIFtOb2RlVHlwZS5TaXRlXToge1xuICAgIGRlZmF1bHQ6IGRlZmF1bHREYXRhU3RhdGVzLFxuICAgIGFnZ3JlZ2F0ZWQ6IFtEYXRhU3RhdGUub3JpZ2luYWxdXG4gIH1cbn07XG5cbmNvbnN0IG5vZGVUeXBlRGF0YVN0YXRlcyA9IChub2RlVHlwZTogTm9kZVR5cGUsIGFnZ3JlZ2F0ZWQgPSBmYWxzZSkgPT4ge1xuICBjb25zdCBkYXRhU3RhdGVzTWFwcGluZyA9IG5vZGVUeXBlRGF0YVN0YXRlW25vZGVUeXBlXSB8fCB7XG4gICAgZGVmYXVsdDogW0RhdGFTdGF0ZS5vcmlnaW5hbF0sXG4gICAgYWdncmVnYXRlZDogW0RhdGFTdGF0ZS5vcmlnaW5hbF1cbiAgfTtcbiAgcmV0dXJuIGFnZ3JlZ2F0ZWQgPyBkYXRhU3RhdGVzTWFwcGluZy5hZ2dyZWdhdGVkIDogZGF0YVN0YXRlc01hcHBpbmcuZGVmYXVsdDtcbn07XG5cbmNvbnN0IHNvcnROb2RlcyA9ICh2YWx1ZXM/OiBJU3RvcmVkTm9kZVtdKSA9PlxuICB2YWx1ZXM/Lmxlbmd0aFxuICAgID8gb3JkZXJCeShcbiAgICAgICAgdmFsdWVzLmZpbHRlcihCb29sZWFuKSxcbiAgICAgICAgWydvcmlnaW5hbC5hZ2dyZWdhdGVkJywgJ29yaWdpbmFsLnNpdGUuQGlkJywgJ29yaWdpbmFsLmN5Y2xlLkBpZCcsICdvcmlnaW5hbC5AaWQnXSxcbiAgICAgICAgWydhc2MnLCAnYXNjJywgJ2FzYycsICdhc2MnXVxuICAgICAgKVxuICAgIDogW107XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhlTm9kZVN0b3JlU2VydmljZSB7XG4gIHByaXZhdGUgX25vZGVzTG9hZFJlcXVlc3RzOiBub2Rlc0xvYWRSZXF1ZXN0ID0ge307XG4gIHByaXZhdGUgX25vZGVzOiBub2RlcyA9IHt9O1xuICBwcml2YXRlIF9ub2RlcyQgPSBuZXcgUmVwbGF5U3ViamVjdDxub2Rlcz4oMSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub2RlU2VydmljZTogSGVOb2RlU2VydmljZSkge31cblxuICBwcml2YXRlIGZpbmROb2RlSW5kZXg8VCBleHRlbmRzIFBpY2s8SlNPTkxEPE5vZGVUeXBlPiwgJ0B0eXBlJyB8ICdAaWQnPj4obm9kZTogVCkge1xuICAgIGNvbnN0IG5vZGVzID0gdGhpcy5fbm9kZXM/Lltub2RlWydAdHlwZSddXSB8fCBbXTtcbiAgICByZXR1cm4gbm9kZXMuZmluZEluZGV4KG4gPT4gbi50eXBlID09PSBub2RlWydAdHlwZSddICYmIG4uaWQgPT09IG5vZGVbJ0BpZCddKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZE5vZGU8VCBleHRlbmRzIFBpY2s8SlNPTkxEPE5vZGVUeXBlPiwgJ0B0eXBlJyB8ICdAaWQnPj4obm9kZTogVCkge1xuICAgIGNvbnN0IGFnZ3JlZ2F0ZWQgPSAnYWdncmVnYXRlZCcgaW4gbm9kZSA/IChub2RlLmFnZ3JlZ2F0ZWQgYXMgYm9vbGVhbikgOiBmYWxzZTtcbiAgICBjb25zdCBkYXRhU3RhdGVzID0gbm9kZVR5cGVEYXRhU3RhdGVzKG5vZGVbJ0B0eXBlJ10sIGFnZ3JlZ2F0ZWQpO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fbm9kZXNMb2FkUmVxdWVzdHNbbm9kZVsnQHR5cGUnXV0ubGVuZ3RoO1xuXG4gICAgY29uc3QgcmVxdWVzdCA9IGZvcmtKb2luKFxuICAgICAgZGF0YVN0YXRlcy5yZWR1Y2UoXG4gICAgICAgIChwcmV2LCBkYXRhU3RhdGUpID0+ICh7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBbZGF0YVN0YXRlXTogdGhpcy5ub2RlU2VydmljZVxuICAgICAgICAgICAgLmdldCQ8SlNPTkxEPE5vZGVUeXBlPj4oeyAuLi5ub2RlLCBkYXRhU3RhdGUgfSlcbiAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YodW5kZWZpbmVkKSkpXG4gICAgICAgIH0pLFxuICAgICAgICB7fSBhcyBub2RlTG9hZFJlcXVlc3RcbiAgICAgIClcbiAgICApLnBpcGUoXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pLFxuICAgICAgbWFwKFxuICAgICAgICAodmFsdWVzOiBub2RlU3RhdGVzKSA9PlxuICAgICAgICAgICh7XG4gICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIHR5cGU6IG5vZGVbJ0B0eXBlJ10sXG4gICAgICAgICAgICBpZDogbm9kZVsnQGlkJ10sXG4gICAgICAgICAgICAvLyBkZWZhdWx0IHZhbHVlcyB3aGVuIHRoZSBzdGF0ZXMgd2VyZSBub3QgZmV0Y2hlZFxuICAgICAgICAgICAgLi4uT2JqZWN0LmZyb21FbnRyaWVzKGRlZmF1bHREYXRhU3RhdGVzLm1hcChkYXRhU3RhdGUgPT4gW2RhdGFTdGF0ZSwgdmFsdWVzW0RhdGFTdGF0ZS5vcmlnaW5hbF0gfHwgbm9kZV0pKSxcbiAgICAgICAgICAgIC4uLnZhbHVlc1xuICAgICAgICAgIH0pIGFzIG5vZGVTdGF0ZXMgJiBJU3RvcmVkTm9kZVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLl9ub2Rlc0xvYWRSZXF1ZXN0c1tub2RlWydAdHlwZSddXS5wdXNoKHtcbiAgICAgIGlkOiBub2RlWydAaWQnXSxcbiAgICAgIHJlcXVlc3RcbiAgICB9KTtcblxuICAgIHJlcXVlc3Quc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5fbm9kZXNbbm9kZVsnQHR5cGUnXV1baW5kZXhdID0gZGF0YTtcbiAgICAgIHRoaXMuX25vZGVzJC5uZXh0KHRoaXMuX25vZGVzKTtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHVibGljIGFkZE5vZGU8VCBleHRlbmRzIFBpY2s8SlNPTkxEPE5vZGVUeXBlPiwgJ0B0eXBlJyB8ICdAaWQnPj4obm9kZTogVCkge1xuICAgIHRoaXMuX25vZGVzTG9hZFJlcXVlc3RzW25vZGVbJ0B0eXBlJ11dID0gdGhpcy5fbm9kZXNMb2FkUmVxdWVzdHNbbm9kZVsnQHR5cGUnXV0gfHwgW107XG4gICAgdGhpcy5fbm9kZXNbbm9kZVsnQHR5cGUnXV0gPSB0aGlzLl9ub2Rlc1tub2RlWydAdHlwZSddXSB8fCBbXTtcblxuICAgIGNvbnN0IGV4aXN0aW5nUmVxdWVzdCA9IHRoaXMuX25vZGVzTG9hZFJlcXVlc3RzW25vZGVbJ0B0eXBlJ11dLmZpbmQoKHsgaWQgfSkgPT4gaWQgPT09IG5vZGVbJ0BpZCddKTtcbiAgICByZXR1cm4gZXhpc3RpbmdSZXF1ZXN0ID8gZXhpc3RpbmdSZXF1ZXN0LnJlcXVlc3QgOiB0aGlzLmxvYWROb2RlPFQ+KG5vZGUpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZU5vZGVCeUluZGV4KG5vZGVUeXBlOiBOb2RlVHlwZSwgaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuX25vZGVzTG9hZFJlcXVlc3RzW25vZGVUeXBlXS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuX25vZGVzW25vZGVUeXBlXS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuX25vZGVzJC5uZXh0KHRoaXMuX25vZGVzKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVOb2RlPFQgZXh0ZW5kcyBKU09OTEQ8Tm9kZVR5cGU+Pihub2RlOiBUKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbmROb2RlSW5kZXgobm9kZSk7XG4gICAgcmV0dXJuIGluZGV4ID49IDAgPyB0aGlzLnJlbW92ZU5vZGVCeUluZGV4KG5vZGVbJ0B0eXBlJ10sIGluZGV4KSA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJOb2RlcygpIHtcbiAgICB0aGlzLl9ub2Rlc0xvYWRSZXF1ZXN0cyA9IHt9O1xuICAgIHRoaXMuX25vZGVzID0ge307XG4gICAgdGhpcy5fbm9kZXMkLm5leHQodGhpcy5fbm9kZXMpO1xuICB9XG5cbiAgcHVibGljIG5vZGVzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbm9kZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHNvcnRlZE5vZGVzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlcyQoKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICBub2RlcyA9PlxuICAgICAgICAgIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhub2RlcykubWFwKChbbm9kZUtleSwgdmFsdWVzXSkgPT4gW25vZGVLZXksIHNvcnROb2Rlcyh2YWx1ZXMpXSkpIGFzIG5vZGVzXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBpZHMkKG5vZGVUeXBlOiBOb2RlVHlwZSkge1xuICAgIHJldHVybiB0aGlzLm5vZGVzJCgpLnBpcGUoXG4gICAgICBtZXJnZU1hcCh2YWx1ZXMgPT4gdmFsdWVzW25vZGVUeXBlXSksXG4gICAgICBtYXAoKHsgaWQgfSkgPT4gaWQpLFxuICAgICAgdG9BcnJheSgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kJDxUIGV4dGVuZHMgSlNPTkxEPE5vZGVUeXBlPj4oXG4gICAgbm9kZVR5cGU6IE5vZGVUeXBlLFxuICAgIGlkPzogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8eyBbZGF0YVN0YXRlIGluIERhdGFTdGF0ZV0/OiBUIH1bXT4ge1xuICAgIHJldHVybiB0aGlzLm5vZGVzJCgpLnBpcGUobWFwKHZhbHVlcyA9PiAoKHZhbHVlc1tub2RlVHlwZV0gYXMgYW55W10pIHx8IFtdKS5maWx0ZXIobm9kZSA9PiAhaWQgfHwgbm9kZS5pZCA9PT0gaWQpKSk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5U3RhdGUkPFQgZXh0ZW5kcyBKU09OTEQ8Tm9kZVR5cGU+Pihub2RlVHlwZTogTm9kZVR5cGUsIGRhdGFTdGF0ZTogRGF0YVN0YXRlLCBpZD86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmZpbmQkPFQ+KG5vZGVUeXBlLCBpZCkucGlwZShtYXAodmFsdWVzID0+IHZhbHVlcy5tYXAodiA9PiB2W2RhdGFTdGF0ZV0pLmZpbHRlcihCb29sZWFuKSkpO1xuICB9XG59XG4iXX0=
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25vZGUvbm9kZS1zdG9yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBYyxhQUFhLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBNkJyQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFdkUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBSzFCO0lBQ0YsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDaEIsT0FBTyxFQUFFLGlCQUFpQjtRQUMxQixVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0tBQ2pDO0lBQ0QsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUMzQixPQUFPLEVBQUUsaUJBQWlCO1FBQzFCLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7S0FDckM7SUFDRCxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNmLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztLQUNqQztDQUNGLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFHLENB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b0IsRUFBRSxFQUFXO1FBQ25HLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBSSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7OEdBckhVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKU09OTEQsIE5vZGVUeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgRGF0YVN0YXRlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBtZXJnZU1hcCwgc2hhcmVSZXBsYXksIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCBvcmRlckJ5IGZyb20gJ2xvZGFzaC5vcmRlcmJ5JztcblxuaW1wb3J0IHsgSGVOb2RlU2VydmljZSB9IGZyb20gJy4vbm9kZS5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBJU3RvcmVkTm9kZSB7XG4gIGluZGV4OiBudW1iZXI7XG4gIHR5cGU6IE5vZGVUeXBlO1xuICBpZDogc3RyaW5nO1xufVxuXG50eXBlIG5vZGVTdGF0ZXMgPSB7XG4gIFtkYXRhU3RhdGUgaW4gRGF0YVN0YXRlXT86IEpTT05MRDxOb2RlVHlwZT47XG59O1xuXG50eXBlIG5vZGVzID0ge1xuICBbbm9kZVR5cGUgaW4gTm9kZVR5cGVdPzogKG5vZGVTdGF0ZXMgJiBJU3RvcmVkTm9kZSlbXTtcbn07XG5cbnR5cGUgbm9kZUxvYWRSZXF1ZXN0ID0ge1xuICBbZGF0YVN0YXRlIGluIERhdGFTdGF0ZV06IE9ic2VydmFibGU8SlNPTkxEPE5vZGVUeXBlPj47XG59O1xuXG50eXBlIG5vZGVzTG9hZFJlcXVlc3QgPSB7XG4gIFtub2RlVHlwZSBpbiBOb2RlVHlwZV0/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICByZXF1ZXN0OiBPYnNlcnZhYmxlPG5vZGVTdGF0ZXMgJiBJU3RvcmVkTm9kZT47XG4gIH1bXTtcbn07XG5cbmNvbnN0IGRlZmF1bHREYXRhU3RhdGVzID0gW0RhdGFTdGF0ZS5vcmlnaW5hbCwgRGF0YVN0YXRlLnJlY2FsY3VsYXRlZF07XG5cbmV4cG9ydCBjb25zdCBub2RlVHlwZURhdGFTdGF0ZToge1xuICBbdHlwZSBpbiBOb2RlVHlwZV0/OiB7XG4gICAgZGVmYXVsdDogRGF0YVN0YXRlW107XG4gICAgYWdncmVnYXRlZD86IERhdGFTdGF0ZVtdO1xuICB9O1xufSA9IHtcbiAgW05vZGVUeXBlLkN5Y2xlXToge1xuICAgIGRlZmF1bHQ6IGRlZmF1bHREYXRhU3RhdGVzLFxuICAgIGFnZ3JlZ2F0ZWQ6IFtEYXRhU3RhdGUub3JpZ2luYWxdXG4gIH0sXG4gIFtOb2RlVHlwZS5JbXBhY3RBc3Nlc3NtZW50XToge1xuICAgIGRlZmF1bHQ6IGRlZmF1bHREYXRhU3RhdGVzLFxuICAgIGFnZ3JlZ2F0ZWQ6IFtEYXRhU3RhdGUucmVjYWxjdWxhdGVkXVxuICB9LFxuICBbTm9kZVR5cGUuU2l0ZV06IHtcbiAgICBkZWZhdWx0OiBkZWZhdWx0RGF0YVN0YXRlcyxcbiAgICBhZ2dyZWdhdGVkOiBbRGF0YVN0YXRlLm9yaWdpbmFsXVxuICB9XG59O1xuXG5jb25zdCBub2RlVHlwZURhdGFTdGF0ZXMgPSAobm9kZVR5cGU6IE5vZGVUeXBlLCBhZ2dyZWdhdGVkID0gZmFsc2UpID0+IHtcbiAgY29uc3QgZGF0YVN0YXRlc01hcHBpbmcgPSBub2RlVHlwZURhdGFTdGF0ZVtub2RlVHlwZV0gfHwge1xuICAgIGRlZmF1bHQ6IFtEYXRhU3RhdGUub3JpZ2luYWxdLFxuICAgIGFnZ3JlZ2F0ZWQ6IFtEYXRhU3RhdGUub3JpZ2luYWxdXG4gIH07XG4gIHJldHVybiBhZ2dyZWdhdGVkID8gZGF0YVN0YXRlc01hcHBpbmcuYWdncmVnYXRlZCA6IGRhdGFTdGF0ZXNNYXBwaW5nLmRlZmF1bHQ7XG59O1xuXG5jb25zdCBzb3J0Tm9kZXMgPSAodmFsdWVzPzogSVN0b3JlZE5vZGVbXSkgPT5cbiAgdmFsdWVzPy5sZW5ndGhcbiAgICA/IG9yZGVyQnkoXG4gICAgICAgIHZhbHVlcy5maWx0ZXIoQm9vbGVhbiksXG4gICAgICAgIFsnb3JpZ2luYWwuYWdncmVnYXRlZCcsICdvcmlnaW5hbC5zaXRlLkBpZCcsICdvcmlnaW5hbC5jeWNsZS5AaWQnLCAnb3JpZ2luYWwuQGlkJ10sXG4gICAgICAgIFsnYXNjJywgJ2FzYycsICdhc2MnLCAnYXNjJ11cbiAgICAgIClcbiAgICA6IFtdO1xuXG5jb25zdCBpc0FnZ3JlZ2F0ZWQgPSAoaWQ6IHN0cmluZykgPT4gISFpZC5tYXRjaCgvXlthLXpBLVpdK1stXVthLXpBLVpdK1stXVtcXGRdezQsfVstXVtcXGRdezQsfS9nKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGVOb2RlU3RvcmVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfbm9kZXNMb2FkUmVxdWVzdHM6IG5vZGVzTG9hZFJlcXVlc3QgPSB7fTtcbiAgcHJpdmF0ZSBfbm9kZXM6IG5vZGVzID0ge307XG4gIHByaXZhdGUgX25vZGVzJCA9IG5ldyBSZXBsYXlTdWJqZWN0PG5vZGVzPigxKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vZGVTZXJ2aWNlOiBIZU5vZGVTZXJ2aWNlKSB7fVxuXG4gIHByaXZhdGUgZmluZE5vZGVJbmRleDxUIGV4dGVuZHMgUGljazxKU09OTEQ8Tm9kZVR5cGU+LCAnQHR5cGUnIHwgJ0BpZCc+Pihub2RlOiBUKSB7XG4gICAgY29uc3Qgbm9kZXMgPSB0aGlzLl9ub2Rlcz8uW25vZGVbJ0B0eXBlJ11dIHx8IFtdO1xuICAgIHJldHVybiBub2Rlcy5maW5kSW5kZXgobiA9PiBuLnR5cGUgPT09IG5vZGVbJ0B0eXBlJ10gJiYgbi5pZCA9PT0gbm9kZVsnQGlkJ10pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTm9kZTxUIGV4dGVuZHMgUGljazxKU09OTEQ8Tm9kZVR5cGU+LCAnQHR5cGUnIHwgJ0BpZCc+Pihub2RlOiBUKSB7XG4gICAgY29uc3QgYWdncmVnYXRlZCA9ICdhZ2dyZWdhdGVkJyBpbiBub2RlID8gKG5vZGUuYWdncmVnYXRlZCBhcyBib29sZWFuKSA6IGlzQWdncmVnYXRlZChub2RlWydAaWQnXSk7XG4gICAgY29uc3QgZGF0YVN0YXRlcyA9IG5vZGVUeXBlRGF0YVN0YXRlcyhub2RlWydAdHlwZSddLCBhZ2dyZWdhdGVkKTtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuX25vZGVzTG9hZFJlcXVlc3RzW25vZGVbJ0B0eXBlJ11dLmxlbmd0aDtcblxuICAgIGNvbnN0IHJlcXVlc3QgPSBmb3JrSm9pbihcbiAgICAgIGRhdGFTdGF0ZXMucmVkdWNlKFxuICAgICAgICAocHJldiwgZGF0YVN0YXRlKSA9PiAoe1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgW2RhdGFTdGF0ZV06IHRoaXMubm9kZVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXQkPEpTT05MRDxOb2RlVHlwZT4+KHsgLi4ubm9kZSwgZGF0YVN0YXRlIH0pXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IG9mKHVuZGVmaW5lZCkpKVxuICAgICAgICB9KSxcbiAgICAgICAge30gYXMgbm9kZUxvYWRSZXF1ZXN0XG4gICAgICApXG4gICAgKS5waXBlKFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAgICAgIG1hcChcbiAgICAgICAgKHZhbHVlczogbm9kZVN0YXRlcykgPT5cbiAgICAgICAgICBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgICBPYmplY3QudmFsdWVzKERhdGFTdGF0ZSkubWFwKGRhdGFTdGF0ZSA9PiBbXG4gICAgICAgICAgICAgIGRhdGFTdGF0ZSxcbiAgICAgICAgICAgICAgdmFsdWVzW2RhdGFTdGF0ZV0gfHwgdmFsdWVzW0RhdGFTdGF0ZS5vcmlnaW5hbF0gfHwgbm9kZVxuICAgICAgICAgICAgXSlcbiAgICAgICAgICApIGFzIG5vZGVTdGF0ZXNcbiAgICAgICksXG4gICAgICBtYXAoXG4gICAgICAgIHZhbHVlcyA9PlxuICAgICAgICAgICh7XG4gICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIHR5cGU6IG5vZGVbJ0B0eXBlJ10sXG4gICAgICAgICAgICBpZDogbm9kZVsnQGlkJ10sXG4gICAgICAgICAgICAuLi52YWx1ZXNcbiAgICAgICAgICB9KSBhcyBub2RlU3RhdGVzICYgSVN0b3JlZE5vZGVcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5fbm9kZXNMb2FkUmVxdWVzdHNbbm9kZVsnQHR5cGUnXV0ucHVzaCh7XG4gICAgICBpZDogbm9kZVsnQGlkJ10sXG4gICAgICByZXF1ZXN0XG4gICAgfSk7XG5cbiAgICByZXF1ZXN0LnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMuX25vZGVzW25vZGVbJ0B0eXBlJ11dW2luZGV4XSA9IGRhdGE7XG4gICAgICB0aGlzLl9ub2RlcyQubmV4dCh0aGlzLl9ub2Rlcyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBhZGROb2RlPFQgZXh0ZW5kcyBQaWNrPEpTT05MRDxOb2RlVHlwZT4sICdAdHlwZScgfCAnQGlkJz4+KG5vZGU6IFQpIHtcbiAgICB0aGlzLl9ub2Rlc0xvYWRSZXF1ZXN0c1tub2RlWydAdHlwZSddXSA9IHRoaXMuX25vZGVzTG9hZFJlcXVlc3RzW25vZGVbJ0B0eXBlJ11dIHx8IFtdO1xuICAgIHRoaXMuX25vZGVzW25vZGVbJ0B0eXBlJ11dID0gdGhpcy5fbm9kZXNbbm9kZVsnQHR5cGUnXV0gfHwgW107XG5cbiAgICBjb25zdCBleGlzdGluZ1JlcXVlc3QgPSB0aGlzLl9ub2Rlc0xvYWRSZXF1ZXN0c1tub2RlWydAdHlwZSddXS5maW5kKCh7IGlkIH0pID0+IGlkID09PSBub2RlWydAaWQnXSk7XG4gICAgcmV0dXJuIGV4aXN0aW5nUmVxdWVzdCA/IGV4aXN0aW5nUmVxdWVzdC5yZXF1ZXN0IDogdGhpcy5sb2FkTm9kZTxUPihub2RlKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVOb2RlQnlJbmRleChub2RlVHlwZTogTm9kZVR5cGUsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl9ub2Rlc0xvYWRSZXF1ZXN0c1tub2RlVHlwZV0uc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLl9ub2Rlc1tub2RlVHlwZV0uc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLl9ub2RlcyQubmV4dCh0aGlzLl9ub2Rlcyk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlTm9kZTxUIGV4dGVuZHMgSlNPTkxEPE5vZGVUeXBlPj4obm9kZTogVCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maW5kTm9kZUluZGV4KG5vZGUpO1xuICAgIHJldHVybiBpbmRleCA+PSAwID8gdGhpcy5yZW1vdmVOb2RlQnlJbmRleChub2RlWydAdHlwZSddLCBpbmRleCkgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGNsZWFyTm9kZXMoKSB7XG4gICAgdGhpcy5fbm9kZXNMb2FkUmVxdWVzdHMgPSB7fTtcbiAgICB0aGlzLl9ub2RlcyA9IHt9O1xuICAgIHRoaXMuX25vZGVzJC5uZXh0KHRoaXMuX25vZGVzKTtcbiAgfVxuXG4gIHB1YmxpYyBub2RlcyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25vZGVzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0ZWROb2RlcyQoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZXMkKCkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgbm9kZXMgPT5cbiAgICAgICAgICBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMobm9kZXMpLm1hcCgoW25vZGVLZXksIHZhbHVlc10pID0+IFtub2RlS2V5LCBzb3J0Tm9kZXModmFsdWVzKV0pKSBhcyBub2Rlc1xuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaWRzJChub2RlVHlwZTogTm9kZVR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlcyQoKS5waXBlKFxuICAgICAgbWVyZ2VNYXAodmFsdWVzID0+IHZhbHVlc1tub2RlVHlwZV0pLFxuICAgICAgbWFwKCh7IGlkIH0pID0+IGlkKSxcbiAgICAgIHRvQXJyYXkoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmluZCQ8VCBleHRlbmRzIEpTT05MRDxOb2RlVHlwZT4+KFxuICAgIG5vZGVUeXBlOiBOb2RlVHlwZSxcbiAgICBpZD86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPHsgW2RhdGFTdGF0ZSBpbiBEYXRhU3RhdGVdPzogVCB9W10+IHtcbiAgICByZXR1cm4gdGhpcy5ub2RlcyQoKS5waXBlKG1hcCh2YWx1ZXMgPT4gKCh2YWx1ZXNbbm9kZVR5cGVdIGFzIGFueVtdKSB8fCBbXSkuZmlsdGVyKG5vZGUgPT4gIWlkIHx8IG5vZGUuaWQgPT09IGlkKSkpO1xuICB9XG5cbiAgcHVibGljIGZpbmRCeVN0YXRlJDxUIGV4dGVuZHMgSlNPTkxEPE5vZGVUeXBlPj4obm9kZVR5cGU6IE5vZGVUeXBlLCBkYXRhU3RhdGU6IERhdGFTdGF0ZSwgaWQ/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5maW5kJDxUPihub2RlVHlwZSwgaWQpLnBpcGUobWFwKHZhbHVlcyA9PiB2YWx1ZXMubWFwKHYgPT4gdltkYXRhU3RhdGVdKS5maWx0ZXIoQm9vbGVhbikpKTtcbiAgfVxufVxuIl19
@@ -7025,6 +7025,7 @@ const nodeTypeDataStates = (nodeType, aggregated = false) => {
7025
7025
  const sortNodes = (values) => values?.length
7026
7026
  ? orderBy(values.filter(Boolean), ['original.aggregated', 'original.site.@id', 'original.cycle.@id', 'original.@id'], ['asc', 'asc', 'asc', 'asc'])
7027
7027
  : [];
7028
+ const isAggregated = (id) => !!id.match(/^[a-zA-Z]+[-][a-zA-Z]+[-][\d]{4,}[-][\d]{4,}/g);
7028
7029
  class HeNodeStoreService {
7029
7030
  constructor(nodeService) {
7030
7031
  this.nodeService = nodeService;
@@ -7037,7 +7038,7 @@ class HeNodeStoreService {
7037
7038
  return nodes.findIndex(n => n.type === node['@type'] && n.id === node['@id']);
7038
7039
  }
7039
7040
  loadNode(node) {
7040
- const aggregated = 'aggregated' in node ? node.aggregated : false;
7041
+ const aggregated = 'aggregated' in node ? node.aggregated : isAggregated(node['@id']);
7041
7042
  const dataStates = nodeTypeDataStates(node['@type'], aggregated);
7042
7043
  const index = this._nodesLoadRequests[node['@type']].length;
7043
7044
  const request = forkJoin(dataStates.reduce((prev, dataState) => ({
@@ -7045,12 +7046,13 @@ class HeNodeStoreService {
7045
7046
  [dataState]: this.nodeService
7046
7047
  .get$({ ...node, dataState })
7047
7048
  .pipe(catchError(() => of(undefined)))
7048
- }), {})).pipe(shareReplay({ bufferSize: 1, refCount: true }), map((values) => ({
7049
+ }), {})).pipe(shareReplay({ bufferSize: 1, refCount: true }), map((values) => Object.fromEntries(Object.values(DataState).map(dataState => [
7050
+ dataState,
7051
+ values[dataState] || values[DataState.original] || node
7052
+ ]))), map(values => ({
7049
7053
  index,
7050
7054
  type: node['@type'],
7051
7055
  id: node['@id'],
7052
- // default values when the states were not fetched
7053
- ...Object.fromEntries(defaultDataStates.map(dataState => [dataState, values[DataState.original] || node])),
7054
7056
  ...values
7055
7057
  })));
7056
7058
  this._nodesLoadRequests[node['@type']].push({
@@ -12065,5 +12067,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
12065
12067
  * Generated bundle index. Do not edit.
12066
12068
  */
12067
12069
 
12068
- export { ARRAY_DELIMITER, ApplyPurePipe, BibliographiesSearchConfirmComponent, BindOnceDirective, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, BlankNodesKey, ClickOutsideDirective, ClipboardComponent, ColorPalette, CompoundDirective, CompoundPipe, CycleNodesKeyGroup, CyclesCompletenessComponent, CyclesEmissionsChartComponent, CyclesFunctionalUnitMeasureComponent, CyclesNodesComponent, CyclesNodesTimelineComponent, CyclesResultComponent, DataTableComponent, DefaultPipe, DeltaColour, DiffsDisplayType, DropdownComponent, EllipsisPipe, EngineModelsStageComponent, EngineModelsVersionLinkComponent, EngineOrchestratorEditComponent, EngineRequirementsFormComponent, FilesFormComponent, FilesUploadErrorsComponent, FilterComponent, FilterHasOptionsPipe, GetPipe, GlossaryMigrationFormat, HE_API_BASE_URL, HE_CALCULATIONS_BASE_URL, HE_MAP_LOADED, HE_ORCHESTRATOR_BASE_URL, HeAggregationEngineService, HeAuthService, HeBibliographiesModule, HeCommonLightModule, HeCommonModule, HeCommonService, HeCyclesModule, HeEngineModule, HeEngineService, HeFilesModule, HeFontawesomeModule, HeGlossaryService, HeImpactAssessmentsModule, HeMendeleyService, HeNodeCsvService, HeNodeModule, HeNodeService, HeNodeStoreService, HeSchemaModule, HeSchemaService, HeSearchService, HeSelectModule, HeSitesModule, HeSvgIconsModule, HeTermsModule, HeToastService, HeUsersService, ImpactAssessmentsGraphComponent, ImpactAssessmentsIndicatorBreakdownChartComponent, ImpactAssessmentsIndicatorsChartComponent, ImpactAssessmentsProductsComponent, IsArrayPipe, IsObjectPipe, IssueConfirmComponent, KeyToLabelPipe, KeysPipe, Level, LinkKeyValueComponent, LogStatus, MAX_RESULTS, MAX_STAGE, MapsDrawingConfirmComponent, MendeleySearchResult, MobileShellComponent, NavigationMenuComponent, NavigationMenuService, NoExtPipe, NodeCsvExportConfirmComponent, NodeCsvSelectHeadersComponent, NodeDiffsComponent, NodeElementDirective, NodeIconComponent, NodeKeyState, NodeLinkComponent, NodeLogsFileComponent, NodeLogsModelsComponent, NodeMissingLookupFactorsComponent, NodeRecommendationsComponent, NodeValueDetailsComponent, NonBlankNodesKey, OPTION_GROUP_TOKEN, PluralizePipe, PopoverComponent, PopoverConfirmComponent, PrecisionPipe, RemoveMarkdownPipe, Repository, ResizedDirective, ResizedEvent, ResponsiveService, SELECT_OPTION_TOKEN, SELECT_TOKEN, SchemaInfoComponent, SchemaVersionLinkComponent, SearchExtendComponent, SelectComponent, SelectOptionComponent, SelectOptionGroupComponent, ShellComponent, SitesMapsComponent, SitesMeasurementsComponent, SkeletonTextComponent, SocialTagsComponent, SortByPipe, SortSelectComponent, TagsInputDirective, Template, TermsPropertyContentComponent, TermsSubClassOfContentComponent, TermsUnitsDescriptionComponent, ThousandSuffixesPipe, TimesPipe, ToastComponent, ToggleOptionDirective, UnitConverterComponent, addPolygonToFeature, allCountriesQuery, arrayValue, availableProperties, baseUrl, bottom, buildSummary, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, 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, formatError, formatPropertyError, formatter, getColor, gitBranch, gitHome, gitRawBaseUrl, 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, 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, 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 };
12070
+ export { ARRAY_DELIMITER, ApplyPurePipe, BibliographiesSearchConfirmComponent, BindOnceDirective, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, BlankNodesKey, ClickOutsideDirective, ClipboardComponent, ColorPalette, CompoundDirective, CompoundPipe, CycleNodesKeyGroup, CyclesCompletenessComponent, CyclesEmissionsChartComponent, CyclesFunctionalUnitMeasureComponent, CyclesNodesComponent, CyclesNodesTimelineComponent, CyclesResultComponent, DataTableComponent, DefaultPipe, DeltaColour, DiffsDisplayType, DropdownComponent, EllipsisPipe, EngineModelsStageComponent, EngineModelsVersionLinkComponent, EngineOrchestratorEditComponent, EngineRequirementsFormComponent, FilesFormComponent, FilesUploadErrorsComponent, FilterComponent, FilterHasOptionsPipe, GetPipe, GlossaryMigrationFormat, HE_API_BASE_URL, HE_CALCULATIONS_BASE_URL, HE_MAP_LOADED, HE_ORCHESTRATOR_BASE_URL, HeAggregationEngineService, HeAuthService, HeBibliographiesModule, HeCommonLightModule, HeCommonModule, HeCommonService, HeCyclesModule, HeEngineModule, HeEngineService, HeFilesModule, HeFontawesomeModule, HeGlossaryService, HeImpactAssessmentsModule, HeMendeleyService, HeNodeCsvService, HeNodeModule, HeNodeService, HeNodeStoreService, HeSchemaModule, HeSchemaService, HeSearchService, HeSelectModule, HeSitesModule, HeSvgIconsModule, HeTermsModule, HeToastService, HeUsersService, ImpactAssessmentsGraphComponent, ImpactAssessmentsIndicatorBreakdownChartComponent, ImpactAssessmentsIndicatorsChartComponent, ImpactAssessmentsProductsComponent, IsArrayPipe, IsObjectPipe, IssueConfirmComponent, KeyToLabelPipe, KeysPipe, Level, LinkKeyValueComponent, LogStatus, MAX_RESULTS, MAX_STAGE, MapsDrawingConfirmComponent, MendeleySearchResult, MobileShellComponent, NavigationMenuComponent, NavigationMenuService, NoExtPipe, NodeCsvExportConfirmComponent, NodeCsvSelectHeadersComponent, NodeDiffsComponent, NodeElementDirective, NodeIconComponent, NodeKeyState, NodeLinkComponent, NodeLogsFileComponent, NodeLogsModelsComponent, NodeMissingLookupFactorsComponent, NodeRecommendationsComponent, NodeValueDetailsComponent, NonBlankNodesKey, OPTION_GROUP_TOKEN, PluralizePipe, PopoverComponent, PopoverConfirmComponent, PrecisionPipe, RemoveMarkdownPipe, Repository, ResizedDirective, ResizedEvent, ResponsiveService, SELECT_OPTION_TOKEN, SELECT_TOKEN, SchemaInfoComponent, SchemaVersionLinkComponent, SearchExtendComponent, SelectComponent, SelectOptionComponent, SelectOptionGroupComponent, ShellComponent, SitesMapsComponent, SitesMeasurementsComponent, SkeletonTextComponent, SocialTagsComponent, SortByPipe, SortSelectComponent, TagsInputDirective, Template, TermsPropertyContentComponent, TermsSubClassOfContentComponent, TermsUnitsDescriptionComponent, ThousandSuffixesPipe, TimesPipe, ToastComponent, ToggleOptionDirective, UnitConverterComponent, addPolygonToFeature, allCountriesQuery, arrayValue, availableProperties, baseUrl, bottom, buildSummary, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, 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, formatError, formatPropertyError, formatter, getColor, gitBranch, gitHome, gitRawBaseUrl, 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, 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 };
12069
12071
  //# sourceMappingURL=hestia-earth-ui-components.mjs.map