@hestia-earth/ui-components 0.27.56 → 0.27.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/engine/engine-models-stage-deep/engine-models-stage-deep.component.d.ts +1 -0
- package/esm2022/engine/engine-models-stage-deep/engine-models-stage-deep.component.mjs +13 -10
- package/fesm2022/hestia-earth-ui-components.mjs +11 -8
- package/fesm2022/hestia-earth-ui-components.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -31,6 +31,7 @@ export declare class EngineModelsStageDeepComponent<T extends NodeType> {
|
|
|
31
31
|
protected readonly inProgress: import("@angular/core").Signal<boolean>;
|
|
32
32
|
protected readonly canExpand: import("@angular/core").Signal<number>;
|
|
33
33
|
constructor();
|
|
34
|
+
private loadNode$;
|
|
34
35
|
private findNode;
|
|
35
36
|
protected trackNode(node: IJSONLDExtended): string;
|
|
36
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<EngineModelsStageDeepComponent<any>, never>;
|
|
@@ -2,7 +2,7 @@ import { Component, computed, effect, inject, input, model, signal } from '@angu
|
|
|
2
2
|
import { jsonldPath, NodeType } from '@hestia-earth/schema';
|
|
3
3
|
import { toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { DataState } from '@hestia-earth/api';
|
|
5
|
-
import { filter, map, mergeMap, tap, toArray } from 'rxjs/operators';
|
|
5
|
+
import { catchError, filter, map, mergeMap, tap, toArray } from 'rxjs/operators';
|
|
6
6
|
import { combineLatest, from, of } from 'rxjs';
|
|
7
7
|
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
|
|
8
8
|
import { faAngleDown, faAngleRight } from '@fortawesome/free-solid-svg-icons';
|
|
@@ -45,10 +45,10 @@ export class EngineModelsStageDeepComponent {
|
|
|
45
45
|
this.relatedNodes = signal([]);
|
|
46
46
|
this.relatedNodes$ = toObservable(this.relatedNodes);
|
|
47
47
|
this.nodesLength = toSignal(this.relatedNodes$.pipe(map(nodes => nodes?.length ?? 0)));
|
|
48
|
-
this.nodes = toSignal(combineLatest([this.relatedNodes$, this.nodeStoreService.nodes$()]).pipe(filter(([nodes]) => nodes?.length > 0), distinctUntilChangedDeep(), tap(() => this.loading.set(true)), mergeMap(([nodes, allNodes]) => from(nodes).pipe(mergeMap(node => this.findNode(allNodes, node)), toArray())), tap(() => this.loading.set(false))));
|
|
48
|
+
this.nodes = toSignal(combineLatest([this.relatedNodes$, this.nodeStoreService.nodes$()]).pipe(filter(([nodes]) => nodes?.length > 0), distinctUntilChangedDeep(), tap(() => this.loading.set(true)), mergeMap(([nodes, allNodes]) => from(nodes).pipe(mergeMap(node => this.findNode(allNodes, node)), filter(v => !!v), toArray())), tap(() => this.loading.set(false))));
|
|
49
49
|
this.expandableNodes = computed(() => this.nodes()?.filter(n => this.expandedNode()?.['@type'] !== n['@type'] && this.expandedNode()?.['@id'] !== n['@id']) ?? []);
|
|
50
50
|
this.defaultMaxStage = computed(() => NODE_MAX_STAGE[this.type()]);
|
|
51
|
-
this.stage = computed(() => +this.node().stage);
|
|
51
|
+
this.stage = computed(() => +this.node().stage || 0);
|
|
52
52
|
this.maxstage = computed(() => +this.node().maxstage || this.defaultMaxStage());
|
|
53
53
|
this.inProgress = computed(() => this.stage() < this.maxstage());
|
|
54
54
|
this.canExpand = computed(() => this.expandableNodes()?.length);
|
|
@@ -61,16 +61,19 @@ export class EngineModelsStageDeepComponent {
|
|
|
61
61
|
.subscribe(values => this.relatedNodes.set([...values, ...nestedNodes]));
|
|
62
62
|
}, { allowSignalWrites: true });
|
|
63
63
|
}
|
|
64
|
+
loadNode$(node, dataState) {
|
|
65
|
+
return this.nodeService
|
|
66
|
+
.getWithHeaders$({
|
|
67
|
+
...node,
|
|
68
|
+
dataState
|
|
69
|
+
})
|
|
70
|
+
.pipe(map(({ data, headers }) => mergeDataWithHeaders(data, headers)));
|
|
71
|
+
}
|
|
64
72
|
findNode(allNodes, node) {
|
|
65
73
|
const matchedNode = allNodes?.[node['@type']]?.find(v => v?.id === node['@id']);
|
|
66
74
|
return matchedNode
|
|
67
75
|
? of(matchedNode.recalculated)
|
|
68
|
-
: this.
|
|
69
|
-
.getWithHeaders$({
|
|
70
|
-
...node,
|
|
71
|
-
dataState: DataState.recalculated
|
|
72
|
-
})
|
|
73
|
-
.pipe(map(({ data, headers }) => mergeDataWithHeaders(data, headers)));
|
|
76
|
+
: this.loadNode$(node, DataState.recalculated).pipe(catchError(() => this.loadNode$(node, DataState.original)));
|
|
74
77
|
}
|
|
75
78
|
trackNode(node) {
|
|
76
79
|
return jsonldPath(node['@type'], node['@id']);
|
|
@@ -82,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
82
85
|
type: Component,
|
|
83
86
|
args: [{ selector: 'he-engine-models-stage-deep', standalone: true, imports: [FaIconComponent, EngineModelsVersionLinkComponent, SkeletonTextComponent, TimesPipe, NodeLinkComponent], template: "<div\n class=\"is-flex is-flex-direction-column is-gap-8 is-py-2 is-pl-2 | engine-models-stage--container is-type-{{ type }}\"\n [style.border-color]=\"nodeColour()\">\n <div class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-8\">\n @if (canExpand()) {\n <div (click)=\"expanded.set(!expanded())\" pointer>\n <fa-icon [icon]=\"expanded() ? faAngleDown : faAngleRight\"></fa-icon>\n </div>\n }\n\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-8 is-flex-wrap-wrap is-flex-grow-1\">\n <he-node-link class=\"is-flex-grow-1\" [node]=\"node()\" [showExternalLink]=\"true\">\n <span>{{ type() }} {{ id() }}</span>\n </he-node-link>\n\n <div class=\"is-flex is-flex-direction-column is-gap-4 | engine-models-stage--calculations\">\n <div class=\"is-flex is-gap-4 is-pr-2\">\n <span class=\"has-text-secondary has-text-weight-bold\">Calculations:</span>\n\n @if (inProgress()) {\n <span [class.has-text-danger]=\"stage() === 0\" [class.has-text-warning]=\"stage() > 0\">\n stage {{ stage() }} / {{ maxstage() }}\n </span>\n } @else {\n <span class=\"has-text-success\">complete</span>\n }\n </div>\n\n @if (showVersion()) {\n <he-engine-models-version-link [node]=\"node()\" [showDetails]=\"false\"></he-engine-models-version-link>\n }\n </div>\n </div>\n </div>\n\n @if (expanded()) {\n @if (loading() && nodesLength() > 0) {\n @for (node of nodesLength() | times; track $index) {\n <he-skeleton-text [width]=\"60\" />\n }\n }\n\n @for (relatedNode of expandableNodes(); track trackNode(relatedNode)) {\n <div class=\"related-node\">\n <he-engine-models-stage-deep\n [node]=\"relatedNode\"\n [expanded]=\"false\"\n [showVersion]=\"showVersion()\"\n [expandedNode]=\"expandedNode() || node()\" />\n </div>\n }\n }\n</div>\n", styles: [".engine-models-stage--container{border:1px solid transparent;border-radius:3px}.engine-models-stage--calculations{width:175px}he-engine-models-stage-deep ::ng-deep .engine-models-stage--container{border-right:0px;border-top-right-radius:0;border-bottom-right-radius:0}\n"] }]
|
|
84
87
|
}], ctorParameters: () => [] });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC9lbmdpbmUtbW9kZWxzLXN0YWdlLWRlZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWlELFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0s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QUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDaEYsT0FBTyxXQUFXO1lBQ2hCLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFlBQStCLENBQUM7WUFDakQsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXO2lCQUNiLGVBQWUsQ0FBWTtnQkFDMUIsR0FBRyxJQUFJO2dCQUNQLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWTthQUNsQyxDQUFDO2lCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsb0JBQW9CLENBQWtCLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVTLFNBQVMsQ0FBQyxJQUFxQjtRQUN2QyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQzsrR0F2RlUsOEJBQThCO21HQUE5Qiw4QkFBOEIsMHJCQzlDM0MsbWdFQXNEQSx3VURSYSw4QkFBOEIsdUxBSi9CLGVBQWUsa1BBQUUsZ0NBQWdDLDJHQUFFLHFCQUFxQixpR0FBRSxTQUFTLDhDQUFFLGlCQUFpQjs7NEZBSXJHLDhCQUE4QjtrQkFQMUMsU0FBUzsrQkFDRSw2QkFBNkIsY0FDM0IsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLGdDQUFnQyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUN5Y2xlSlNPTkxELCBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCwgSlNPTkxELCBqc29ubGRQYXRoLCBOb2RlVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBEYXRhU3RhdGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHRhcCwgdG9BcnJheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZyb20sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGYUljb25Db21wb25lbnQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBmYUFuZ2xlRG93biwgZmFBbmdsZVJpZ2h0IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcblxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWREZWVwIH0gZnJvbSAnLi4vLi4vY29tbW9uL3J4anMtdXRpbHMnO1xuaW1wb3J0IHsgVGltZXNQaXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3RpbWVzLnBpcGUnO1xuaW1wb3J0IHsgU2tlbGV0b25UZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL3NrZWxldG9uLXRleHQvc2tlbGV0b24tdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTk9ERV9NQVhfU1RBR0UsIEhlTm9kZVNlcnZpY2UsIElSZWxhdGVkTm9kZSwgbm9kZUNvbG91cnMgfSBmcm9tICcuLi8uLi9ub2RlL25vZGUuc2VydmljZSc7XG5pbXBvcnQgeyBub2RlcywgSGVOb2RlU3RvcmVTZXJ2aWNlLCBtZXJnZURhdGFXaXRoSGVhZGVycyB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IEVuZ2luZU1vZGVsc1ZlcnNpb25MaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbmsvZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbm9kZS9ub2RlLWxpbmsvbm9kZS1saW5rLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBJSlNPTkxERXh0ZW5kZWQgZXh0ZW5kcyBKU09OTEQ8Tm9kZVR5cGU+IHtcbiAgc3RhZ2U/OiBudW1iZXI7XG4gIG1heHN0YWdlPzogbnVtYmVyO1xufVxuXG5jb25zdCBuZXN0ZWROb2Rlc0J5VHlwZToge1xuICBbdHlwZSBpbiBOb2RlVHlwZV0/OiAobm9kZTogSUpTT05MREV4dGVuZGVkKSA9PiAoSlNPTkxEPE5vZGVUeXBlPiB8IEpTT05MRDxOb2RlVHlwZT5bXSlbXTtcbn0gPSB7XG4gIFtOb2RlVHlwZS5DeWNsZV06IChub2RlOiBJQ3ljbGVKU09OTEQpID0+IFtcbiAgICBub2RlLnNpdGUsXG4gICAgbm9kZS5vdGhlclNpdGVzLFxuICAgIG5vZGUuaW5wdXRzPy5tYXAoaW5wdXQgPT4gaW5wdXQuaW1wYWN0QXNzZXNzbWVudCBhcyBhbnkpPy5mbGF0KClcbiAgXSxcbiAgW05vZGVUeXBlLkltcGFjdEFzc2Vzc21lbnRdOiAobm9kZTogSUltcGFjdEFzc2Vzc21lbnRKU09OTEQpID0+IFtub2RlLmN5Y2xlXVxufTtcblxuY29uc3QgcmVsYXRlZE5vZGVzQnlUeXBlOiB7XG4gIFt0eXBlIGluIE5vZGVUeXBlXT86IE5vZGVUeXBlW107XG59ID0ge1xuICBbTm9kZVR5cGUuU2l0ZV06IFtOb2RlVHlwZS5DeWNsZV1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWVuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGYUljb25Db21wb25lbnQsIEVuZ2luZU1vZGVsc1ZlcnNpb25MaW5rQ29tcG9uZW50LCBTa2VsZXRvblRleHRDb21wb25lbnQsIFRpbWVzUGlwZSwgTm9kZUxpbmtDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRW5naW5lTW9kZWxzU3RhZ2VEZWVwQ29tcG9uZW50PFQgZXh0ZW5kcyBOb2RlVHlwZT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVTZXJ2aWNlID0gaW5qZWN0KEhlTm9kZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVTdG9yZVNlcnZpY2UgPSBpbmplY3QoSGVOb2RlU3RvcmVTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFBbmdsZVJpZ2h0ID0gZmFBbmdsZVJpZ2h0O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFBbmdsZURvd24gPSBmYUFuZ2xlRG93bjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm9kZSA9IGlucHV0LnJlcXVpcmVkPElKU09OTERFeHRlbmRlZD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXhwYW5kZWQgPSBtb2RlbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93VmVyc2lvbiA9IG1vZGVsKHRydWUpO1xuICAvKipcbiAgICogV2hlbiBuZXN0aW5nIHRoZSBjb21wb25lbnRzLCBhdm9pZCBhbGxvd2luZyBleHBhbnNpb24gb24gdGhlIHRvcC1sZXZlbCBub2RlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGV4cGFuZGVkTm9kZSA9IGlucHV0PElKU09OTERFeHRlbmRlZD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm5vZGUoKVsnQGlkJ10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHlwZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubm9kZSgpWydAdHlwZSddKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm9kZUNvbG91ciA9IGNvbXB1dGVkKCgpID0+IG5vZGVDb2xvdXJzW3RoaXMudHlwZSgpXSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZWxhdGVkTm9kZXMgPSBzaWduYWw8KEpTT05MRDxOb2RlVHlwZT4gfCBJUmVsYXRlZE5vZGUpW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZWxhdGVkTm9kZXMkID0gdG9PYnNlcnZhYmxlKHRoaXMucmVsYXRlZE5vZGVzKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vZGVzTGVuZ3RoID0gdG9TaWduYWwodGhpcy5yZWxhdGVkTm9kZXMkLnBpcGUobWFwKG5vZGVzID0+IG5vZGVzPy5sZW5ndGggPz8gMCkpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVzID0gdG9TaWduYWwoXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5yZWxhdGVkTm9kZXMkLCB0aGlzLm5vZGVTdG9yZVNlcnZpY2Uubm9kZXMkKCldKS5waXBlKFxuICAgICAgZmlsdGVyKChbbm9kZXNdKSA9PiBub2Rlcz8ubGVuZ3RoID4gMCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZERlZXAoKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KHRydWUpKSxcbiAgICAgIG1lcmdlTWFwKChbbm9kZXMsIGFsbE5vZGVzXSkgPT5cbiAgICAgICAgZnJvbShub2RlcykucGlwZShcbiAgICAgICAgICBtZXJnZU1hcChub2RlID0+IHRoaXMuZmluZE5vZGUoYWxsTm9kZXMsIG5vZGUpKSxcbiAgICAgICAgICB0b0FycmF5KClcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKSlcbiAgICApXG4gICk7XG4gIHByb3RlY3RlZCByZWFkb25seSBleHBhbmRhYmxlTm9kZXMgPSBjb21wdXRlZChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5ub2RlcygpPy5maWx0ZXIoXG4gICAgICAgIG4gPT4gdGhpcy5leHBhbmRlZE5vZGUoKT8uWydAdHlwZSddICE9PSBuWydAdHlwZSddICYmIHRoaXMuZXhwYW5kZWROb2RlKCk/LlsnQGlkJ10gIT09IG5bJ0BpZCddXG4gICAgICApID8/IFtdXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0TWF4U3RhZ2UgPSBjb21wdXRlZCgoKSA9PiBOT0RFX01BWF9TVEFHRVt0aGlzLnR5cGUoKV0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhZ2UgPSBjb21wdXRlZCgoKSA9PiArdGhpcy5ub2RlKCkuc3RhZ2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWF4c3RhZ2UgPSBjb21wdXRlZCgoKSA9PiArdGhpcy5ub2RlKCkubWF4c3RhZ2UgfHwgdGhpcy5kZWZhdWx0TWF4U3RhZ2UoKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpblByb2dyZXNzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdGFnZSgpIDwgdGhpcy5tYXhzdGFnZSgpKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuRXhwYW5kID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5leHBhbmRhYmxlTm9kZXMoKT8ubGVuZ3RoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGUoKTtcbiAgICAgICAgY29uc3QgbmVzdGVkTm9kZXMgPSBuZXN0ZWROb2Rlc0J5VHlwZVtub2RlWydAdHlwZSddXT8uKG5vZGUpPy5mbGF0KCk/LmZpbHRlcihCb29sZWFuKSA/PyBbXTtcbiAgICAgICAgY29uc3QgcmVsYXRlZE5vZGVzID0gcmVsYXRlZE5vZGVzQnlUeXBlW25vZGVbJ0B0eXBlJ11dID8/IFtdO1xuXG4gICAgICAgIGZyb20ocmVsYXRlZE5vZGVzKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAobm9kZVR5cGUgPT4gdGhpcy5ub2RlU2VydmljZS5nZXRSZWxhdGVkJChub2RlLCBub2RlVHlwZSkucGlwZShtZXJnZU1hcCgoeyByZXN1bHRzIH0pID0+IHJlc3VsdHMpKSksXG4gICAgICAgICAgICB0b0FycmF5KClcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSh2YWx1ZXMgPT4gdGhpcy5yZWxhdGVkTm9kZXMuc2V0KFsuLi52YWx1ZXMsIC4uLm5lc3RlZE5vZGVzXSkpO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZpbmROb2RlKGFsbE5vZGVzOiBub2Rlcywgbm9kZTogSlNPTkxEPE5vZGVUeXBlPiB8IElSZWxhdGVkTm9kZSkge1xuICAgIGNvbnN0IG1hdGNoZWROb2RlID0gYWxsTm9kZXM/Lltub2RlWydAdHlwZSddXT8uZmluZCh2ID0+IHY/LmlkID09PSBub2RlWydAaWQnXSk7XG4gICAgcmV0dXJuIG1hdGNoZWROb2RlXG4gICAgICA/IG9mKG1hdGNoZWROb2RlLnJlY2FsY3VsYXRlZCBhcyBJSlNPTkxERXh0ZW5kZWQpXG4gICAgICA6IHRoaXMubm9kZVNlcnZpY2VcbiAgICAgICAgICAuZ2V0V2l0aEhlYWRlcnMkPEpTT05MRDxUPj4oe1xuICAgICAgICAgICAgLi4ubm9kZSxcbiAgICAgICAgICAgIGRhdGFTdGF0ZTogRGF0YVN0YXRlLnJlY2FsY3VsYXRlZFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnBpcGUobWFwKCh7IGRhdGEsIGhlYWRlcnMgfSkgPT4gbWVyZ2VEYXRhV2l0aEhlYWRlcnM8SUpTT05MREV4dGVuZGVkPihkYXRhLCBoZWFkZXJzKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRyYWNrTm9kZShub2RlOiBJSlNPTkxERXh0ZW5kZWQpIHtcbiAgICByZXR1cm4ganNvbmxkUGF0aChub2RlWydAdHlwZSddLCBub2RlWydAaWQnXSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJpcy1mbGV4IGlzLWZsZXgtZGlyZWN0aW9uLWNvbHVtbiBpcy1nYXAtOCBpcy1weS0yIGlzLXBsLTIgfCBlbmdpbmUtbW9kZWxzLXN0YWdlLS1jb250YWluZXIgaXMtdHlwZS17eyB0eXBlIH19XCJcbiAgW3N0eWxlLmJvcmRlci1jb2xvcl09XCJub2RlQ29sb3VyKClcIj5cbiAgPGRpdiBjbGFzcz1cImlzLWZsZXggaXMtZmxleC1kaXJlY3Rpb24tcm93IGlzLWp1c3RpZnktY29udGVudC1zcGFjZS1iZXR3ZWVuIGlzLWdhcC04XCI+XG4gICAgQGlmIChjYW5FeHBhbmQoKSkge1xuICAgICAgPGRpdiAoY2xpY2spPVwiZXhwYW5kZWQuc2V0KCFleHBhbmRlZCgpKVwiIHBvaW50ZXI+XG4gICAgICAgIDxmYS1pY29uIFtpY29uXT1cImV4cGFuZGVkKCkgPyBmYUFuZ2xlRG93biA6IGZhQW5nbGVSaWdodFwiPjwvZmEtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiaXMtZmxleCBpcy1mbGV4LWRpcmVjdGlvbi1yb3cgaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4gaXMtZ2FwLTggaXMtZmxleC13cmFwLXdyYXAgaXMtZmxleC1ncm93LTFcIj5cbiAgICAgIDxoZS1ub2RlLWxpbmsgY2xhc3M9XCJpcy1mbGV4LWdyb3ctMVwiIFtub2RlXT1cIm5vZGUoKVwiIFtzaG93RXh0ZXJuYWxMaW5rXT1cInRydWVcIj5cbiAgICAgICAgPHNwYW4+e3sgdHlwZSgpIH19IHt7IGlkKCkgfX08L3NwYW4+XG4gICAgICA8L2hlLW5vZGUtbGluaz5cblxuICAgICAgPGRpdiBjbGFzcz1cImlzLWZsZXggaXMtZmxleC1kaXJlY3Rpb24tY29sdW1uIGlzLWdhcC00IHwgZW5naW5lLW1vZGVscy1zdGFnZS0tY2FsY3VsYXRpb25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpcy1mbGV4IGlzLWdhcC00IGlzLXByLTJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImhhcy10ZXh0LXNlY29uZGFyeSBoYXMtdGV4dC13ZWlnaHQtYm9sZFwiPkNhbGN1bGF0aW9uczo8L3NwYW4+XG5cbiAgICAgICAgICBAaWYgKGluUHJvZ3Jlc3MoKSkge1xuICAgICAgICAgICAgPHNwYW4gW2NsYXNzLmhhcy10ZXh0LWRhbmdlcl09XCJzdGFnZSgpID09PSAwXCIgW2NsYXNzLmhhcy10ZXh0LXdhcm5pbmddPVwic3RhZ2UoKSA+IDBcIj5cbiAgICAgICAgICAgICAgc3RhZ2Uge3sgc3RhZ2UoKSB9fSAvIHt7IG1heHN0YWdlKCkgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGFzLXRleHQtc3VjY2Vzc1wiPmNvbXBsZXRlPC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChzaG93VmVyc2lvbigpKSB7XG4gICAgICAgICAgPGhlLWVuZ2luZS1tb2RlbHMtdmVyc2lvbi1saW5rIFtub2RlXT1cIm5vZGUoKVwiIFtzaG93RGV0YWlsc109XCJmYWxzZVwiPjwvaGUtZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbms+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBAaWYgKGV4cGFuZGVkKCkpIHtcbiAgICBAaWYgKGxvYWRpbmcoKSAmJiBub2Rlc0xlbmd0aCgpID4gMCkge1xuICAgICAgQGZvciAobm9kZSBvZiBub2Rlc0xlbmd0aCgpIHwgdGltZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8aGUtc2tlbGV0b24tdGV4dCBbd2lkdGhdPVwiNjBcIiAvPlxuICAgICAgfVxuICAgIH1cblxuICAgIEBmb3IgKHJlbGF0ZWROb2RlIG9mIGV4cGFuZGFibGVOb2RlcygpOyB0cmFjayB0cmFja05vZGUocmVsYXRlZE5vZGUpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRlZC1ub2RlXCI+XG4gICAgICAgIDxoZS1lbmdpbmUtbW9kZWxzLXN0YWdlLWRlZXBcbiAgICAgICAgICBbbm9kZV09XCJyZWxhdGVkTm9kZVwiXG4gICAgICAgICAgW2V4cGFuZGVkXT1cImZhbHNlXCJcbiAgICAgICAgICBbc2hvd1ZlcnNpb25dPVwic2hvd1ZlcnNpb24oKVwiXG4gICAgICAgICAgW2V4cGFuZGVkTm9kZV09XCJleHBhbmRlZE5vZGUoKSB8fCBub2RlKClcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC9lbmdpbmUtbW9kZWxzLXN0YWdlLWRlZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWlELFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFOUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIs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SSxXQUNQLENBQUMsZUFBZSxFQUFFLGdDQUFnQyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUN5Y2xlSlNPTkxELCBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCwgSlNPTkxELCBqc29ubGRQYXRoLCBOb2RlVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBEYXRhU3RhdGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHRhcCwgdG9BcnJheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZyb20sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGYUljb25Db21wb25lbnQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBmYUFuZ2xlRG93biwgZmFBbmdsZVJpZ2h0IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcblxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWREZWVwIH0gZnJvbSAnLi4vLi4vY29tbW9uL3J4anMtdXRpbHMnO1xuaW1wb3J0IHsgVGltZXNQaXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3RpbWVzLnBpcGUnO1xuaW1wb3J0IHsgU2tlbGV0b25UZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL3NrZWxldG9uLXRleHQvc2tlbGV0b24tdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTk9ERV9NQVhfU1RBR0UsIEhlTm9kZVNlcnZpY2UsIElSZWxhdGVkTm9kZSwgbm9kZUNvbG91cnMgfSBmcm9tICcuLi8uLi9ub2RlL25vZGUuc2VydmljZSc7XG5pbXBvcnQgeyBub2RlcywgSGVOb2RlU3RvcmVTZXJ2aWNlLCBtZXJnZURhdGFXaXRoSGVhZGVycyB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IEVuZ2luZU1vZGVsc1ZlcnNpb25MaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbmsvZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbm9kZS9ub2RlLWxpbmsvbm9kZS1saW5rLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBJSlNPTkxERXh0ZW5kZWQgZXh0ZW5kcyBKU09OTEQ8Tm9kZVR5cGU+IHtcbiAgc3RhZ2U/OiBudW1iZXI7XG4gIG1heHN0YWdlPzogbnVtYmVyO1xufVxuXG5jb25zdCBuZXN0ZWROb2Rlc0J5VHlwZToge1xuICBbdHlwZSBpbiBOb2RlVHlwZV0/OiAobm9kZTogSUpTT05MREV4dGVuZGVkKSA9PiAoSlNPTkxEPE5vZGVUeXBlPiB8IEpTT05MRDxOb2RlVHlwZT5bXSlbXTtcbn0gPSB7XG4gIFtOb2RlVHlwZS5DeWNsZV06IChub2RlOiBJQ3ljbGVKU09OTEQpID0+IFtcbiAgICBub2RlLnNpdGUsXG4gICAgbm9kZS5vdGhlclNpdGVzLFxuICAgIG5vZGUuaW5wdXRzPy5tYXAoaW5wdXQgPT4gaW5wdXQuaW1wYWN0QXNzZXNzbWVudCBhcyBhbnkpPy5mbGF0KClcbiAgXSxcbiAgW05vZGVUeXBlLkltcGFjdEFzc2Vzc21lbnRdOiAobm9kZTogSUltcGFjdEFzc2Vzc21lbnRKU09OTEQpID0+IFtub2RlLmN5Y2xlXVxufTtcblxuY29uc3QgcmVsYXRlZE5vZGVzQnlUeXBlOiB7XG4gIFt0eXBlIGluIE5vZGVUeXBlXT86IE5vZGVUeXBlW107XG59ID0ge1xuICBbTm9kZVR5cGUuU2l0ZV06IFtOb2RlVHlwZS5DeWNsZV1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWVuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGYUljb25Db21wb25lbnQsIEVuZ2luZU1vZGVsc1ZlcnNpb25MaW5rQ29tcG9uZW50LCBTa2VsZXRvblRleHRDb21wb25lbnQsIFRpbWVzUGlwZSwgTm9kZUxpbmtDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRW5naW5lTW9kZWxzU3RhZ2VEZWVwQ29tcG9uZW50PFQgZXh0ZW5kcyBOb2RlVHlwZT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVTZXJ2aWNlID0gaW5qZWN0KEhlTm9kZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVTdG9yZVNlcnZpY2UgPSBpbmplY3QoSGVOb2RlU3RvcmVTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFBbmdsZVJpZ2h0ID0gZmFBbmdsZVJpZ2h0O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFBbmdsZURvd24gPSBmYUFuZ2xlRG93bjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm9kZSA9IGlucHV0LnJlcXVpcmVkPElKU09OTERFeHRlbmRlZD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXhwYW5kZWQgPSBtb2RlbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93VmVyc2lvbiA9IG1vZGVsKHRydWUpO1xuICAvKipcbiAgICogV2hlbiBuZXN0aW5nIHRoZSBjb21wb25lbnRzLCBhdm9pZCBhbGxvd2luZyBleHBhbnNpb24gb24gdGhlIHRvcC1sZXZlbCBub2RlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGV4cGFuZGVkTm9kZSA9IGlucHV0PElKU09OTERFeHRlbmRlZD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm5vZGUoKVsnQGlkJ10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHlwZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubm9kZSgpWydAdHlwZSddKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm9kZUNvbG91ciA9IGNvbXB1dGVkKCgpID0+IG5vZGVDb2xvdXJzW3RoaXMudHlwZSgpXSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZWxhdGVkTm9kZXMgPSBzaWduYWw8KEpTT05MRDxOb2RlVHlwZT4gfCBJUmVsYXRlZE5vZGUpW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZWxhdGVkTm9kZXMkID0gdG9PYnNlcnZhYmxlKHRoaXMucmVsYXRlZE5vZGVzKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vZGVzTGVuZ3RoID0gdG9TaWduYWwodGhpcy5yZWxhdGVkTm9kZXMkLnBpcGUobWFwKG5vZGVzID0+IG5vZGVzPy5sZW5ndGggPz8gMCkpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVzID0gdG9TaWduYWwoXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5yZWxhdGVkTm9kZXMkLCB0aGlzLm5vZGVTdG9yZVNlcnZpY2Uubm9kZXMkKCldKS5waXBlKFxuICAgICAgZmlsdGVyKChbbm9kZXNdKSA9PiBub2Rlcz8ubGVuZ3RoID4gMCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZERlZXAoKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KHRydWUpKSxcbiAgICAgIG1lcmdlTWFwKChbbm9kZXMsIGFsbE5vZGVzXSkgPT5cbiAgICAgICAgZnJvbShub2RlcykucGlwZShcbiAgICAgICAgICBtZXJnZU1hcChub2RlID0+IHRoaXMuZmluZE5vZGUoYWxsTm9kZXMsIG5vZGUpKSxcbiAgICAgICAgICBmaWx0ZXIodiA9PiAhIXYpLFxuICAgICAgICAgIHRvQXJyYXkoKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgdGFwKCgpID0+IHRoaXMubG9hZGluZy5zZXQoZmFsc2UpKVxuICAgIClcbiAgKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGV4cGFuZGFibGVOb2RlcyA9IGNvbXB1dGVkKFxuICAgICgpID0+XG4gICAgICB0aGlzLm5vZGVzKCk/LmZpbHRlcihcbiAgICAgICAgbiA9PiB0aGlzLmV4cGFuZGVkTm9kZSgpPy5bJ0B0eXBlJ10gIT09IG5bJ0B0eXBlJ10gJiYgdGhpcy5leHBhbmRlZE5vZGUoKT8uWydAaWQnXSAhPT0gblsnQGlkJ11cbiAgICAgICkgPz8gW11cbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRNYXhTdGFnZSA9IGNvbXB1dGVkKCgpID0+IE5PREVfTUFYX1NUQUdFW3RoaXMudHlwZSgpXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzdGFnZSA9IGNvbXB1dGVkKCgpID0+ICt0aGlzLm5vZGUoKS5zdGFnZSB8fCAwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1heHN0YWdlID0gY29tcHV0ZWQoKCkgPT4gK3RoaXMubm9kZSgpLm1heHN0YWdlIHx8IHRoaXMuZGVmYXVsdE1heFN0YWdlKCkpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5Qcm9ncmVzcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhZ2UoKSA8IHRoaXMubWF4c3RhZ2UoKSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbkV4cGFuZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZXhwYW5kYWJsZU5vZGVzKCk/Lmxlbmd0aCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5ub2RlKCk7XG4gICAgICAgIGNvbnN0IG5lc3RlZE5vZGVzID0gbmVzdGVkTm9kZXNCeVR5cGVbbm9kZVsnQHR5cGUnXV0/Lihub2RlKT8uZmxhdCgpPy5maWx0ZXIoQm9vbGVhbikgPz8gW107XG4gICAgICAgIGNvbnN0IHJlbGF0ZWROb2RlcyA9IHJlbGF0ZWROb2Rlc0J5VHlwZVtub2RlWydAdHlwZSddXSA/PyBbXTtcblxuICAgICAgICBmcm9tKHJlbGF0ZWROb2RlcylcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKG5vZGVUeXBlID0+IHRoaXMubm9kZVNlcnZpY2UuZ2V0UmVsYXRlZCQobm9kZSwgbm9kZVR5cGUpLnBpcGUobWVyZ2VNYXAoKHsgcmVzdWx0cyB9KSA9PiByZXN1bHRzKSkpLFxuICAgICAgICAgICAgdG9BcnJheSgpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWVzID0+IHRoaXMucmVsYXRlZE5vZGVzLnNldChbLi4udmFsdWVzLCAuLi5uZXN0ZWROb2Rlc10pKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTm9kZSQobm9kZTogSlNPTkxEPE5vZGVUeXBlPiB8IElSZWxhdGVkTm9kZSwgZGF0YVN0YXRlOiBEYXRhU3RhdGUpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlU2VydmljZVxuICAgICAgLmdldFdpdGhIZWFkZXJzJDxKU09OTEQ8VD4+KHtcbiAgICAgICAgLi4ubm9kZSxcbiAgICAgICAgZGF0YVN0YXRlXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEsIGhlYWRlcnMgfSkgPT4gbWVyZ2VEYXRhV2l0aEhlYWRlcnM8SUpTT05MREV4dGVuZGVkPihkYXRhLCBoZWFkZXJzKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTm9kZShhbGxOb2Rlczogbm9kZXMsIG5vZGU6IEpTT05MRDxOb2RlVHlwZT4gfCBJUmVsYXRlZE5vZGUpIHtcbiAgICBjb25zdCBtYXRjaGVkTm9kZSA9IGFsbE5vZGVzPy5bbm9kZVsnQHR5cGUnXV0/LmZpbmQodiA9PiB2Py5pZCA9PT0gbm9kZVsnQGlkJ10pO1xuICAgIHJldHVybiBtYXRjaGVkTm9kZVxuICAgICAgPyBvZihtYXRjaGVkTm9kZS5yZWNhbGN1bGF0ZWQgYXMgSUpTT05MREV4dGVuZGVkKVxuICAgICAgOiB0aGlzLmxvYWROb2RlJChub2RlLCBEYXRhU3RhdGUucmVjYWxjdWxhdGVkKS5waXBlKGNhdGNoRXJyb3IoKCkgPT4gdGhpcy5sb2FkTm9kZSQobm9kZSwgRGF0YVN0YXRlLm9yaWdpbmFsKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRyYWNrTm9kZShub2RlOiBJSlNPTkxERXh0ZW5kZWQpIHtcbiAgICByZXR1cm4ganNvbmxkUGF0aChub2RlWydAdHlwZSddLCBub2RlWydAaWQnXSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJpcy1mbGV4IGlzLWZsZXgtZGlyZWN0aW9uLWNvbHVtbiBpcy1nYXAtOCBpcy1weS0yIGlzLXBsLTIgfCBlbmdpbmUtbW9kZWxzLXN0YWdlLS1jb250YWluZXIgaXMtdHlwZS17eyB0eXBlIH19XCJcbiAgW3N0eWxlLmJvcmRlci1jb2xvcl09XCJub2RlQ29sb3VyKClcIj5cbiAgPGRpdiBjbGFzcz1cImlzLWZsZXggaXMtZmxleC1kaXJlY3Rpb24tcm93IGlzLWp1c3RpZnktY29udGVudC1zcGFjZS1iZXR3ZWVuIGlzLWdhcC04XCI+XG4gICAgQGlmIChjYW5FeHBhbmQoKSkge1xuICAgICAgPGRpdiAoY2xpY2spPVwiZXhwYW5kZWQuc2V0KCFleHBhbmRlZCgpKVwiIHBvaW50ZXI+XG4gICAgICAgIDxmYS1pY29uIFtpY29uXT1cImV4cGFuZGVkKCkgPyBmYUFuZ2xlRG93biA6IGZhQW5nbGVSaWdodFwiPjwvZmEtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiaXMtZmxleCBpcy1mbGV4LWRpcmVjdGlvbi1yb3cgaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4gaXMtZ2FwLTggaXMtZmxleC13cmFwLXdyYXAgaXMtZmxleC1ncm93LTFcIj5cbiAgICAgIDxoZS1ub2RlLWxpbmsgY2xhc3M9XCJpcy1mbGV4LWdyb3ctMVwiIFtub2RlXT1cIm5vZGUoKVwiIFtzaG93RXh0ZXJuYWxMaW5rXT1cInRydWVcIj5cbiAgICAgICAgPHNwYW4+e3sgdHlwZSgpIH19IHt7IGlkKCkgfX08L3NwYW4+XG4gICAgICA8L2hlLW5vZGUtbGluaz5cblxuICAgICAgPGRpdiBjbGFzcz1cImlzLWZsZXggaXMtZmxleC1kaXJlY3Rpb24tY29sdW1uIGlzLWdhcC00IHwgZW5naW5lLW1vZGVscy1zdGFnZS0tY2FsY3VsYXRpb25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpcy1mbGV4IGlzLWdhcC00IGlzLXByLTJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImhhcy10ZXh0LXNlY29uZGFyeSBoYXMtdGV4dC13ZWlnaHQtYm9sZFwiPkNhbGN1bGF0aW9uczo8L3NwYW4+XG5cbiAgICAgICAgICBAaWYgKGluUHJvZ3Jlc3MoKSkge1xuICAgICAgICAgICAgPHNwYW4gW2NsYXNzLmhhcy10ZXh0LWRhbmdlcl09XCJzdGFnZSgpID09PSAwXCIgW2NsYXNzLmhhcy10ZXh0LXdhcm5pbmddPVwic3RhZ2UoKSA+IDBcIj5cbiAgICAgICAgICAgICAgc3RhZ2Uge3sgc3RhZ2UoKSB9fSAvIHt7IG1heHN0YWdlKCkgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGFzLXRleHQtc3VjY2Vzc1wiPmNvbXBsZXRlPC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChzaG93VmVyc2lvbigpKSB7XG4gICAgICAgICAgPGhlLWVuZ2luZS1tb2RlbHMtdmVyc2lvbi1saW5rIFtub2RlXT1cIm5vZGUoKVwiIFtzaG93RGV0YWlsc109XCJmYWxzZVwiPjwvaGUtZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbms+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBAaWYgKGV4cGFuZGVkKCkpIHtcbiAgICBAaWYgKGxvYWRpbmcoKSAmJiBub2Rlc0xlbmd0aCgpID4gMCkge1xuICAgICAgQGZvciAobm9kZSBvZiBub2Rlc0xlbmd0aCgpIHwgdGltZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8aGUtc2tlbGV0b24tdGV4dCBbd2lkdGhdPVwiNjBcIiAvPlxuICAgICAgfVxuICAgIH1cblxuICAgIEBmb3IgKHJlbGF0ZWROb2RlIG9mIGV4cGFuZGFibGVOb2RlcygpOyB0cmFjayB0cmFja05vZGUocmVsYXRlZE5vZGUpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRlZC1ub2RlXCI+XG4gICAgICAgIDxoZS1lbmdpbmUtbW9kZWxzLXN0YWdlLWRlZXBcbiAgICAgICAgICBbbm9kZV09XCJyZWxhdGVkTm9kZVwiXG4gICAgICAgICAgW2V4cGFuZGVkXT1cImZhbHNlXCJcbiAgICAgICAgICBbc2hvd1ZlcnNpb25dPVwic2hvd1ZlcnNpb24oKVwiXG4gICAgICAgICAgW2V4cGFuZGVkTm9kZV09XCJleHBhbmRlZE5vZGUoKSB8fCBub2RlKClcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -7737,10 +7737,10 @@ class EngineModelsStageDeepComponent {
|
|
|
7737
7737
|
this.relatedNodes = signal([]);
|
|
7738
7738
|
this.relatedNodes$ = toObservable(this.relatedNodes);
|
|
7739
7739
|
this.nodesLength = toSignal(this.relatedNodes$.pipe(map(nodes => nodes?.length ?? 0)));
|
|
7740
|
-
this.nodes = toSignal(combineLatest([this.relatedNodes$, this.nodeStoreService.nodes$()]).pipe(filter(([nodes]) => nodes?.length > 0), distinctUntilChangedDeep(), tap(() => this.loading.set(true)), mergeMap(([nodes, allNodes]) => from(nodes).pipe(mergeMap(node => this.findNode(allNodes, node)), toArray())), tap(() => this.loading.set(false))));
|
|
7740
|
+
this.nodes = toSignal(combineLatest([this.relatedNodes$, this.nodeStoreService.nodes$()]).pipe(filter(([nodes]) => nodes?.length > 0), distinctUntilChangedDeep(), tap(() => this.loading.set(true)), mergeMap(([nodes, allNodes]) => from(nodes).pipe(mergeMap(node => this.findNode(allNodes, node)), filter(v => !!v), toArray())), tap(() => this.loading.set(false))));
|
|
7741
7741
|
this.expandableNodes = computed(() => this.nodes()?.filter(n => this.expandedNode()?.['@type'] !== n['@type'] && this.expandedNode()?.['@id'] !== n['@id']) ?? []);
|
|
7742
7742
|
this.defaultMaxStage = computed(() => NODE_MAX_STAGE[this.type()]);
|
|
7743
|
-
this.stage = computed(() => +this.node().stage);
|
|
7743
|
+
this.stage = computed(() => +this.node().stage || 0);
|
|
7744
7744
|
this.maxstage = computed(() => +this.node().maxstage || this.defaultMaxStage());
|
|
7745
7745
|
this.inProgress = computed(() => this.stage() < this.maxstage());
|
|
7746
7746
|
this.canExpand = computed(() => this.expandableNodes()?.length);
|
|
@@ -7753,16 +7753,19 @@ class EngineModelsStageDeepComponent {
|
|
|
7753
7753
|
.subscribe(values => this.relatedNodes.set([...values, ...nestedNodes]));
|
|
7754
7754
|
}, { allowSignalWrites: true });
|
|
7755
7755
|
}
|
|
7756
|
+
loadNode$(node, dataState) {
|
|
7757
|
+
return this.nodeService
|
|
7758
|
+
.getWithHeaders$({
|
|
7759
|
+
...node,
|
|
7760
|
+
dataState
|
|
7761
|
+
})
|
|
7762
|
+
.pipe(map(({ data, headers }) => mergeDataWithHeaders(data, headers)));
|
|
7763
|
+
}
|
|
7756
7764
|
findNode(allNodes, node) {
|
|
7757
7765
|
const matchedNode = allNodes?.[node['@type']]?.find(v => v?.id === node['@id']);
|
|
7758
7766
|
return matchedNode
|
|
7759
7767
|
? of(matchedNode.recalculated)
|
|
7760
|
-
: this.
|
|
7761
|
-
.getWithHeaders$({
|
|
7762
|
-
...node,
|
|
7763
|
-
dataState: DataState.recalculated
|
|
7764
|
-
})
|
|
7765
|
-
.pipe(map(({ data, headers }) => mergeDataWithHeaders(data, headers)));
|
|
7768
|
+
: this.loadNode$(node, DataState.recalculated).pipe(catchError(() => this.loadNode$(node, DataState.original)));
|
|
7766
7769
|
}
|
|
7767
7770
|
trackNode(node) {
|
|
7768
7771
|
return jsonldPath(node['@type'], node['@id']);
|