@hestia-earth/ui-components 0.35.13 → 0.35.18

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.
@@ -15,7 +15,6 @@ export declare class EngineModelsStageDeepComponent<T extends NodeType> {
15
15
  protected readonly expandedNode: import("@angular/core").InputSignal<IJSONLDExtended>;
16
16
  protected readonly id: import("@angular/core").Signal<string>;
17
17
  protected readonly type: import("@angular/core").Signal<NodeType>;
18
- protected readonly nodeColour: import("@angular/core").Signal<any>;
19
18
  protected readonly recalculatedAt: import("@angular/core").Signal<any>;
20
19
  private readonly relatedNodesResource;
21
20
  protected readonly nodesLength: import("@angular/core").Signal<number>;
@@ -1124,6 +1124,7 @@ const compoundToHtml = (value, termType) => isTermTypeAllowed(termType) && !igno
1124
1124
  .replace(/([A-Z]+[\d]+)([\d]{1}[-+])/g, '$1<sup>$2</sup>')
1125
1125
  .replace(/([A-Z]+)([\d]{1})([-+])/g, '$1<sub>$2</sub><sup>$3</sup>')
1126
1126
  .replace(/([A-LN-Za-ln-z])(\d+)/g, '$1<sub>$2</sub>')
1127
+ .replace(/([A-L])([-+])/g, '$1<sup>$2</sup>')
1127
1128
  .replace(/(Ox)([^A-Za-z]|$)/g, 'O<sub>x</sub>$2')
1128
1129
  // handle m2, m3, etc.
1129
1130
  .replace(/([m])([\d]{1})\s/g, '$1<sup>$2</sup> ')
@@ -5485,11 +5486,6 @@ const nodeTypeUrl = (apiBaseUrl, type) => (type ? `${apiBaseUrl}/${nodeTypeToPar
5485
5486
  const nodeUrl = (apiBaseUrl, { dataState, ...node }) => `${nodeTypeUrl(apiBaseUrl, node['@type'] || node.type)}/${node['@id'] || node.id}${dataState ? `?dataState=${dataState}` : ''}`;
5486
5487
  const nodeLogsUrl = (apiBaseUrl, { dataState, ...node }) => `${nodeUrl(apiBaseUrl, node)}/log${dataState ? `?dataState=${dataState}` : ''}`;
5487
5488
  const lookupUrl = (filename) => filename.startsWith('http') ? filename : `${glossaryBaseUrl(false)}/lookups/${filename}.csv`;
5488
- const nodeColours$1 = {
5489
- [NodeType.ImpactAssessment]: 'blue',
5490
- [NodeType.Cycle]: 'red',
5491
- [NodeType.Site]: 'green'
5492
- };
5493
5489
  class RelatedNodeResult {
5494
5490
  constructor() {
5495
5491
  this.count = 0;
@@ -8093,6 +8089,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
8093
8089
  }]
8094
8090
  }] });
8095
8091
 
8092
+ const nodeColours$1 = {
8093
+ [NodeType.Cycle]: '#ecf1ff',
8094
+ [NodeType.Site]: '#d5f3d8',
8095
+ [NodeType.ImpactAssessment]: '#e7e0cb',
8096
+ [NodeType.Source]: '#f5f5f5'
8097
+ };
8098
+ const nodeSecondaryColours = {
8099
+ [NodeType.Cycle]: '#4c7194',
8100
+ [NodeType.Site]: '#349b3e',
8101
+ [NodeType.ImpactAssessment]: '#b4a988',
8102
+ [NodeType.Source]: '#f5f5f5'
8103
+ };
8104
+
8096
8105
  /* eslint-disable max-len */
8097
8106
  const semverRegex = () => /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/gi;
8098
8107
  /* eslint-enable max-len */
@@ -8261,6 +8270,7 @@ const icons = [
8261
8270
  'private-eye',
8262
8271
  'private-eye-crossed',
8263
8272
  'private-lock',
8273
+ 'profile-checkmark',
8264
8274
  'profile-circle',
8265
8275
  'profile-gear',
8266
8276
  'progress',
@@ -8585,7 +8595,7 @@ class NodeJsonldSchemaComponent {
8585
8595
  this.nodes = computed(() => (Array.isArray(this.content()) ? this.content() : [this.content()]).map(value => omit(value, ignoredProperties)));
8586
8596
  }
8587
8597
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NodeJsonldSchemaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8588
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: NodeJsonldSchemaComponent, isStandalone: true, selector: "he-node-jsonld-schema", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: true, transformFunction: null }, enableCsv: { classPropertyName: "enableCsv", publicName: "enableCsv", isSignal: true, isRequired: false, transformFunction: null }, csvOptions: { classPropertyName: "csvOptions", publicName: "csvOptions", isSignal: true, isRequired: false, transformFunction: null }, csvNotice: { classPropertyName: "csvNotice", publicName: "csvNotice", isSignal: true, isRequired: false, transformFunction: null }, showSchemaButton: { classPropertyName: "showSchemaButton", publicName: "showSchemaButton", isSignal: true, isRequired: false, transformFunction: null }, useTabs: { classPropertyName: "useTabs", publicName: "useTabs", isSignal: true, isRequired: false, transformFunction: null }, selectedView: { classPropertyName: "selectedView", publicName: "selectedView", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedView: "selectedViewChange" }, ngImport: i0, template: "@if (useTabs() && views().length > 1) {\n <div class=\"tabs\">\n <ul>\n @for (view of views(); track view) {\n <li [class.is-active]=\"selectedView() === view\">\n <a\n [ngbTooltip]=\"formatTooltip\"\n [tooltipContext]=\"{ view }\"\n placement=\"right\"\n (click)=\"selectedView.set(view)\">\n <span>{{ view }}</span>\n </a>\n </li>\n }\n </ul>\n </div>\n}\n\n<div class=\"is-relative is-clipped\">\n <div\n class=\"is-flex is-justify-content-end\"\n [class.copy-clipboard]=\"selectedView() === Views.jsonld\"\n [class.is-p-2]=\"selectedView() !== Views.jsonld\">\n <div class=\"field has-addons\">\n @if (showSchemaButton()) {\n <div class=\"control\">\n <he-schema-version-link linkClass=\"button is-info is-small\" [node]=\"content()\">\n <span>View Schema</span>\n </he-schema-version-link>\n </div>\n }\n @if (selectedView() === Views.jsonld) {\n <div class=\"control\" ngbTooltip=\"Copy Content\" placement=\"bottom\" container=\"body\">\n <he-clipboard clipboardClass=\"button is-secondary is-small\" [value]=\"content()\" [hideText]=\"true\" />\n </div>\n }\n @if (!useTabs() && views().length > 1) {\n <div class=\"control\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedView\" name=\"selectedView\">\n @for (view of views(); track view) {\n <option [value]=\"view\">{{ view }}</option>\n }\n </select>\n </div>\n </div>\n }\n </div>\n </div>\n\n @switch (selectedView()) {\n @case (Views.jsonld) {\n <pre><code>{{nodes()?.[0] | json}}</code></pre>\n }\n @default {\n <he-node-csv-preview\n [nodes]=\"nodes()\"\n [csvOptions]=\"csvOptions()\"\n [csvNotice]=\"csvNotice()\"\n [compacted]=\"selectedView() === Views.csvCompacted\" />\n }\n }\n</div>\n\n<ng-template #formatTooltip let-view=\"view\">\n @switch (view) {\n @case (Views.jsonld) {\n <p>JSON is a structured text-based format for representing data,</p>\n <p>where the 'LD' is a specific version of JSON which includes notation for linking different Nodes.</p>\n }\n @case (Views.csv) {\n <p>CSV is a tabular or row-column format.</p>\n <p>This format has the term identifier in a separate column to the term value.</p>\n }\n @case (Views.csvCompacted) {\n <p>This format has the term identifier (term.&#64;id) in the column header.</p>\n <p>It is a typical format for most data analysis applications which expect</p>\n <p>column headers to identify the data.</p>\n }\n }\n</ng-template>\n", styles: [":host{display:block;overflow:auto;width:100%}pre{max-height:400px}he-schema-version-link ::ng-deep he-svg-icon{height:16px!important;width:auto!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgbTooltipModule }, { kind: "directive", type: i1$2.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "component", type: ClipboardComponent, selector: "he-clipboard", inputs: ["icon", "value", "disabled", "hideText", "size", "clipboardClass"] }, { kind: "component", type: SchemaVersionLinkComponent, selector: "he-schema-version-link", inputs: ["node", "showExternalLink", "linkClass"] }, { kind: "component", type: NodeCsvPreviewComponent, selector: "he-node-csv-preview", inputs: ["nodes", "compacted", "showDownload", "csvOptions", "csvNotice"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8598
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: NodeJsonldSchemaComponent, isStandalone: true, selector: "he-node-jsonld-schema", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: true, transformFunction: null }, enableCsv: { classPropertyName: "enableCsv", publicName: "enableCsv", isSignal: true, isRequired: false, transformFunction: null }, csvOptions: { classPropertyName: "csvOptions", publicName: "csvOptions", isSignal: true, isRequired: false, transformFunction: null }, csvNotice: { classPropertyName: "csvNotice", publicName: "csvNotice", isSignal: true, isRequired: false, transformFunction: null }, showSchemaButton: { classPropertyName: "showSchemaButton", publicName: "showSchemaButton", isSignal: true, isRequired: false, transformFunction: null }, useTabs: { classPropertyName: "useTabs", publicName: "useTabs", isSignal: true, isRequired: false, transformFunction: null }, selectedView: { classPropertyName: "selectedView", publicName: "selectedView", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedView: "selectedViewChange" }, ngImport: i0, template: "@if (useTabs() && views().length > 1) {\n <div class=\"tabs\">\n <ul>\n @for (view of views(); track view) {\n <li [class.is-active]=\"selectedView() === view\">\n <a\n [ngbTooltip]=\"formatTooltip\"\n [tooltipContext]=\"{ view }\"\n placement=\"right\"\n (click)=\"selectedView.set(view)\">\n <span>{{ view }}</span>\n </a>\n </li>\n }\n </ul>\n </div>\n}\n\n<div class=\"is-relative is-clipped\">\n <div\n class=\"is-flex is-justify-content-end\"\n [class.copy-clipboard]=\"selectedView() === Views.jsonld\"\n [class.is-p-2]=\"selectedView() !== Views.jsonld\">\n <div class=\"field has-addons\">\n @if (showSchemaButton()) {\n <div class=\"control\">\n <he-schema-version-link linkClass=\"button is-info is-small\" [node]=\"content()\">\n <span>View Schema</span>\n </he-schema-version-link>\n </div>\n }\n @if (selectedView() === Views.jsonld) {\n <div class=\"control\" ngbTooltip=\"Copy Content\" placement=\"bottom\" container=\"body\">\n <he-clipboard clipboardClass=\"button is-secondary is-small\" [value]=\"content()\" [hideText]=\"true\" />\n </div>\n }\n @if (!useTabs() && views().length > 1) {\n <div class=\"control\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedView\" name=\"selectedView\">\n @for (view of views(); track view) {\n <option [value]=\"view\">{{ view }}</option>\n }\n </select>\n </div>\n </div>\n }\n </div>\n </div>\n\n @switch (selectedView()) {\n @case (Views.jsonld) {\n <pre><code>{{nodes()?.[0] | json}}</code></pre>\n }\n @default {\n <he-node-csv-preview\n [nodes]=\"nodes()\"\n [csvOptions]=\"csvOptions()\"\n [csvNotice]=\"csvNotice()\"\n [compacted]=\"selectedView() === Views.csvCompacted\" />\n }\n }\n</div>\n\n<ng-template #formatTooltip let-view=\"view\">\n @switch (view) {\n @case (Views.jsonld) {\n <p>JSON is a structured text-based format for representing data,</p>\n <p>where the 'LD' is a specific version of JSON which includes notation for linking different Nodes.</p>\n }\n @case (Views.csv) {\n <p>CSV is a tabular or row-column format.</p>\n <p>This format has the term identifier in a separate column to the term value.</p>\n }\n @case (Views.csvCompacted) {\n <p>This format has the term identifier (term.&#64;id) in the column header.</p>\n <p>It is a typical format for most data analysis applications which expect</p>\n <p>column headers to identify the data.</p>\n }\n }\n</ng-template>\n", styles: [":host{display:block;overflow:auto;width:100%}pre{max-height:400px}he-schema-version-link ::ng-deep he-svg-icon{height:16px!important;width:16px!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgbTooltipModule }, { kind: "directive", type: i1$2.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: JsonPipe, name: "json" }, { kind: "component", type: ClipboardComponent, selector: "he-clipboard", inputs: ["icon", "value", "disabled", "hideText", "size", "clipboardClass"] }, { kind: "component", type: SchemaVersionLinkComponent, selector: "he-schema-version-link", inputs: ["node", "showExternalLink", "linkClass"] }, { kind: "component", type: NodeCsvPreviewComponent, selector: "he-node-csv-preview", inputs: ["nodes", "compacted", "showDownload", "csvOptions", "csvNotice"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8589
8599
  }
8590
8600
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NodeJsonldSchemaComponent, decorators: [{
8591
8601
  type: Component$1,
@@ -8596,7 +8606,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
8596
8606
  ClipboardComponent,
8597
8607
  SchemaVersionLinkComponent,
8598
8608
  NodeCsvPreviewComponent
8599
- ], template: "@if (useTabs() && views().length > 1) {\n <div class=\"tabs\">\n <ul>\n @for (view of views(); track view) {\n <li [class.is-active]=\"selectedView() === view\">\n <a\n [ngbTooltip]=\"formatTooltip\"\n [tooltipContext]=\"{ view }\"\n placement=\"right\"\n (click)=\"selectedView.set(view)\">\n <span>{{ view }}</span>\n </a>\n </li>\n }\n </ul>\n </div>\n}\n\n<div class=\"is-relative is-clipped\">\n <div\n class=\"is-flex is-justify-content-end\"\n [class.copy-clipboard]=\"selectedView() === Views.jsonld\"\n [class.is-p-2]=\"selectedView() !== Views.jsonld\">\n <div class=\"field has-addons\">\n @if (showSchemaButton()) {\n <div class=\"control\">\n <he-schema-version-link linkClass=\"button is-info is-small\" [node]=\"content()\">\n <span>View Schema</span>\n </he-schema-version-link>\n </div>\n }\n @if (selectedView() === Views.jsonld) {\n <div class=\"control\" ngbTooltip=\"Copy Content\" placement=\"bottom\" container=\"body\">\n <he-clipboard clipboardClass=\"button is-secondary is-small\" [value]=\"content()\" [hideText]=\"true\" />\n </div>\n }\n @if (!useTabs() && views().length > 1) {\n <div class=\"control\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedView\" name=\"selectedView\">\n @for (view of views(); track view) {\n <option [value]=\"view\">{{ view }}</option>\n }\n </select>\n </div>\n </div>\n }\n </div>\n </div>\n\n @switch (selectedView()) {\n @case (Views.jsonld) {\n <pre><code>{{nodes()?.[0] | json}}</code></pre>\n }\n @default {\n <he-node-csv-preview\n [nodes]=\"nodes()\"\n [csvOptions]=\"csvOptions()\"\n [csvNotice]=\"csvNotice()\"\n [compacted]=\"selectedView() === Views.csvCompacted\" />\n }\n }\n</div>\n\n<ng-template #formatTooltip let-view=\"view\">\n @switch (view) {\n @case (Views.jsonld) {\n <p>JSON is a structured text-based format for representing data,</p>\n <p>where the 'LD' is a specific version of JSON which includes notation for linking different Nodes.</p>\n }\n @case (Views.csv) {\n <p>CSV is a tabular or row-column format.</p>\n <p>This format has the term identifier in a separate column to the term value.</p>\n }\n @case (Views.csvCompacted) {\n <p>This format has the term identifier (term.&#64;id) in the column header.</p>\n <p>It is a typical format for most data analysis applications which expect</p>\n <p>column headers to identify the data.</p>\n }\n }\n</ng-template>\n", styles: [":host{display:block;overflow:auto;width:100%}pre{max-height:400px}he-schema-version-link ::ng-deep he-svg-icon{height:16px!important;width:auto!important}\n"] }]
8609
+ ], template: "@if (useTabs() && views().length > 1) {\n <div class=\"tabs\">\n <ul>\n @for (view of views(); track view) {\n <li [class.is-active]=\"selectedView() === view\">\n <a\n [ngbTooltip]=\"formatTooltip\"\n [tooltipContext]=\"{ view }\"\n placement=\"right\"\n (click)=\"selectedView.set(view)\">\n <span>{{ view }}</span>\n </a>\n </li>\n }\n </ul>\n </div>\n}\n\n<div class=\"is-relative is-clipped\">\n <div\n class=\"is-flex is-justify-content-end\"\n [class.copy-clipboard]=\"selectedView() === Views.jsonld\"\n [class.is-p-2]=\"selectedView() !== Views.jsonld\">\n <div class=\"field has-addons\">\n @if (showSchemaButton()) {\n <div class=\"control\">\n <he-schema-version-link linkClass=\"button is-info is-small\" [node]=\"content()\">\n <span>View Schema</span>\n </he-schema-version-link>\n </div>\n }\n @if (selectedView() === Views.jsonld) {\n <div class=\"control\" ngbTooltip=\"Copy Content\" placement=\"bottom\" container=\"body\">\n <he-clipboard clipboardClass=\"button is-secondary is-small\" [value]=\"content()\" [hideText]=\"true\" />\n </div>\n }\n @if (!useTabs() && views().length > 1) {\n <div class=\"control\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedView\" name=\"selectedView\">\n @for (view of views(); track view) {\n <option [value]=\"view\">{{ view }}</option>\n }\n </select>\n </div>\n </div>\n }\n </div>\n </div>\n\n @switch (selectedView()) {\n @case (Views.jsonld) {\n <pre><code>{{nodes()?.[0] | json}}</code></pre>\n }\n @default {\n <he-node-csv-preview\n [nodes]=\"nodes()\"\n [csvOptions]=\"csvOptions()\"\n [csvNotice]=\"csvNotice()\"\n [compacted]=\"selectedView() === Views.csvCompacted\" />\n }\n }\n</div>\n\n<ng-template #formatTooltip let-view=\"view\">\n @switch (view) {\n @case (Views.jsonld) {\n <p>JSON is a structured text-based format for representing data,</p>\n <p>where the 'LD' is a specific version of JSON which includes notation for linking different Nodes.</p>\n }\n @case (Views.csv) {\n <p>CSV is a tabular or row-column format.</p>\n <p>This format has the term identifier in a separate column to the term value.</p>\n }\n @case (Views.csvCompacted) {\n <p>This format has the term identifier (term.&#64;id) in the column header.</p>\n <p>It is a typical format for most data analysis applications which expect</p>\n <p>column headers to identify the data.</p>\n }\n }\n</ng-template>\n", styles: [":host{display:block;overflow:auto;width:100%}pre{max-height:400px}he-schema-version-link ::ng-deep he-svg-icon{height:16px!important;width:16px!important}\n"] }]
8600
8610
  }] });
8601
8611
 
8602
8612
  const cleanContextUrl = (contextUrl) => contextUrl.replace('http://localhost:4200', baseUrl(false));
@@ -8814,6 +8824,8 @@ class NodeSelectComponent {
8814
8824
  this.selectedDataState = model(DataState.original);
8815
8825
  this.enableTypes = input();
8816
8826
  this.enableDataState = input(true);
8827
+ this.showLable = input(true);
8828
+ this.direction = input('row');
8817
8829
  this.nodeTypes = computed(() => this.enableTypes()?.length
8818
8830
  ? this._nodeTypes().filter(nodeType => this.enableTypes()?.includes(nodeType))
8819
8831
  : this._nodeTypes());
@@ -8828,11 +8840,11 @@ class NodeSelectComponent {
8828
8840
  });
8829
8841
  }
8830
8842
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NodeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8831
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: NodeSelectComponent, isStandalone: true, selector: "he-node-select", inputs: { selectedNodeType: { classPropertyName: "selectedNodeType", publicName: "selectedNodeType", isSignal: true, isRequired: false, transformFunction: null }, selectedNodeId: { classPropertyName: "selectedNodeId", publicName: "selectedNodeId", isSignal: true, isRequired: false, transformFunction: null }, selectedDataState: { classPropertyName: "selectedDataState", publicName: "selectedDataState", isSignal: true, isRequired: false, transformFunction: null }, enableTypes: { classPropertyName: "enableTypes", publicName: "enableTypes", isSignal: true, isRequired: false, transformFunction: null }, enableDataState: { classPropertyName: "enableDataState", publicName: "enableDataState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedNodeType: "selectedNodeTypeChange", selectedNodeId: "selectedNodeIdChange", selectedDataState: "selectedDataStateChange" }, exportAs: ["heNodeSelect"], ngImport: i0, template: "<div class=\"field has-addons\">\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedNodeType\" name=\"selectedNodeType\">\n @for (value of nodeTypes(); track value) {\n <option [value]=\"value\">{{ value }}</option>\n }\n </select>\n </div>\n </div>\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedNodeId\" name=\"selectedNodeId\">\n @for (id of nodeIds(); track id) {\n <option [value]=\"id\">{{ id }}</option>\n }\n </select>\n </div>\n </div>\n @if (enableDataState()) {\n <div class=\"control\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedDataState\" name=\"selectedDataState\">\n @for (value of dataStates(); track value) {\n <option [value]=\"value\">{{ value | keyToLabel }}</option>\n }\n </select>\n </div>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: KeyToLabelPipe, name: "keyToLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8843
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: NodeSelectComponent, isStandalone: true, selector: "he-node-select", inputs: { selectedNodeType: { classPropertyName: "selectedNodeType", publicName: "selectedNodeType", isSignal: true, isRequired: false, transformFunction: null }, selectedNodeId: { classPropertyName: "selectedNodeId", publicName: "selectedNodeId", isSignal: true, isRequired: false, transformFunction: null }, selectedDataState: { classPropertyName: "selectedDataState", publicName: "selectedDataState", isSignal: true, isRequired: false, transformFunction: null }, enableTypes: { classPropertyName: "enableTypes", publicName: "enableTypes", isSignal: true, isRequired: false, transformFunction: null }, enableDataState: { classPropertyName: "enableDataState", publicName: "enableDataState", isSignal: true, isRequired: false, transformFunction: null }, showLable: { classPropertyName: "showLable", publicName: "showLable", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedNodeType: "selectedNodeTypeChange", selectedNodeId: "selectedNodeIdChange", selectedDataState: "selectedDataStateChange" }, exportAs: ["heNodeSelect"], ngImport: i0, template: "<div\n class=\"is-flex is-justify-content-space-between is-flex-direction-{{ direction() }}\"\n [class.is-gap-4]=\"direction() === 'column'\"\n [class.is-gap-8]=\"direction() === 'row'\">\n <div>\n @if (showLable) {\n <div class=\"has-text-secondary is-size-7 is-mb-1\">Node Type</div>\n }\n\n <div class=\"field is-m-0\">\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedNodeType\" name=\"selectedNodeType\">\n @for (value of nodeTypes(); track value) {\n <option [value]=\"value\">{{ value }}</option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n\n <div>\n @if (showLable) {\n <div class=\"has-text-secondary is-size-7 is-mb-1\">HESTIA ID</div>\n }\n\n <div class=\"field is-m-0\">\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedNodeId\" name=\"selectedNodeId\">\n @for (id of nodeIds(); track id) {\n <option [value]=\"id\">{{ id }}</option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n\n @if (enableDataState()) {\n <div>\n @if (showLable) {\n <div class=\"has-text-secondary is-size-7 is-mb-1\">Data State</div>\n }\n\n <div class=\"field is-m-0\">\n <div class=\"control\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedDataState\" name=\"selectedDataState\">\n @for (value of dataStates(); track value) {\n <option [value]=\"value\">{{ value | keyToLabel }}</option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: KeyToLabelPipe, name: "keyToLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8832
8844
  }
8833
8845
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NodeSelectComponent, decorators: [{
8834
8846
  type: Component$1,
8835
- args: [{ selector: 'he-node-select', exportAs: 'heNodeSelect', imports: [FormsModule, KeyToLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"field has-addons\">\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedNodeType\" name=\"selectedNodeType\">\n @for (value of nodeTypes(); track value) {\n <option [value]=\"value\">{{ value }}</option>\n }\n </select>\n </div>\n </div>\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedNodeId\" name=\"selectedNodeId\">\n @for (id of nodeIds(); track id) {\n <option [value]=\"id\">{{ id }}</option>\n }\n </select>\n </div>\n </div>\n @if (enableDataState()) {\n <div class=\"control\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedDataState\" name=\"selectedDataState\">\n @for (value of dataStates(); track value) {\n <option [value]=\"value\">{{ value | keyToLabel }}</option>\n }\n </select>\n </div>\n </div>\n }\n</div>\n" }]
8847
+ args: [{ selector: 'he-node-select', exportAs: 'heNodeSelect', imports: [FormsModule, KeyToLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"is-flex is-justify-content-space-between is-flex-direction-{{ direction() }}\"\n [class.is-gap-4]=\"direction() === 'column'\"\n [class.is-gap-8]=\"direction() === 'row'\">\n <div>\n @if (showLable) {\n <div class=\"has-text-secondary is-size-7 is-mb-1\">Node Type</div>\n }\n\n <div class=\"field is-m-0\">\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedNodeType\" name=\"selectedNodeType\">\n @for (value of nodeTypes(); track value) {\n <option [value]=\"value\">{{ value }}</option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n\n <div>\n @if (showLable) {\n <div class=\"has-text-secondary is-size-7 is-mb-1\">HESTIA ID</div>\n }\n\n <div class=\"field is-m-0\">\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedNodeId\" name=\"selectedNodeId\">\n @for (id of nodeIds(); track id) {\n <option [value]=\"id\">{{ id }}</option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n\n @if (enableDataState()) {\n <div>\n @if (showLable) {\n <div class=\"has-text-secondary is-size-7 is-mb-1\">Data State</div>\n }\n\n <div class=\"field is-m-0\">\n <div class=\"control\">\n <div class=\"select is-small is-fullwidth\">\n <select [(ngModel)]=\"selectedDataState\" name=\"selectedDataState\">\n @for (value of dataStates(); track value) {\n <option [value]=\"value\">{{ value | keyToLabel }}</option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n" }]
8836
8848
  }], ctorParameters: () => [] });
8837
8849
 
8838
8850
  class EngineModelsStageComponent {
@@ -8897,7 +8909,8 @@ const nestedNodesByType = {
8897
8909
  [NodeType.ImpactAssessment]: (node) => [node.cycle]
8898
8910
  };
8899
8911
  const relatedNodesByType = {
8900
- [NodeType.Site]: [NodeType.Cycle]
8912
+ [NodeType.Site]: [NodeType.Cycle],
8913
+ [NodeType.Cycle]: [NodeType.Site, NodeType.ImpactAssessment]
8901
8914
  };
8902
8915
  class EngineModelsStageDeepComponent {
8903
8916
  constructor() {
@@ -8913,7 +8926,6 @@ class EngineModelsStageDeepComponent {
8913
8926
  this.expandedNode = input();
8914
8927
  this.id = computed(() => this.node()?.['@id']);
8915
8928
  this.type = computed(() => this.node()?.['@type']);
8916
- this.nodeColour = computed(() => nodeColours$1[this.type()]);
8917
8929
  this.recalculatedAt = computed(() => this.node()?.['last-modified'] || this.node()?.updatedAt || this.node()?.createdAt);
8918
8930
  this.relatedNodesResource = rxResource({
8919
8931
  request: () => ({
@@ -8964,7 +8976,7 @@ class EngineModelsStageDeepComponent {
8964
8976
  this.service.focusedNode.set(node);
8965
8977
  }
8966
8978
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: EngineModelsStageDeepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8967
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: EngineModelsStageDeepComponent, isStandalone: true, selector: "he-engine-models-stage-deep", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, expandedNode: { classPropertyName: "expandedNode", publicName: "expandedNode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, ngImport: i0, 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 <he-svg-icon [name]=\"expanded() ? 'chevron-down' : 'chevron-right'\" />\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 if (recalculatedAt()) {\n <span\n class=\"trigger-popover\"\n [ngbPopover]=\"popoverDetails\"\n autoClose=\"outside\"\n popoverClass=\"is-narrow\"\n placement=\"left auto\"\n container=\"body\">\n <span class=\"has-text-success\">complete</span>\n </span>\n }\n\n @if (hasError()) {\n <a\n class=\"has-text-danger\"\n ngbTooltip=\"Errors validating recalculation. Click to open\"\n (click)=\"openError(node())\">\n <he-svg-icon name=\"exclamation-triangle\" />\n </a>\n }\n </div>\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 [expandedNode]=\"expandedNode() || node()\" />\n </div>\n }\n }\n</div>\n\n<ng-template #popoverDetails>\n <div class=\"is-flex is-flex-direction-column is-gap-4 has-text-white w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 w-100\">\n <span class=\"has-text-weight-bold\">Calculated Date:</span>\n <span>{{ recalculatedAt() | date: (recalculatedAt().length === 10 ? 'mediumDate' : 'medium') }}</span>\n </div>\n <div class=\"is-flex is-align-items-center is-gap-8 w-100\">\n <span class=\"has-text-weight-bold\">Calculated Version:</span>\n <he-engine-models-version-link [node]=\"node()\" />\n </div>\n </div>\n</ng-template>\n", styles: [".engine-models-stage--container{border:1px solid transparent;border-radius:3px}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"], dependencies: [{ kind: "component", type: EngineModelsStageDeepComponent, selector: "he-engine-models-stage-deep", inputs: ["node", "expanded", "expandedNode"], outputs: ["expandedChange"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "component", type: HESvgIconComponent, selector: "he-svg-icon", inputs: ["name", "size", "animation"] }, { kind: "ngmodule", type: NgbPopoverModule }, { kind: "directive", type: i1$2.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "ngbPopover", "popoverTitle", "placement", "popperOptions", "triggers", "positionTarget", "container", "disablePopover", "popoverClass", "popoverContext", "openDelay", "closeDelay"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }, { kind: "ngmodule", type: NgbTooltipModule }, { kind: "directive", type: i1$2.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: EngineModelsVersionLinkComponent, selector: "he-engine-models-version-link", inputs: ["node"] }, { kind: "component", type: SkeletonTextComponent, selector: "he-skeleton-text", inputs: ["animated", "width", "height"] }, { kind: "pipe", type: TimesPipe, name: "times" }, { kind: "component", type: NodeLinkComponent, selector: "he-node-link", inputs: ["node", "dataState", "showExternalLink", "linkClass"] }] }); }
8979
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: EngineModelsStageDeepComponent, isStandalone: true, selector: "he-engine-models-stage-deep", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, expandedNode: { classPropertyName: "expandedNode", publicName: "expandedNode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, ngImport: i0, template: "@if (expandedNode()) {\n <svg\n class=\"is-absolute | related-node-icon\"\n [class.has-errors]=\"hasError()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"15\"\n height=\"81\"\n viewBox=\"0 0 15 81\"\n fill=\"none\">\n <path d=\"M0.5 0V71C0.5 75.9706 4.52944 80 9.5 80H14.5\" stroke=\"#B5B5B5\" />\n </svg>\n}\n\n<div class=\"is-flex is-flex-direction-column is-gap-8\">\n <div class=\"is-flex is-flex-direction-column is-justify-content-center is-align-items-center\">\n <div\n class=\"is-flex is-align-items-flex-start is-align-self-stretch is-justify-content-space-between is-gap-8 is-p-1 | engine-models-stage--container is-type-{{\n type()\n }}\"\n [class.has-errors]=\"hasError()\">\n <div class=\"is-flex is-flex-direction-column is-justify-content-center is-align-items-center is-gap-4\">\n <div class=\"is-flex is-align-items-center is-gap-4\">\n <he-node-icon [type]=\"type()\" size=\"20\" />\n <span>{{ type() }}</span>\n </div>\n\n <div class=\"is-flex is-align-items-center is-gap-4 is-align-self-stretch\">\n <span class=\"is-size-7\">ID:</span>\n <he-node-link [node]=\"node()\">\n <span class=\"has-text-link is-size-7\">{{ id() }}</span>\n </he-node-link>\n </div>\n </div>\n\n <div class=\"divider\"></div>\n\n <div class=\"is-flex is-flex-direction-column is-justify-content-center is-align-items-center is-gap-4\">\n <span>\n @if (inProgress()) {\n <he-svg-icon name=\"loading-circle-filled\" size=\"24\" animation=\"spin\" class=\"has-text-info\" />\n } @else if (recalculatedAt()) {\n <he-svg-icon name=\"checkmark-circle-filled\" size=\"24\" class=\"has-text-success\" />\n } @else {\n <he-svg-icon name=\"exclamation-triangle-filled\" size=\"24\" class=\"has-text-danger\" />\n }\n </span>\n <span class=\"is-size-7\">\n @if (inProgress()) {\n stage {{ stage() }} / {{ maxStage() }}\n } @else if (recalculatedAt()) {\n <span\n class=\"trigger-popover\"\n [ngbPopover]=\"popoverDetails\"\n autoClose=\"outside\"\n popoverClass=\"is-narrow\"\n placement=\"left auto\"\n container=\"body\">\n <span>Complete</span>\n </span>\n } @else {\n Failed\n }\n </span>\n </div>\n\n @if (canExpand()) {\n <a (click)=\"expanded.set(!expanded())\" class=\"has-text-secondary\">\n <he-svg-icon [name]=\"expanded() ? 'chevron-up' : 'chevron-down'\" />\n </a>\n }\n </div>\n\n @if (hasError()) {\n <div\n class=\"is-flex is-justify-content-center is-align-items-center is-gap-4 is-align-self-stretch is-pl-1 is-pr-2 is-py-2 | error-container is-type-{{\n type()\n }}\">\n <div class=\"is-flex-grow-1 is-gap-4\">\n <he-svg-icon name=\"exclamation-triangle-filled\" size=\"20\" class=\"has-text-danger\" />\n <span class=\"is-size-7 has-text-weight-semibold\">Validation Error</span>\n </div>\n\n <button class=\"button is-primary is-light is-small\" (click)=\"openError(node())\">View</button>\n </div>\n }\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 <div class=\"is-flex is-flex-direction-column is-gap-8 is-overflow-hidden\">\n @for (relatedNode of expandableNodes(); track trackNode(relatedNode)) {\n <div class=\"is-relative is-pl-4\">\n <he-engine-models-stage-deep\n class=\"is-flex-grow-1\"\n [node]=\"relatedNode\"\n [expanded]=\"false\"\n [expandedNode]=\"expandedNode() || node()\" />\n </div>\n }\n </div>\n }\n</div>\n\n<ng-template #popoverDetails>\n <div class=\"is-flex is-flex-direction-column is-gap-4 has-text-white w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 w-100\">\n <span class=\"has-text-weight-bold\">Calculated Date:</span>\n <span>{{ recalculatedAt() | date: (recalculatedAt().length === 10 ? 'mediumDate' : 'medium') }}</span>\n </div>\n <div class=\"is-flex is-align-items-center is-gap-8 w-100\">\n <span class=\"has-text-weight-bold\">Calculated Version:</span>\n <he-engine-models-version-link [node]=\"node()\" />\n </div>\n </div>\n</ng-template>\n", styles: [".engine-models-stage--container{border:1px solid transparent;border-radius:6px}.engine-models-stage--container.has-errors{border-bottom-left-radius:0;border-bottom-right-radius:0}.divider{border-left:1px solid #4c7194;height:52px}.is-type-Cycle{border:1px solid #4c7194}.is-type-Site{border:1px solid #349b3e}.is-type-ImpactAssessment{border:1px solid #b4a988}.is-type-Source{border:1px solid #f5f5f5}.is-type-Cycle{background-color:#ecf1ff}.is-type-Site{background-color:#d5f3d8}.is-type-ImpactAssessment{background-color:#e7e0cb}.is-type-Source{background-color:#f5f5f5}.error-container{background-color:#fefaef;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:0}.related-node-icon{top:-49px;left:8px}.related-node-icon.has-errors{top:-19px}\n"], dependencies: [{ kind: "component", type: EngineModelsStageDeepComponent, selector: "he-engine-models-stage-deep", inputs: ["node", "expanded", "expandedNode"], outputs: ["expandedChange"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "component", type: HESvgIconComponent, selector: "he-svg-icon", inputs: ["name", "size", "animation"] }, { kind: "ngmodule", type: NgbPopoverModule }, { kind: "directive", type: i1$2.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "ngbPopover", "popoverTitle", "placement", "popperOptions", "triggers", "positionTarget", "container", "disablePopover", "popoverClass", "popoverContext", "openDelay", "closeDelay"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }, { kind: "ngmodule", type: NgbTooltipModule }, { kind: "component", type: EngineModelsVersionLinkComponent, selector: "he-engine-models-version-link", inputs: ["node"] }, { kind: "component", type: SkeletonTextComponent, selector: "he-skeleton-text", inputs: ["animated", "width", "height"] }, { kind: "pipe", type: TimesPipe, name: "times" }, { kind: "component", type: NodeLinkComponent, selector: "he-node-link", inputs: ["node", "dataState", "showExternalLink", "linkClass"] }, { kind: "component", type: NodeIconComponent, selector: "he-node-icon", inputs: ["type", "size"] }] }); }
8968
8980
  }
8969
8981
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: EngineModelsStageDeepComponent, decorators: [{
8970
8982
  type: Component$1,
@@ -8976,8 +8988,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
8976
8988
  EngineModelsVersionLinkComponent,
8977
8989
  SkeletonTextComponent,
8978
8990
  TimesPipe,
8979
- NodeLinkComponent
8980
- ], 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 <he-svg-icon [name]=\"expanded() ? 'chevron-down' : 'chevron-right'\" />\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 if (recalculatedAt()) {\n <span\n class=\"trigger-popover\"\n [ngbPopover]=\"popoverDetails\"\n autoClose=\"outside\"\n popoverClass=\"is-narrow\"\n placement=\"left auto\"\n container=\"body\">\n <span class=\"has-text-success\">complete</span>\n </span>\n }\n\n @if (hasError()) {\n <a\n class=\"has-text-danger\"\n ngbTooltip=\"Errors validating recalculation. Click to open\"\n (click)=\"openError(node())\">\n <he-svg-icon name=\"exclamation-triangle\" />\n </a>\n }\n </div>\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 [expandedNode]=\"expandedNode() || node()\" />\n </div>\n }\n }\n</div>\n\n<ng-template #popoverDetails>\n <div class=\"is-flex is-flex-direction-column is-gap-4 has-text-white w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 w-100\">\n <span class=\"has-text-weight-bold\">Calculated Date:</span>\n <span>{{ recalculatedAt() | date: (recalculatedAt().length === 10 ? 'mediumDate' : 'medium') }}</span>\n </div>\n <div class=\"is-flex is-align-items-center is-gap-8 w-100\">\n <span class=\"has-text-weight-bold\">Calculated Version:</span>\n <he-engine-models-version-link [node]=\"node()\" />\n </div>\n </div>\n</ng-template>\n", styles: [".engine-models-stage--container{border:1px solid transparent;border-radius:3px}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"] }]
8991
+ NodeLinkComponent,
8992
+ NodeIconComponent
8993
+ ], template: "@if (expandedNode()) {\n <svg\n class=\"is-absolute | related-node-icon\"\n [class.has-errors]=\"hasError()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"15\"\n height=\"81\"\n viewBox=\"0 0 15 81\"\n fill=\"none\">\n <path d=\"M0.5 0V71C0.5 75.9706 4.52944 80 9.5 80H14.5\" stroke=\"#B5B5B5\" />\n </svg>\n}\n\n<div class=\"is-flex is-flex-direction-column is-gap-8\">\n <div class=\"is-flex is-flex-direction-column is-justify-content-center is-align-items-center\">\n <div\n class=\"is-flex is-align-items-flex-start is-align-self-stretch is-justify-content-space-between is-gap-8 is-p-1 | engine-models-stage--container is-type-{{\n type()\n }}\"\n [class.has-errors]=\"hasError()\">\n <div class=\"is-flex is-flex-direction-column is-justify-content-center is-align-items-center is-gap-4\">\n <div class=\"is-flex is-align-items-center is-gap-4\">\n <he-node-icon [type]=\"type()\" size=\"20\" />\n <span>{{ type() }}</span>\n </div>\n\n <div class=\"is-flex is-align-items-center is-gap-4 is-align-self-stretch\">\n <span class=\"is-size-7\">ID:</span>\n <he-node-link [node]=\"node()\">\n <span class=\"has-text-link is-size-7\">{{ id() }}</span>\n </he-node-link>\n </div>\n </div>\n\n <div class=\"divider\"></div>\n\n <div class=\"is-flex is-flex-direction-column is-justify-content-center is-align-items-center is-gap-4\">\n <span>\n @if (inProgress()) {\n <he-svg-icon name=\"loading-circle-filled\" size=\"24\" animation=\"spin\" class=\"has-text-info\" />\n } @else if (recalculatedAt()) {\n <he-svg-icon name=\"checkmark-circle-filled\" size=\"24\" class=\"has-text-success\" />\n } @else {\n <he-svg-icon name=\"exclamation-triangle-filled\" size=\"24\" class=\"has-text-danger\" />\n }\n </span>\n <span class=\"is-size-7\">\n @if (inProgress()) {\n stage {{ stage() }} / {{ maxStage() }}\n } @else if (recalculatedAt()) {\n <span\n class=\"trigger-popover\"\n [ngbPopover]=\"popoverDetails\"\n autoClose=\"outside\"\n popoverClass=\"is-narrow\"\n placement=\"left auto\"\n container=\"body\">\n <span>Complete</span>\n </span>\n } @else {\n Failed\n }\n </span>\n </div>\n\n @if (canExpand()) {\n <a (click)=\"expanded.set(!expanded())\" class=\"has-text-secondary\">\n <he-svg-icon [name]=\"expanded() ? 'chevron-up' : 'chevron-down'\" />\n </a>\n }\n </div>\n\n @if (hasError()) {\n <div\n class=\"is-flex is-justify-content-center is-align-items-center is-gap-4 is-align-self-stretch is-pl-1 is-pr-2 is-py-2 | error-container is-type-{{\n type()\n }}\">\n <div class=\"is-flex-grow-1 is-gap-4\">\n <he-svg-icon name=\"exclamation-triangle-filled\" size=\"20\" class=\"has-text-danger\" />\n <span class=\"is-size-7 has-text-weight-semibold\">Validation Error</span>\n </div>\n\n <button class=\"button is-primary is-light is-small\" (click)=\"openError(node())\">View</button>\n </div>\n }\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 <div class=\"is-flex is-flex-direction-column is-gap-8 is-overflow-hidden\">\n @for (relatedNode of expandableNodes(); track trackNode(relatedNode)) {\n <div class=\"is-relative is-pl-4\">\n <he-engine-models-stage-deep\n class=\"is-flex-grow-1\"\n [node]=\"relatedNode\"\n [expanded]=\"false\"\n [expandedNode]=\"expandedNode() || node()\" />\n </div>\n }\n </div>\n }\n</div>\n\n<ng-template #popoverDetails>\n <div class=\"is-flex is-flex-direction-column is-gap-4 has-text-white w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 w-100\">\n <span class=\"has-text-weight-bold\">Calculated Date:</span>\n <span>{{ recalculatedAt() | date: (recalculatedAt().length === 10 ? 'mediumDate' : 'medium') }}</span>\n </div>\n <div class=\"is-flex is-align-items-center is-gap-8 w-100\">\n <span class=\"has-text-weight-bold\">Calculated Version:</span>\n <he-engine-models-version-link [node]=\"node()\" />\n </div>\n </div>\n</ng-template>\n", styles: [".engine-models-stage--container{border:1px solid transparent;border-radius:6px}.engine-models-stage--container.has-errors{border-bottom-left-radius:0;border-bottom-right-radius:0}.divider{border-left:1px solid #4c7194;height:52px}.is-type-Cycle{border:1px solid #4c7194}.is-type-Site{border:1px solid #349b3e}.is-type-ImpactAssessment{border:1px solid #b4a988}.is-type-Source{border:1px solid #f5f5f5}.is-type-Cycle{background-color:#ecf1ff}.is-type-Site{background-color:#d5f3d8}.is-type-ImpactAssessment{background-color:#e7e0cb}.is-type-Source{background-color:#f5f5f5}.error-container{background-color:#fefaef;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:0}.related-node-icon{top:-49px;left:8px}.related-node-icon.has-errors{top:-19px}\n"] }]
8981
8994
  }] });
8982
8995
 
8983
8996
  const gitUrl = `${gitHome}/${Repository.orchestrator}/-/blob/${gitBranch()}`;
@@ -13153,5 +13166,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
13153
13166
  * Generated bundle index. Do not edit.
13154
13167
  */
13155
13168
 
13156
- export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, CapitalizePipe, ChartComponent, ChartConfigurationDirective, ClickOutsideDirective, ClipboardComponent, CollapsibleBoxComponent, ColorPalette, CompoundDirective, CompoundPipe, ControlValueAccessor, CycleNodesKeyGroup, CyclesCompletenessComponent, CyclesEmissionsChartComponent, CyclesFunctionalUnitMeasureComponent, CyclesNodesComponent, CyclesNodesTimelineComponent, CyclesResultComponent, DataTableComponent, DefaultPipe, DeltaColour, DistributionChartComponent, DrawerContainerComponent, DurationPipe, EllipsisPipe, EngineModelsLinkComponent, EngineModelsLookupInfoComponent, EngineModelsStageComponent, EngineModelsStageDeepComponent, EngineModelsStageDeepService, EngineModelsVersionLinkComponent, EngineOrchestratorEditComponent, EngineRequirementsFormComponent, FileSizePipe, FilesErrorSummaryComponent, FilesFormComponent, FilesFormEditableComponent, FilesUploadErrorsComponent, FilterAccordionComponent, GUIDE_ENABLED, GetPipe, GlossaryMigrationFormat, GuideOverlayComponent, HESvgIconComponent, HE_API_BASE_URL, HE_CALCULATIONS_BASE_URL, HE_MAP_LOADED, HeAuthService, HeCommonService, HeEngineService, HeGlossaryService, HeMendeleyService, HeNodeCsvService, HeNodeService, HeNodeStoreService, HeSchemaService, HeSearchService, HeToastService, ImpactAssessmentsGraphComponent, ImpactAssessmentsIndicatorBreakdownChartComponent, ImpactAssessmentsIndicatorsChartComponent, ImpactAssessmentsProductsComponent, IsArrayPipe, IsObjectPipe, IssueConfirmComponent, KeyToLabelPipe, Level, LineChartComponent, LinkKeyValueComponent, LogStatus, MAX_RESULTS, MapsDrawingComponent, MapsDrawingConfirmComponent, MendeleySearchResult, MobileShellComponent, NavigationMenuComponent, NoExtPipe, NodeAggregatedComponent, NodeAggregatedInfoComponent, NodeAggregatedQualityScoreComponent, NodeCsvExportConfirmComponent, NodeCsvPreviewComponent, NodeCsvSelectHeadersComponent, NodeIconComponent, NodeJsonldComponent, NodeJsonldSchemaComponent, NodeKeyState, NodeLinkComponent, NodeLogsFileComponent, NodeLogsModelsComponent, NodeLogsTimeComponent, NodeMissingLookupFactorsComponent, NodeQualityScore, NodeRecommendationsComponent, NodeSelectComponent, NodeValueDetailsComponent, PluralizePipe, PopoverComponent, PopoverConfirmComponent, PrecisionPipe, RelatedNodeResult, RemoveMarkdownPipe, Repository, ResizedDirective, ResizedEvent, ResponsiveService, SchemaInfoComponent, SchemaVersionLinkComponent, SearchExtendComponent, ShelfDialogComponent, ShellComponent, SitesManagementChartComponent, SitesMapsComponent, SitesNodesComponent, SkeletonTextComponent, SocialTagsComponent, SortByPipe, SortSelectComponent, TagsInputDirective, Template, TermsPropertyContentComponent, TermsSubClassOfContentComponent, TermsUnitsDescriptionComponent, ThousandSuffixesPipe, ThousandsPipe, TimesPipe, ToastComponent, UncapitalizePipe, addPolygonToFeature, allCountriesQuery, allGroups, allOptions, arrayValue, availableProperties, baseApiUrl, baseUrl, bottom, buildSummary, bytesSize, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, capitalize, changelogUrl, clustererImage, code, compoundToHtml, computeKeys, computeTerms, contactUsEmail, contactUsLink, coordinatesToPoint, copyObject, countriesQuery, createMarker, cropsQuery, d3ellipse, d3wrap, dataPathLabel, dataPathToKey, defaultFeature, defaultLabel, defaultSuggestionType, defaultSvgIconSize, definitionToSchemaType, distinctUntilChangedDeep, ellipsis, engineGitBaseUrl, engineGitUrl, errorHasError, errorHasWarning, errorText, evaluateSuccess, externalLink, externalNodeLink, fillColor, fillStyle, filterBlankNode$1 as filterBlankNode, filterError, filterParams, findConfigModels, findMatchingModel, findModels, findNodeModel, findOrchestratorModel, findProperty, findPropertyById, flatFilterData, flatFilterNode, formatCustomErrorMessage, formatDate, formatError, formatPropertyError, formatter, getColor, getDatesBetween, gitBranch, gitHome, gitlabRawUrl, glossaryBaseUrl, glossaryLink, groupChanged, groupLogsByModel, groupLogsByTerm, groupNodesByTerm, groupdLogsByKey, grouppedKeys, grouppedValueKeys, guideModelUrl, guideNamespace, guidePageId, handleAPIError, handleGuideEvent, hasError, hasValidationError, hasWarning, iconSizes, icons, ignoreKeys$2 as ignoreKeys, initialFilterState, inputGroupsTermTypes, isAddPropertyEnabled, isChrome, isDateBetween, isEqual, isExternal, isGroupVisible, isKeyClosedVisible, isKeyHidden, isMaxStage, isMethodModelAllowed, isMigrationError, isMissingOneOfError, isMissingPropertyError, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, keyToDataPath, levels, listColor, listColorContinuous, loadMapApi, loadSvgSprite, localStorageSignal, locationQuery, logToCsv$1 as logToCsv, logValueArray, logsKey, lookupUrl, mapFilterData, mapsUrl, markerIcon, markerPie, matchAggregatedQuery, matchAggregatedValidatedQuery, matchBoolPrefixQuery, matchCountry, matchExactQuery, matchGlobalRegion, matchId, matchNameNormalized, matchNestedKey, matchPhrasePrefixQuery, matchPhraseQuery, matchPrimaryProductQuery, matchQuery, matchRegex, matchRegion, matchTermType, matchType, maxAreaSize, measurementValue, mergeDataWithHeaders, methodTierOrder, migrationErrorMessage, migrationsUrl, missingNodeErrors, modelCount, modelKeyParams, modelParams, models, multiMatchQuery, nestedProperty, nestingEnabled, nestingTypeEnabled, nodeAvailableProperties, nodeColours$1 as nodeColours, nodeDataState, nodeId, nodeLink, nodeLinkEnabled, nodeLinkTypeEnabled, nodeLogsUrl, nodeQualityScoreColor, nodeQualityScoreLevel, nodeQualityScoreMaxDefault, nodeQualityScoreOrder, nodeToAggregationFilename, nodeType, nodeTypeDataState, nodeUrl, nodeUrlParams, nodeVersion, numberGte, optionsFromGroup, parentKey, parentProperty, parseData, parseDataPath, parseLines, parseMessage$1 as parseMessage, parseNewValue, pluralize, pointToCoordinates, polygonBounds, polygonToCoordinates, polygonToMap, polygonsFromFeature, populateWithTrackIdsFilterData, postGuideEvent, 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, siteTypeToIcon, sortProperties, sortedDates, strokeColor, strokeStyle, suggestMatchQuery, suggestQuery, takeAfterViewInit, termLocation, termLocationName, termProperties, termTypeLabel, toSnakeCase, toThousands, typeToNewProperty, typeaheadFocus, uncapitalize, uniqueDatesBetween, updateProperties, valueTypeToDefault, waitFor, wildcardQuery };
13169
+ export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, CapitalizePipe, ChartComponent, ChartConfigurationDirective, ClickOutsideDirective, ClipboardComponent, CollapsibleBoxComponent, ColorPalette, CompoundDirective, CompoundPipe, ControlValueAccessor, CycleNodesKeyGroup, CyclesCompletenessComponent, CyclesEmissionsChartComponent, CyclesFunctionalUnitMeasureComponent, CyclesNodesComponent, CyclesNodesTimelineComponent, CyclesResultComponent, DataTableComponent, DefaultPipe, DeltaColour, DistributionChartComponent, DrawerContainerComponent, DurationPipe, EllipsisPipe, EngineModelsLinkComponent, EngineModelsLookupInfoComponent, EngineModelsStageComponent, EngineModelsStageDeepComponent, EngineModelsStageDeepService, EngineModelsVersionLinkComponent, EngineOrchestratorEditComponent, EngineRequirementsFormComponent, FileSizePipe, FilesErrorSummaryComponent, FilesFormComponent, FilesFormEditableComponent, FilesUploadErrorsComponent, FilterAccordionComponent, GUIDE_ENABLED, GetPipe, GlossaryMigrationFormat, GuideOverlayComponent, HESvgIconComponent, HE_API_BASE_URL, HE_CALCULATIONS_BASE_URL, HE_MAP_LOADED, HeAuthService, HeCommonService, HeEngineService, HeGlossaryService, HeMendeleyService, HeNodeCsvService, HeNodeService, HeNodeStoreService, HeSchemaService, HeSearchService, HeToastService, ImpactAssessmentsGraphComponent, ImpactAssessmentsIndicatorBreakdownChartComponent, ImpactAssessmentsIndicatorsChartComponent, ImpactAssessmentsProductsComponent, IsArrayPipe, IsObjectPipe, IssueConfirmComponent, KeyToLabelPipe, Level, LineChartComponent, LinkKeyValueComponent, LogStatus, MAX_RESULTS, MapsDrawingComponent, MapsDrawingConfirmComponent, MendeleySearchResult, MobileShellComponent, NavigationMenuComponent, NoExtPipe, NodeAggregatedComponent, NodeAggregatedInfoComponent, NodeAggregatedQualityScoreComponent, NodeCsvExportConfirmComponent, NodeCsvPreviewComponent, NodeCsvSelectHeadersComponent, NodeIconComponent, NodeJsonldComponent, NodeJsonldSchemaComponent, NodeKeyState, NodeLinkComponent, NodeLogsFileComponent, NodeLogsModelsComponent, NodeLogsTimeComponent, NodeMissingLookupFactorsComponent, NodeQualityScore, NodeRecommendationsComponent, NodeSelectComponent, NodeValueDetailsComponent, PluralizePipe, PopoverComponent, PopoverConfirmComponent, PrecisionPipe, RelatedNodeResult, RemoveMarkdownPipe, Repository, ResizedDirective, ResizedEvent, ResponsiveService, SchemaInfoComponent, SchemaVersionLinkComponent, SearchExtendComponent, ShelfDialogComponent, ShellComponent, SitesManagementChartComponent, SitesMapsComponent, SitesNodesComponent, SkeletonTextComponent, SocialTagsComponent, SortByPipe, SortSelectComponent, TagsInputDirective, Template, TermsPropertyContentComponent, TermsSubClassOfContentComponent, TermsUnitsDescriptionComponent, ThousandSuffixesPipe, ThousandsPipe, TimesPipe, ToastComponent, UncapitalizePipe, addPolygonToFeature, allCountriesQuery, allGroups, allOptions, arrayValue, availableProperties, baseApiUrl, baseUrl, bottom, buildSummary, bytesSize, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, capitalize, changelogUrl, clustererImage, code, compoundToHtml, computeKeys, computeTerms, contactUsEmail, contactUsLink, coordinatesToPoint, copyObject, countriesQuery, createMarker, cropsQuery, d3ellipse, d3wrap, dataPathLabel, dataPathToKey, defaultFeature, defaultLabel, defaultSuggestionType, defaultSvgIconSize, definitionToSchemaType, distinctUntilChangedDeep, ellipsis, engineGitBaseUrl, engineGitUrl, errorHasError, errorHasWarning, errorText, evaluateSuccess, externalLink, externalNodeLink, fillColor, fillStyle, filterBlankNode$1 as filterBlankNode, filterError, filterParams, findConfigModels, findMatchingModel, findModels, findNodeModel, findOrchestratorModel, findProperty, findPropertyById, flatFilterData, flatFilterNode, formatCustomErrorMessage, formatDate, formatError, formatPropertyError, formatter, getColor, getDatesBetween, gitBranch, gitHome, gitlabRawUrl, glossaryBaseUrl, glossaryLink, groupChanged, groupLogsByModel, groupLogsByTerm, groupNodesByTerm, groupdLogsByKey, grouppedKeys, grouppedValueKeys, guideModelUrl, guideNamespace, guidePageId, handleAPIError, handleGuideEvent, hasError, hasValidationError, hasWarning, iconSizes, icons, ignoreKeys$2 as ignoreKeys, initialFilterState, inputGroupsTermTypes, isAddPropertyEnabled, isChrome, isDateBetween, isEqual, isExternal, isGroupVisible, isKeyClosedVisible, isKeyHidden, isMaxStage, isMethodModelAllowed, isMigrationError, isMissingOneOfError, isMissingPropertyError, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, keyToDataPath, levels, listColor, listColorContinuous, loadMapApi, loadSvgSprite, localStorageSignal, locationQuery, logToCsv$1 as logToCsv, logValueArray, logsKey, lookupUrl, mapFilterData, mapsUrl, markerIcon, markerPie, matchAggregatedQuery, matchAggregatedValidatedQuery, matchBoolPrefixQuery, matchCountry, matchExactQuery, matchGlobalRegion, matchId, matchNameNormalized, matchNestedKey, matchPhrasePrefixQuery, matchPhraseQuery, matchPrimaryProductQuery, matchQuery, matchRegex, matchRegion, matchTermType, matchType, maxAreaSize, measurementValue, mergeDataWithHeaders, methodTierOrder, migrationErrorMessage, migrationsUrl, missingNodeErrors, modelCount, modelKeyParams, modelParams, models, multiMatchQuery, nestedProperty, nestingEnabled, nestingTypeEnabled, nodeAvailableProperties, nodeColours$1 as nodeColours, nodeDataState, nodeId, nodeLink, nodeLinkEnabled, nodeLinkTypeEnabled, nodeLogsUrl, nodeQualityScoreColor, nodeQualityScoreLevel, nodeQualityScoreMaxDefault, nodeQualityScoreOrder, nodeSecondaryColours, nodeToAggregationFilename, nodeType, nodeTypeDataState, nodeUrl, nodeUrlParams, nodeVersion, numberGte, optionsFromGroup, parentKey, parentProperty, parseData, parseDataPath, parseLines, parseMessage$1 as parseMessage, parseNewValue, pluralize, pointToCoordinates, polygonBounds, polygonToCoordinates, polygonToMap, polygonsFromFeature, populateWithTrackIdsFilterData, postGuideEvent, 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, siteTypeToIcon, sortProperties, sortedDates, strokeColor, strokeStyle, suggestMatchQuery, suggestQuery, takeAfterViewInit, termLocation, termLocationName, termProperties, termTypeLabel, toSnakeCase, toThousands, typeToNewProperty, typeaheadFocus, uncapitalize, uniqueDatesBetween, updateProperties, valueTypeToDefault, waitFor, wildcardQuery };
13157
13170
  //# sourceMappingURL=hestia-earth-ui-components.mjs.map