@hestia-earth/ui-components 0.2.5 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/hestia-earth-ui-components.umd.js +104 -77
- package/bundles/hestia-earth-ui-components.umd.js.map +1 -1
- package/common/node-utils.d.ts +1 -1
- package/engine/engine.service.d.ts +1 -0
- package/esm2015/common/link-key-value/link-key-value.component.js +15 -6
- package/esm2015/common/node-utils.js +1 -1
- package/esm2015/engine/engine.service.js +2 -2
- package/esm2015/files/files-error.model.js +17 -8
- package/esm2015/files/files-form.model.js +2 -1
- package/esm2015/impact-assessments/impact-assessments-indicator-breakdown-chart/impact-assessments-indicator-breakdown-chart.component.js +26 -18
- package/esm2015/impact-assessments/impact-assessments-products/impact-assessments-products.component.js +2 -2
- package/esm2015/impact-assessments/impact-assessments-products-logs/impact-assessments-products-logs.component.js +6 -5
- package/esm2015/node/node-logs-models/node-logs-models.component.js +45 -46
- package/esm2015/node/node-value-details/node-value-details.component.js +2 -2
- package/esm2015/terms/terms.model.js +2 -2
- package/fesm2015/hestia-earth-ui-components.js +107 -80
- package/fesm2015/hestia-earth-ui-components.js.map +1 -1
- package/impact-assessments/impact-assessments-indicator-breakdown-chart/impact-assessments-indicator-breakdown-chart.component.d.ts +2 -0
- package/impact-assessments/impact-assessments-products/impact-assessments-products.component.d.ts +1 -1
- package/impact-assessments/impact-assessments-products-logs/impact-assessments-products-logs.component.d.ts +1 -1
- package/node/node-logs-models/node-logs-models.component.d.ts +2 -4
- package/package.json +1 -1
|
@@ -874,7 +874,7 @@
|
|
|
874
874
|
},
|
|
875
875
|
_b$1.practice = {
|
|
876
876
|
label: 'Practices',
|
|
877
|
-
termType: '
|
|
877
|
+
termType: 'Practices',
|
|
878
878
|
children: termTypesToChildren([
|
|
879
879
|
schema.TermTermType.animalManagement,
|
|
880
880
|
schema.TermTermType.aquacultureManagement,
|
|
@@ -1928,9 +1928,20 @@
|
|
|
1928
1928
|
args: ['window:resize', []]
|
|
1929
1929
|
}] } });
|
|
1930
1930
|
|
|
1931
|
+
var valueLink = function (value) { return schema.isExpandable(value) && value['@id'] ? [baseUrl(), value['@type'].toLowerCase(), value['@id']].join('/') : null; };
|
|
1932
|
+
var valueLinkRef = function (value, href) { return href ? "<a href=\"" + href + "\">" + (value.name || value['@id']) + "</a>" : null; };
|
|
1931
1933
|
var stringMapper = {
|
|
1932
1934
|
undefined: function () { return ''; },
|
|
1933
|
-
|
|
1935
|
+
blankNode: function (value) { return 'term' in value
|
|
1936
|
+
? "" + valueLinkRef(value.term, valueLink(value.term)) + ('value' in value ? ": " + value.value : '')
|
|
1937
|
+
: valueLinkRef(value, valueLink(value)) || value.name || value['@id']; },
|
|
1938
|
+
object: function (value) { return Array.isArray(value)
|
|
1939
|
+
? value.map(toString).join(', ')
|
|
1940
|
+
: value instanceof Date
|
|
1941
|
+
? value.toJSON()
|
|
1942
|
+
: schema.isExpandable(value)
|
|
1943
|
+
? stringMapper.blankNode(value)
|
|
1944
|
+
: JSON.stringify(value, null, 2); }
|
|
1934
1945
|
};
|
|
1935
1946
|
var toString = function (value) { return typeof value in stringMapper ? stringMapper[typeof value](value) : value.toString(); };
|
|
1936
1947
|
var LinkKeyValueComponent = /** @class */ (function () {
|
|
@@ -1961,9 +1972,7 @@
|
|
|
1961
1972
|
});
|
|
1962
1973
|
Object.defineProperty(LinkKeyValueComponent.prototype, "valueLink", {
|
|
1963
1974
|
get: function () {
|
|
1964
|
-
return
|
|
1965
|
-
[baseUrl(), this.value['@type'].toLowerCase(), this.value['@id']].join('/') :
|
|
1966
|
-
null;
|
|
1975
|
+
return valueLink(this.value);
|
|
1967
1976
|
},
|
|
1968
1977
|
enumerable: false,
|
|
1969
1978
|
configurable: true
|
|
@@ -1985,7 +1994,7 @@
|
|
|
1985
1994
|
return LinkKeyValueComponent;
|
|
1986
1995
|
}());
|
|
1987
1996
|
LinkKeyValueComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: LinkKeyValueComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1988
|
-
LinkKeyValueComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: LinkKeyValueComponent, selector: "he-link-key-value", inputs: { node: "node", nodeType: "nodeType", dataKey: "dataKey", key: "key" }, ngImport: i0__namespace, template: "<ng-container *ngIf=\"!isUndefined\">\n <ng-container *bindOnce=\"node\">\n <a [href]=\"baseUrl + '/schema/' + type + '#' + key\" target=\"_blank\"><b>{{key}}</b></a>\n <span class=\"pr-2\">:</span>\n <
|
|
1997
|
+
LinkKeyValueComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: LinkKeyValueComponent, selector: "he-link-key-value", inputs: { node: "node", nodeType: "nodeType", dataKey: "dataKey", key: "key" }, ngImport: i0__namespace, template: "<ng-container *ngIf=\"!isUndefined\">\n <ng-container *bindOnce=\"node\">\n <a [href]=\"baseUrl + '/schema/' + type + '#' + key\" target=\"_blank\"><b>{{key}}</b></a>\n <span class=\"pr-2\">:</span>\n\n <ng-container *ngIf=\"isArray; else singleValue\">\n <div class=\"array-container pl-2\">\n <p *ngFor=\"let v of value\" [innerHtml]=\"toString(v) | precision:3\"></p>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #singleValue>\n <div class=\"is-inline-block pr-1\" [innerHtml]=\"valueString | precision:3\"></div>\n\n <he-blank-node-state\n [node]=\"node\" [nodeType]=\"nodeType\" [dataKey]=\"dataKey\" [key]=\"key\"\n ></he-blank-node-state>\n</ng-template>\n", styles: [":host{display:block}.array-container{max-height:100px;overflow-y:auto}\n"], components: [{ type: BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["nodeType", "dataKey", "key", "node", "state"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: BindOnceDirective, selector: "[bindOnce]", inputs: ["bindOnce"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "precision": PrecisionPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
|
|
1989
1998
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: LinkKeyValueComponent, decorators: [{
|
|
1990
1999
|
type: i0.Component,
|
|
1991
2000
|
args: [{
|
|
@@ -5494,6 +5503,13 @@
|
|
|
5494
5503
|
.filter(function (v) { return v !== null; });
|
|
5495
5504
|
return propertyValues.length ? propertyValues.reduce(function (p, v) { return p + v; }, 0) : undefined;
|
|
5496
5505
|
};
|
|
5506
|
+
var isRunOrchestrator = function (log) { return !('shouldRunOrchestrator' in log) || log.shouldRunOrchestrator; };
|
|
5507
|
+
var hasLog = function (log, withOrchestrator) {
|
|
5508
|
+
if (withOrchestrator === void 0) { withOrchestrator = true; }
|
|
5509
|
+
return !!log && ('shouldRun' in log ||
|
|
5510
|
+
'runRequired' in log ||
|
|
5511
|
+
(withOrchestrator && 'shouldRunOrchestrator' in log));
|
|
5512
|
+
};
|
|
5497
5513
|
var isRecalculated = function (values, key) {
|
|
5498
5514
|
if (key === void 0) { key = 'value'; }
|
|
5499
5515
|
return values.some(function (v) { return (__spreadArray(__spreadArray([], __read((v.added || []))), __read((v.updated || [])))).includes(key); });
|
|
@@ -5527,18 +5543,26 @@
|
|
|
5527
5543
|
var logSubValue = function (logs, key, prop) { return logs[key][prop] ? (Array.isArray(logs[key][prop]) ?
|
|
5528
5544
|
logs[key][prop].map(function (id) { return ({ key: prop, id: id }); }) :
|
|
5529
5545
|
{ key: prop, id: logs[key][prop] }) : undefined; };
|
|
5530
|
-
var
|
|
5531
|
-
|
|
5546
|
+
var logProperties = function (nodes, models) { return nodes.flatMap(function (node) { return (node.properties || []).map(function (_c) {
|
|
5547
|
+
var term = _c.term;
|
|
5548
|
+
return term['@id'];
|
|
5549
|
+
}); }).map(function (id) { return ({ key: 'property', id: id, configModels: findModels(models, id).map(function (_c) {
|
|
5550
|
+
var model = _c.model;
|
|
5551
|
+
return model;
|
|
5552
|
+
}) }); }); };
|
|
5553
|
+
var logSubValues = function (logs, original, recalculated, models) { return utils.unique(__spreadArray(__spreadArray(__spreadArray([], __read(Object.keys(logs).flatMap(function (key) { return [
|
|
5532
5554
|
logSubValue(logs, key, 'input'),
|
|
5533
5555
|
logSubValue(logs, key, 'property')
|
|
5534
5556
|
]
|
|
5535
5557
|
.flat()
|
|
5536
5558
|
.filter(Boolean)
|
|
5559
|
+
.map(function (v) { return (Object.assign(Object.assign({}, v), { configModels: [key] })); }); }))), __read(logProperties(original, models))), __read(logProperties(recalculated, models))))
|
|
5537
5560
|
.map(function (v) {
|
|
5538
5561
|
var originalValue = blankNodeValue(original, v.key, v.id);
|
|
5539
5562
|
var recalculatedValue = blankNodeValue(recalculated, v.key, v.id);
|
|
5540
|
-
return Object.assign(Object.assign({}, v), { configModels:
|
|
5541
|
-
})
|
|
5563
|
+
return Object.assign(Object.assign({}, v), { configModels: v.configModels, originalValue: originalValue, recalculatedValue: recalculatedValue, isRecalculated: !utils.isUndefined(recalculatedValue) && recalculatedValue !== originalValue });
|
|
5564
|
+
})
|
|
5565
|
+
.filter(function (v) { return v.configModels.length > 0; }); };
|
|
5542
5566
|
var logKeys = function (logs, original, recalculated) { return Object.keys(logs)
|
|
5543
5567
|
.filter(function (key) { return logs[key].isKey; })
|
|
5544
5568
|
.map(function (key) { return ({
|
|
@@ -5633,11 +5657,12 @@
|
|
|
5633
5657
|
this.terms = [];
|
|
5634
5658
|
this.baseUrl = baseUrl();
|
|
5635
5659
|
this.isExternal = isExternal();
|
|
5660
|
+
this.hasLog = hasLog;
|
|
5636
5661
|
this.loading = true;
|
|
5637
5662
|
this.blankNodes = [];
|
|
5638
5663
|
this.methodModelsCount = 0;
|
|
5639
5664
|
this.rowsCount = 0;
|
|
5640
|
-
this.
|
|
5665
|
+
this.onlyRequired = true;
|
|
5641
5666
|
this.showLegend = true;
|
|
5642
5667
|
this.LogStatus = LogStatus;
|
|
5643
5668
|
this.logIcon = logIcon;
|
|
@@ -5709,8 +5734,11 @@
|
|
|
5709
5734
|
return model;
|
|
5710
5735
|
}))));
|
|
5711
5736
|
var keys = logKeys(termLogs, original, recalculated);
|
|
5712
|
-
var subValues = logSubValues(termLogs, original, recalculated);
|
|
5713
|
-
var isRequired = !Object.values(termLogs)
|
|
5737
|
+
var subValues = logSubValues(termLogs, original, recalculated, allModels);
|
|
5738
|
+
var isRequired = !Object.values(termLogs)
|
|
5739
|
+
// ignore models that were never going to run
|
|
5740
|
+
.filter(isRunOrchestrator)
|
|
5741
|
+
.every(function (logs) { return logs.runRequired === false; });
|
|
5714
5742
|
return {
|
|
5715
5743
|
isOpen: true,
|
|
5716
5744
|
canOpen: keys.length > 0 || subValues.length > 0,
|
|
@@ -5778,18 +5806,19 @@
|
|
|
5778
5806
|
var _this = this;
|
|
5779
5807
|
setTimeout(function () {
|
|
5780
5808
|
_this.blankNodes = _this.allBlankNodes.filter(function (_c) {
|
|
5781
|
-
var
|
|
5809
|
+
var isRequired = _c.isRequired, name = _c.term.name;
|
|
5782
5810
|
return _this.term
|
|
5783
|
-
? _this.term
|
|
5784
|
-
: !_this.
|
|
5811
|
+
? name.toLowerCase().includes(_this.term.toLowerCase())
|
|
5812
|
+
: !_this.onlyRequired || !_this.filteredType || isRequired;
|
|
5785
5813
|
});
|
|
5786
5814
|
});
|
|
5787
5815
|
};
|
|
5788
5816
|
/** Logs **/
|
|
5789
5817
|
NodeLogsModelsComponent.prototype.getSubvalueLogs = function (node, _c) {
|
|
5790
|
-
var id = _c.id;
|
|
5818
|
+
var id = _c.id, key = _c.key;
|
|
5791
5819
|
// try to get a more precise logs, defaults to id otherwise
|
|
5792
|
-
return get$3(this.logs, [id, node.termId].join('.'), get$3(this.logs, id, {})
|
|
5820
|
+
return get$3(this.logs, [id, node.termId].join('.'), key === 'property' ? {} : get$3(this.logs, id, {}) // property needs to be mapped to the exact node to work
|
|
5821
|
+
);
|
|
5793
5822
|
};
|
|
5794
5823
|
NodeLogsModelsComponent.prototype.getLogs = function (node, methodId, subValue) {
|
|
5795
5824
|
var logs = (subValue === null || subValue === void 0 ? void 0 : subValue.key) ? this.getSubvalueLogs(node, subValue) : node.logs || {};
|
|
@@ -5798,9 +5827,6 @@
|
|
|
5798
5827
|
NodeLogsModelsComponent.prototype.isBackground = function (log) {
|
|
5799
5828
|
return (log === null || log === void 0 ? void 0 : log.methodTier) === schema.EmissionMethodTier.background;
|
|
5800
5829
|
};
|
|
5801
|
-
NodeLogsModelsComponent.prototype.isRunOrchestrator = function (log) {
|
|
5802
|
-
return !('shouldRunOrchestrator' in log) || log.shouldRunOrchestrator;
|
|
5803
|
-
};
|
|
5804
5830
|
NodeLogsModelsComponent.prototype.isUserProvided = function (node, methodId, subValue) {
|
|
5805
5831
|
var log = this.getLogs(node, methodId, subValue);
|
|
5806
5832
|
return [
|
|
@@ -5811,13 +5837,6 @@
|
|
|
5811
5837
|
this.hasLog(log, false) // skip if contains logs other than orchestrator
|
|
5812
5838
|
].every(function (v) { return !v; });
|
|
5813
5839
|
};
|
|
5814
|
-
NodeLogsModelsComponent.prototype.validSubValue = function (node, index, subValue) {
|
|
5815
|
-
var methodId = this.getMethodIdAt(node, index, subValue);
|
|
5816
|
-
var log = get$3(node.logs[methodId], subValue === null || subValue === void 0 ? void 0 : subValue.key, null);
|
|
5817
|
-
return !(subValue === null || subValue === void 0 ? void 0 : subValue.id) || (
|
|
5818
|
-
// subValue can be an array
|
|
5819
|
-
Array.isArray(log) ? log.includes(subValue === null || subValue === void 0 ? void 0 : subValue.id) : log === (subValue === null || subValue === void 0 ? void 0 : subValue.id));
|
|
5820
|
-
};
|
|
5821
5840
|
NodeLogsModelsComponent.prototype.getMethodIdAt = function (node, index, subValue) {
|
|
5822
5841
|
var configModels = (subValue || node).configModels;
|
|
5823
5842
|
return configModels[index];
|
|
@@ -5830,12 +5849,6 @@
|
|
|
5830
5849
|
(log === null || log === void 0 ? void 0 : log.model) ||
|
|
5831
5850
|
(methodId ? methodIdLabel(methodId) : '');
|
|
5832
5851
|
};
|
|
5833
|
-
NodeLogsModelsComponent.prototype.hasLog = function (log, withOrchestrator) {
|
|
5834
|
-
if (withOrchestrator === void 0) { withOrchestrator = true; }
|
|
5835
|
-
return !!log && ('shouldRun' in log ||
|
|
5836
|
-
'runRequired' in log ||
|
|
5837
|
-
(withOrchestrator && 'shouldRunOrchestrator' in log));
|
|
5838
|
-
};
|
|
5839
5852
|
NodeLogsModelsComponent.prototype.hasLogDetails = function (node, methodId, subValue) {
|
|
5840
5853
|
var _a;
|
|
5841
5854
|
var log = this.getLogs(node, methodId, subValue);
|
|
@@ -5848,17 +5861,16 @@
|
|
|
5848
5861
|
var log = this.getLogs(node, methodId, subValue);
|
|
5849
5862
|
return this.isUserProvided(node, methodId, subValue)
|
|
5850
5863
|
? LogStatus.dataProvided
|
|
5851
|
-
: (
|
|
5852
|
-
? (
|
|
5853
|
-
?
|
|
5854
|
-
|
|
5855
|
-
|
|
5856
|
-
? log.shouldRun
|
|
5857
|
-
|
|
5858
|
-
|
|
5859
|
-
|
|
5860
|
-
|
|
5861
|
-
: LogStatus.dataProvided))
|
|
5864
|
+
: (hasLog(log)
|
|
5865
|
+
? (!node.isRequired
|
|
5866
|
+
? LogStatus.notRequired
|
|
5867
|
+
: isRunOrchestrator(log)
|
|
5868
|
+
? ('shouldRun' in log
|
|
5869
|
+
? log.shouldRun ? LogStatus.success : LogStatus.error
|
|
5870
|
+
: LogStatus.dataProvided)
|
|
5871
|
+
: node.isRecalculated
|
|
5872
|
+
? LogStatus.skipHierarchy
|
|
5873
|
+
: LogStatus.dataProvided)
|
|
5862
5874
|
: LogStatus.skipHierarchy);
|
|
5863
5875
|
};
|
|
5864
5876
|
NodeLogsModelsComponent.prototype.requirementKeys = function (requirements) {
|
|
@@ -5870,7 +5882,7 @@
|
|
|
5870
5882
|
return NodeLogsModelsComponent;
|
|
5871
5883
|
}());
|
|
5872
5884
|
NodeLogsModelsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NodeLogsModelsComponent, deps: [{ token: HeSearchService }, { token: HeEngineService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
5873
|
-
NodeLogsModelsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NodeLogsModelsComponent, selector: "he-node-logs-models", inputs: { nodeType: "nodeType", nodeKey: "nodeKey", includeAllModels: "includeAllModels", logsUrl: "logsUrl", originalValues: "originalValues", recalculatedValues: "recalculatedValues", terms: "terms", logs: "logs", filteredType: "filteredType" }, ngImport: i0__namespace, template: "<div class=\"px-3 pb-3\">\n <div class=\"has-text-right mb-2\" *ngIf=\"!isExternal\">\n <a class=\"is-size-7\" *ngIf=\"logsUrl\" [href]=\"logsUrl\" target=\"_blank\">\n <fa-icon icon=\"external-link-alt\"></fa-icon>\n <span class=\"pl-2\">Open Full Logs</span>\n </a>\n </div>\n\n <he-data-table class=\"mb-1 is-small\" [small]=\"true\" [nbRows]=\"rowsCount\" maxHeight=\"320\">\n <table class=\"table is-narrow is-striped\">\n <thead>\n <tr>\n <th class=\"width-auto\">\n <div class=\"field\">\n <div class=\"control is-expanded has-icons-right\">\n <input class=\"input search-input is-small\"\n [(ngModel)]=\"term\" name=\"term\"\n placeholder=\"Filter by name\"\n [editable]=\"false\"\n [ngbTypeahead]=\"suggestTerm\"\n (selectItem)=\"filterResults()\"\n >\n <a class=\"icon is-small is-right\"\n [class.is-hidden]=\"!term\"\n (click)=\"term = ''; filterResults();\"\n >\n <fa-icon icon=\"times\"></fa-icon>\n </a>\n </div>\n </div>\n </th>\n <th class=\"has-border-right\">Units</th>\n <th>Original</th>\n <th>Recalculated</th>\n <th>Difference</th>\n <th *ngFor=\"let c of methodModelsCount | times; let i = index\">({{i + 1}})</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngIf=\"loading\">\n <td class=\"has-text-centered\" colspan=\"6\">\n <div class=\"has-text-center py-3\">\n <fa-icon icon=\"spinner\" [pulse]=\"true\" size=\"lg\"></fa-icon>\n </div>\n </td>\n </tr>\n <tr *ngIf=\"!loading && blankNodes.length === 0\">\n <td class=\"has-text-centered\" colspan=\"6\">\n <span>No data</span>\n </td>\n </tr>\n <ng-container *ngFor=\"let blankNode of blankNodes; trackBy: trackByBlankNode\">\n <tr [class.has-sub-rows]=\"blankNode.canOpen\">\n <td class=\"width-auto\" [attr.title]=\"blankNode.term.name\">\n <a class=\"is-inline-block is-align-top pr-2 open-node\"\n (click)=\"blankNode.isOpen = !blankNode.isOpen\"\n *ngIf=\"blankNode.canOpen\"\n >\n <fa-icon icon=\"angle-down\" [class.is-hidden]=\"!blankNode.isOpen\"></fa-icon>\n <fa-icon icon=\"angle-right\" [class.is-hidden]=\"blankNode.isOpen\"></fa-icon>\n </a>\n <he-node-link class=\"is-inline-block\" [node]=\"blankNode.term\">\n <span class=\"is-nowrap has-text-ellipsis\">{{blankNode.term.name}}</span>\n </he-node-link>\n </td>\n <td class=\"has-border-right\">\n <span>{{blankNode.term?.units}}</span>\n </td>\n <td>\n <span>{{blankNode.originalValue | precision:3 | default:'-'}}</span>\n </td>\n <td>\n <span *ngIf=\"!blankNode.isOriginal || blankNode.isRecalculated; else notRecalculated\">\n {{blankNode.recalculatedValue | precision:3 | default:'-'}}\n </span>\n </td>\n <td class=\"is-nowrap\">\n <he-blank-node-value-delta *ngIf=\"blankNode.original.length && blankNode.isRecalculated; else noValue\"\n [value]=\"blankNode.recalculatedValue\"\n [originalValue]=\"blankNode.originalValue\"\n ></he-blank-node-value-delta>\n </td>\n <ng-container *ngTemplateOutlet=\"blankNodeModels; context: {blankNode: blankNode}\"></ng-container>\n </tr>\n\n <ng-container *ngIf=\"blankNode.keys?.length\">\n <tr\n *ngFor=\"let subValue of blankNode.keys\"\n [class.is-hidden]=\"!blankNode.isOpen\"\n [class.has-sub-rows]=\"blankNode.subValues?.length\"\n >\n <td class=\"width-auto has-text-left\">\n <span class=\"is-inline-block is-align-top pl-3 pr-1 field-node\">Field:</span>\n\n <a class=\"is-inline-block\" *ngIf=\"blankNode.type\"\n [href]=\"baseUrl + '/schema/' + blankNode.type + '#' + subValue.key\" target=\"_blank\" [title]=\"subValue.key\"\n >\n <span class=\"is-nowrap has-text-ellipsis\">{{subValue.key}}</span>\n </a>\n <span class=\"is-inline-block is-align-top\" *ngIf=\"!blankNode.type\">{{subValue.key}}</span>\n </td>\n <td class=\"has-border-right\"></td>\n <td>\n <span *ngIf=\"subValue.originalValue !== null; else noValue\">{{subValue.originalValue | precision:3 | default:'-'}}</span>\n </td>\n <td>\n <span *ngIf=\"subValue.isRecalculated; else notRecalculated\">\n {{subValue.recalculatedValue | precision:3 | default:'-'}}\n </span>\n </td>\n <td>-</td>\n <td class=\"blank-node-index-key\">\n <ng-container *ngTemplateOutlet=\"blankNodeModel; context: {blankNode:blankNode, methodId:subValue.key, logs:getLogs(blankNode, subValue.key)}\"></ng-container>\n </td>\n <td *ngIf=\"methodModelsCount > 1\" [attr.colspan]=\"methodModelsCount - 1\"></td>\n </tr>\n </ng-container>\n\n <tr\n *ngFor=\"let subValue of blankNode.subValues\"\n [class.is-hidden]=\"!blankNode.isOpen\"\n >\n <td class=\"width-auto has-text-left\">\n <span class=\"is-inline-block is-align-top pl-3\">{{subValue.key | keyToLabel}}</span>\n\n <ng-container *ngIf=\"subValue.id\">\n <span class=\"is-inline-block\" class=\"is-inline-block is-align-top pr-1\">:</span>\n\n <ng-container [ngSwitch]=\"subValue.key\">\n <span class=\"is-inline-block\" *ngSwitchCase=\"'backgroundData'\">{{subValue.id | keyToLabel}}</span>\n <he-node-link *ngSwitchDefault class=\"is-block pl-4\" [node]=\"{'@type':'Term','@id':subValue.id}\" [attr.title]=\"subValue.id | keyToLabel\">\n <span class=\"is-nowrap has-text-ellipsis\">{{subValue.id | keyToLabel}}</span>\n </he-node-link>\n </ng-container>\n </ng-container>\n </td>\n <td class=\"has-border-right\"></td>\n <td>\n <span *ngIf=\"subValue.originalValue !== null; else noValue\">{{subValue.originalValue | precision:3 | default:'-'}}</span>\n </td>\n <td>\n <span *ngIf=\"subValue.isRecalculated; else notRecalculated\">\n {{subValue.recalculatedValue | precision:3 | default:'-'}}\n </span>\n </td>\n <td>-</td>\n <ng-container *ngTemplateOutlet=\"blankNodeModels; context: {blankNode: blankNode, subValue: subValue}\"></ng-container>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </he-data-table>\n\n <div class=\"is-size-7 is-italic\">\n <div class=\"columns is-variable is-1 my-0\">\n <div class=\"column is-narrow\">\n <p>\n <a class=\"is-inline-block pr-2\"\n (click)=\"showLegend = !showLegend\"\n >\n <fa-icon icon=\"angle-down\" [class.is-hidden]=\"!showLegend\"></fa-icon>\n <fa-icon icon=\"angle-right\" [class.is-hidden]=\"showLegend\"></fa-icon>\n </a>\n <span class=\"is-inline-block\">Legend:</span>\n </p>\n <ul class=\"content pl-2\" [class.is-hidden]=\"!showLegend\">\n <li\n class=\"has-text-{{logColor[status.value]}}\"\n *ngFor=\"let status of LogStatus | keys\"\n >\n <fa-icon [icon]=\"logIcon[status.value]\"></fa-icon>\n <span class=\"pl-1\">{{status.value}}</span>\n </li>\n </ul>\n </div>\n <div class=\"column has-text-right\" *ngIf=\"filteredType\">\n <label class=\"is-inline-block checkbox\">\n <input type=\"checkbox\" class=\"selector\"\n [(ngModel)]=\"onlyWithData\"\n (change)=\"filterResults()\"\n [disabled]=\"!!term\"\n >\n <span class=\"ml-2\">Show only relevant {{filteredType | pluralize}}</span>\n </label>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #blankNodeModels let-blankNode=\"blankNode\" let-subValue=\"subValue\">\n <td class=\"blank-node-index-{{i}}\" *ngFor=\"let c of methodModelsCount | times; let i = index\">\n <ng-container *ngIf=\"validSubValue(blankNode, i, subValue); else noValue\">\n <ng-container *ngIf=\"getMethodIdAt(blankNode, i, subValue); let methodId; else noValue\">\n <ng-template #modelSerie>\n <ng-container *ngTemplateOutlet=\"blankNodeModel; context: {blankNode:blankNode, methodId:methodId, subValue:subValue, logs:getLogs(blankNode, methodId, subValue)}\"></ng-container>\n </ng-template>\n <div *ngIf=\"methodId | isArray; else modelSerie\">\n <p *ngFor=\"let value of methodId\">\n <ng-container *ngTemplateOutlet=\"blankNodeModel; context: {blankNode:blankNode, methodId:value, subValue:subValue, logs:getLogs(blankNode, methodId, subValue)}\"></ng-container>\n </p>\n </div>\n </ng-container>\n </ng-container>\n </td>\n</ng-template>\n\n<ng-template #blankNodeModel let-blankNode=\"blankNode\" let-methodId=\"methodId\" let-subValue=\"subValue\" let-logs=\"logs\">\n <span\n [class.trigger-popover]=\"hasLogDetails(blankNode, methodId, subValue)\"\n [ngbPopover]=\"logDetails\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"hasLogDetails(blankNode, methodId, subValue) ? togglePopover(p, { logs }) : null\"\n >\n <span class=\"is-capitalized\">{{methodName(blankNode, methodId, subValue)}}</span>\n <span class=\"pl-1\" *ngIf=\"hasLog(logs) && logs?.methodTier\">[{{logs.methodTier}}]</span>\n <span class=\"pl-1 has-text-{{logColor[logStatus(blankNode, methodId, subValue)]}}\">\n <fa-icon [icon]=\"logIcon[logStatus(blankNode, methodId, subValue)]\"></fa-icon>\n </span>\n </span>\n</ng-template>\n\n<ng-template #noValue>-</ng-template>\n\n<ng-template #notRecalculated>not recalculated</ng-template>\n\n<ng-template #logDetails let-logs=\"logs\">\n <ng-container *ngIf=\"logs.requirements\">\n <p class=\"is-requirement\" *ngFor=\"let key of requirementKeys(logs.requirements)\">\n {{key}}: {{logs.requirements[key]}}\n </p>\n </ng-container>\n <ng-container *ngIf=\"logs.logs\">\n <p class=\"is-log\" *ngFor=\"let key of logs.logs | keys\">\n {{key.key}}: {{key.value}}\n </p>\n </ng-container>\n <ng-container *ngIf=\"logs.missingLookups?.length\">\n <p class=\"mt-2\">Missing lookups:</p>\n\n <div class=\"table-container data-table-container\">\n <table class=\"table is-fullwidth mb-0\">\n <thead class=\"has-background-black\">\n <tr>\n <th>\n <span class=\"has-text-white\">Filename</span>\n </th>\n <th>\n <span class=\"has-text-white\">Column Title</span>\n </th>\n <th>\n <span class=\"has-text-white\">Row (term.id)</span>\n </th>\n </tr>\n </thead>\n <tbody class=\"has-background-black has-text-white\">\n <tr *ngFor=\"let data of logs.missingLookups\">\n <td>{{data.filename}}</td>\n <td>{{data.column}}</td>\n <td>{{data.termId}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </ng-container>\n</ng-template>\n", styles: [":host{display:block}::ng-deep tr.has-sub-rows td{border-bottom-style:dotted}::ng-deep td he-node-link{width:190px}::ng-deep td .open-node+he-node-link{width:170px}\n"], components: [{ type: i1__namespace.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { type: DataTableComponent, selector: "he-data-table", inputs: ["minHeight", "maxHeight", "nbRows", "small", "height", "width"] }, { type: NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: BlankNodeValueDeltaComponent, selector: "he-blank-node-value-delta", inputs: ["value", "originalValue", "displayType"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11__namespace.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "placement", "container", "editable", "focusFirst", "showHint", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { type: i1__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1__namespace$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2__namespace.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i1__namespace$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i11__namespace.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disablePopover", "popoverClass", "openDelay", "closeDelay", "ngbPopover", "popoverTitle"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }], pipes: { "times": TimesPipe, "default": DefaultPipe, "precision": PrecisionPipe, "keyToLabel": KeyToLabelPipe, "keys": KeysPipe, "pluralize": PluralizePipe, "isArray": IsArrayPipe } });
|
|
5885
|
+
NodeLogsModelsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NodeLogsModelsComponent, selector: "he-node-logs-models", inputs: { nodeType: "nodeType", nodeKey: "nodeKey", includeAllModels: "includeAllModels", logsUrl: "logsUrl", originalValues: "originalValues", recalculatedValues: "recalculatedValues", terms: "terms", logs: "logs", filteredType: "filteredType" }, ngImport: i0__namespace, template: "<div class=\"px-3 pb-3\">\n <div class=\"has-text-right mb-2\" *ngIf=\"!isExternal\">\n <a class=\"is-size-7\" *ngIf=\"logsUrl\" [href]=\"logsUrl\" target=\"_blank\">\n <fa-icon icon=\"external-link-alt\"></fa-icon>\n <span class=\"pl-2\">Open Full Logs</span>\n </a>\n </div>\n\n <he-data-table class=\"mb-1 is-small\" [small]=\"true\" [nbRows]=\"rowsCount\" maxHeight=\"320\">\n <table class=\"table is-narrow is-striped\">\n <thead>\n <tr>\n <th class=\"width-auto\">\n <div class=\"field\">\n <div class=\"control is-expanded has-icons-right\">\n <input class=\"input search-input is-small\"\n [(ngModel)]=\"term\" name=\"term\"\n placeholder=\"Filter by name\"\n [ngbTypeahead]=\"suggestTerm\"\n [focusFirst]=\"false\"\n (change)=\"filterResults()\"\n >\n <a class=\"icon is-small is-right\"\n [class.is-hidden]=\"!term\"\n (click)=\"term = ''; filterResults();\"\n >\n <fa-icon icon=\"times\"></fa-icon>\n </a>\n </div>\n </div>\n </th>\n <th class=\"has-border-right\">Units</th>\n <th>Original</th>\n <th>Recalculated</th>\n <th>Difference</th>\n <th *ngFor=\"let c of methodModelsCount | times; let i = index\">({{i + 1}})</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngIf=\"loading\">\n <td class=\"has-text-centered\" colspan=\"6\">\n <div class=\"has-text-center py-3\">\n <fa-icon icon=\"spinner\" [pulse]=\"true\" size=\"lg\"></fa-icon>\n </div>\n </td>\n </tr>\n <tr *ngIf=\"!loading && blankNodes.length === 0\">\n <td class=\"has-text-centered\" colspan=\"6\">\n <span>No data</span>\n </td>\n </tr>\n <ng-container *ngFor=\"let blankNode of blankNodes; trackBy: trackByBlankNode\">\n <tr [class.has-sub-rows]=\"blankNode.canOpen\">\n <td class=\"width-auto\" [attr.title]=\"blankNode.term.name\">\n <a class=\"is-inline-block is-align-top pr-2 open-node\"\n (click)=\"blankNode.isOpen = !blankNode.isOpen\"\n *ngIf=\"blankNode.canOpen\"\n >\n <fa-icon icon=\"angle-down\" [class.is-hidden]=\"!blankNode.isOpen\"></fa-icon>\n <fa-icon icon=\"angle-right\" [class.is-hidden]=\"blankNode.isOpen\"></fa-icon>\n </a>\n <he-node-link class=\"is-inline-block\" [node]=\"blankNode.term\">\n <span class=\"is-nowrap has-text-ellipsis\">{{blankNode.term.name}}</span>\n </he-node-link>\n </td>\n <td class=\"has-border-right\">\n <span>{{blankNode.term?.units}}</span>\n </td>\n <td>\n <span>{{blankNode.originalValue | precision:3 | default:'-'}}</span>\n </td>\n <td>\n <span *ngIf=\"!blankNode.isOriginal || blankNode.isRecalculated; else notRecalculated\">\n {{blankNode.recalculatedValue | precision:3 | default:'-'}}\n </span>\n </td>\n <td class=\"is-nowrap\">\n <he-blank-node-value-delta *ngIf=\"blankNode.original.length && blankNode.isRecalculated; else noValue\"\n [value]=\"blankNode.recalculatedValue\"\n [originalValue]=\"blankNode.originalValue\"\n ></he-blank-node-value-delta>\n </td>\n <ng-container *ngTemplateOutlet=\"blankNodeModels; context: {blankNode: blankNode}\"></ng-container>\n </tr>\n\n <ng-container *ngIf=\"blankNode.keys?.length\">\n <tr\n *ngFor=\"let subValue of blankNode.keys\"\n [class.is-hidden]=\"!blankNode.isOpen\"\n [class.has-sub-rows]=\"blankNode.subValues?.length\"\n >\n <td class=\"width-auto has-text-left\">\n <span class=\"is-inline-block is-align-top pl-3 pr-1 field-node\">Field:</span>\n\n <a class=\"is-inline-block\" *ngIf=\"blankNode.type\"\n [href]=\"baseUrl + '/schema/' + blankNode.type + '#' + subValue.key\" target=\"_blank\" [title]=\"subValue.key\"\n >\n <span class=\"is-nowrap has-text-ellipsis\">{{subValue.key}}</span>\n </a>\n <span class=\"is-inline-block is-align-top\" *ngIf=\"!blankNode.type\">{{subValue.key}}</span>\n </td>\n <td class=\"has-border-right\"></td>\n <td>\n <span *ngIf=\"subValue.originalValue !== null; else noValue\">{{subValue.originalValue | precision:3 | default:'-'}}</span>\n </td>\n <td>\n <span *ngIf=\"subValue.isRecalculated; else notRecalculated\">\n {{subValue.recalculatedValue | precision:3 | default:'-'}}\n </span>\n </td>\n <td>-</td>\n <td class=\"blank-node-index-key\">\n <ng-container *ngTemplateOutlet=\"blankNodeModel; context: {blankNode:blankNode, methodId:subValue.key, logs:getLogs(blankNode, subValue.key)}\"></ng-container>\n </td>\n <td *ngIf=\"methodModelsCount > 1\" [attr.colspan]=\"methodModelsCount - 1\"></td>\n </tr>\n </ng-container>\n\n <tr\n *ngFor=\"let subValue of blankNode.subValues\"\n [class.is-hidden]=\"!blankNode.isOpen\"\n >\n <td class=\"width-auto has-text-left\">\n <span class=\"is-inline-block is-align-top pl-3\">{{subValue.key | keyToLabel}}</span>\n\n <ng-container *ngIf=\"subValue.id\">\n <span class=\"is-inline-block\" class=\"is-inline-block is-align-top pr-1\">:</span>\n\n <ng-container [ngSwitch]=\"subValue.key\">\n <span class=\"is-inline-block\" *ngSwitchCase=\"'backgroundData'\">{{subValue.id | keyToLabel}}</span>\n <he-node-link *ngSwitchDefault class=\"is-block pl-4\" [node]=\"{'@type':'Term','@id':subValue.id}\" [attr.title]=\"subValue.id | keyToLabel\">\n <span class=\"is-nowrap has-text-ellipsis\">{{subValue.id | keyToLabel}}</span>\n </he-node-link>\n </ng-container>\n </ng-container>\n </td>\n <td class=\"has-border-right\"></td>\n <td>\n <span *ngIf=\"subValue.originalValue !== null; else noValue\">{{subValue.originalValue | precision:3 | default:'-'}}</span>\n </td>\n <td>\n <span *ngIf=\"subValue.isRecalculated; else notRecalculated\">\n {{subValue.recalculatedValue | precision:3 | default:'-'}}\n </span>\n </td>\n <td>-</td>\n <ng-container *ngTemplateOutlet=\"blankNodeModels; context: {blankNode: blankNode, subValue: subValue}\"></ng-container>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </he-data-table>\n\n <div class=\"is-size-7 is-italic\">\n <div class=\"columns is-variable is-1 my-0\">\n <div class=\"column is-narrow\">\n <p>\n <a class=\"is-inline-block pr-2\"\n (click)=\"showLegend = !showLegend\"\n >\n <fa-icon icon=\"angle-down\" [class.is-hidden]=\"!showLegend\"></fa-icon>\n <fa-icon icon=\"angle-right\" [class.is-hidden]=\"showLegend\"></fa-icon>\n </a>\n <span class=\"is-inline-block\">Legend:</span>\n </p>\n <ul class=\"content pl-2\" [class.is-hidden]=\"!showLegend\">\n <li\n class=\"has-text-{{logColor[status.value]}}\"\n *ngFor=\"let status of LogStatus | keys\"\n >\n <fa-icon [icon]=\"logIcon[status.value]\"></fa-icon>\n <span class=\"pl-1\">{{status.value}}</span>\n </li>\n </ul>\n </div>\n <div class=\"column has-text-right\" *ngIf=\"filteredType\">\n <label class=\"is-inline-block checkbox\">\n <input type=\"checkbox\" class=\"selector\"\n [(ngModel)]=\"onlyRequired\"\n (change)=\"filterResults()\"\n [disabled]=\"!!term\"\n >\n <span class=\"ml-2\">Show only relevant {{filteredType | pluralize}}</span>\n </label>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #blankNodeModels let-blankNode=\"blankNode\" let-subValue=\"subValue\">\n <td class=\"blank-node-index-{{i}}\" *ngFor=\"let c of methodModelsCount | times; let i = index\">\n <ng-container *ngIf=\"getMethodIdAt(blankNode, i, subValue); let methodId; else noValue\">\n <ng-template #modelSerie>\n <ng-container *ngTemplateOutlet=\"blankNodeModel; context: {blankNode:blankNode, methodId:methodId, subValue:subValue, logs:getLogs(blankNode, methodId, subValue)}\"></ng-container>\n </ng-template>\n <div *ngIf=\"methodId | isArray; else modelSerie\">\n <p *ngFor=\"let value of methodId\">\n <ng-container *ngTemplateOutlet=\"blankNodeModel; context: {blankNode:blankNode, methodId:value, subValue:subValue, logs:getLogs(blankNode, methodId, subValue)}\"></ng-container>\n </p>\n </div>\n </ng-container>\n </td>\n</ng-template>\n\n<ng-template #blankNodeModel let-blankNode=\"blankNode\" let-methodId=\"methodId\" let-subValue=\"subValue\" let-logs=\"logs\">\n <span\n [class.trigger-popover]=\"hasLogDetails(blankNode, methodId, subValue)\"\n [ngbPopover]=\"logDetails\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"hasLogDetails(blankNode, methodId, subValue) ? togglePopover(p, { logs }) : null\"\n >\n <span class=\"is-capitalized\">{{methodName(blankNode, methodId, subValue)}}</span>\n <span class=\"pl-1\" *ngIf=\"hasLog(logs) && logs?.methodTier\">[{{logs.methodTier}}]</span>\n <span class=\"pl-1 has-text-{{logColor[logStatus(blankNode, methodId, subValue)]}}\">\n <fa-icon [icon]=\"logIcon[logStatus(blankNode, methodId, subValue)]\"></fa-icon>\n </span>\n </span>\n</ng-template>\n\n<ng-template #noValue>-</ng-template>\n\n<ng-template #notRecalculated>not recalculated</ng-template>\n\n<ng-template #logDetails let-logs=\"logs\">\n <ng-container *ngIf=\"logs.requirements\">\n <p class=\"is-requirement\" *ngFor=\"let key of requirementKeys(logs.requirements)\">\n {{key}}: {{logs.requirements[key]}}\n </p>\n </ng-container>\n <ng-container *ngIf=\"logs.logs\">\n <p class=\"is-log\" *ngFor=\"let key of logs.logs | keys\">\n {{key.key}}: {{key.value}}\n </p>\n </ng-container>\n <ng-container *ngIf=\"logs.missingLookups?.length\">\n <p class=\"mt-2\">Missing lookups:</p>\n\n <div class=\"table-container data-table-container\">\n <table class=\"table is-fullwidth mb-0\">\n <thead class=\"has-background-black\">\n <tr>\n <th>\n <span class=\"has-text-white\">Filename</span>\n </th>\n <th>\n <span class=\"has-text-white\">Column Title</span>\n </th>\n <th>\n <span class=\"has-text-white\">Row (term.id)</span>\n </th>\n </tr>\n </thead>\n <tbody class=\"has-background-black has-text-white\">\n <tr *ngFor=\"let data of logs.missingLookups\">\n <td>{{data.filename}}</td>\n <td>{{data.column}}</td>\n <td>{{data.termId}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </ng-container>\n</ng-template>\n", styles: [":host{display:block}::ng-deep tr.has-sub-rows td{border-bottom-style:dotted}::ng-deep td he-node-link{width:190px}::ng-deep td .open-node+he-node-link{width:170px}\n"], components: [{ type: i1__namespace.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { type: DataTableComponent, selector: "he-data-table", inputs: ["minHeight", "maxHeight", "nbRows", "small", "height", "width"] }, { type: NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: BlankNodeValueDeltaComponent, selector: "he-blank-node-value-delta", inputs: ["value", "originalValue", "displayType"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11__namespace.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "placement", "container", "editable", "focusFirst", "showHint", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { type: i1__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1__namespace$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2__namespace.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i1__namespace$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i11__namespace.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disablePopover", "popoverClass", "openDelay", "closeDelay", "ngbPopover", "popoverTitle"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }], pipes: { "times": TimesPipe, "default": DefaultPipe, "precision": PrecisionPipe, "keyToLabel": KeyToLabelPipe, "keys": KeysPipe, "pluralize": PluralizePipe, "isArray": IsArrayPipe } });
|
|
5874
5886
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NodeLogsModelsComponent, decorators: [{
|
|
5875
5887
|
type: i0.Component,
|
|
5876
5888
|
args: [{
|
|
@@ -5941,7 +5953,7 @@
|
|
|
5941
5953
|
'methodModelDescription', 'description',
|
|
5942
5954
|
'primary', 'emissionDuration', 'observations', 'statsDefinition',
|
|
5943
5955
|
'term', 'source', 'variety', 'reliability', 'price', 'currency', 'cost', 'revenue', 'economicValueShare',
|
|
5944
|
-
'impactAssessment'
|
|
5956
|
+
'impactAssessment', 'properties'
|
|
5945
5957
|
];
|
|
5946
5958
|
var tableKeys = [
|
|
5947
5959
|
'inputs', 'transformation', 'value', 'dates', 'methodModel', 'methodTier', 'statsDefinition'
|
|
@@ -7245,7 +7257,8 @@
|
|
|
7245
7257
|
},
|
|
7246
7258
|
_g['the measurement provided might be in error'] = function (_g, errorCount) {
|
|
7247
7259
|
var params = _g.params;
|
|
7248
|
-
|
|
7260
|
+
var _a;
|
|
7261
|
+
return "The expected value for " + code(params === null || params === void 0 ? void 0 : params.term.name) + "\n " + (((_a = params === null || params === void 0 ? void 0 : params.model) === null || _a === void 0 ? void 0 : _a.name) ? "using " + modelLink(params === null || params === void 0 ? void 0 : params.term, params === null || params === void 0 ? void 0 : params.model) + " " : '') + "\n from the data provided in the upload is " + (errorCount === 1 ?
|
|
7249
7262
|
code(utils.toPrecision(params === null || params === void 0 ? void 0 : params.expected, 3)) + ", but the value in the upload is " + code(utils.toPrecision(params === null || params === void 0 ? void 0 : params.current, 3)) + ".\n " + ((params === null || params === void 0 ? void 0 : params.threshold) ? "Our threshold is \u00B1" + threshold(params === null || params === void 0 ? void 0 : params.threshold) + "." : '') :
|
|
7250
7263
|
"not consistent with the model result.");
|
|
7251
7264
|
},
|
|
@@ -7257,14 +7270,14 @@
|
|
|
7257
7270
|
var _a, _b;
|
|
7258
7271
|
return (errorCount === 1 ?
|
|
7259
7272
|
"You have stated that " + code((_a = params === null || params === void 0 ? void 0 : params.term) === null || _a === void 0 ? void 0 : _a.name) + " was created by the following Inputs " + ((_b = params === null || params === void 0 ? void 0 : params.expected) === null || _b === void 0 ? void 0 : _b.map(function (e) { return code(e.name); }).join(' , ')) :
|
|
7260
|
-
'You have stated some Emissions were created by some Inputs
|
|
7273
|
+
'You have stated some Emissions were created by some Inputs') + ".\n However, these Inputs do not exist in the Cycle.\n Please add these Inputs, even if you do not have a value for them.";
|
|
7261
7274
|
},
|
|
7262
7275
|
_g['must add the linked transformations to the cycle'] = function (_g, errorCount) {
|
|
7263
7276
|
var level = _g.level, params = _g.params;
|
|
7264
7277
|
var _a, _b;
|
|
7265
7278
|
return (errorCount === 1 ?
|
|
7266
|
-
"You have specified that" + code((_a = params === null || params === void 0 ? void 0 : params.term) === null || _a === void 0 ? void 0 : _a.name) + " was created during a Transformation with the Term name " + code((_b = params === null || params === void 0 ? void 0 : params.expected) === null || _b === void 0 ? void 0 : _b.name)
|
|
7267
|
-
'You have stated some Emissions were created by some Transformations
|
|
7279
|
+
"You have specified that" + code((_a = params === null || params === void 0 ? void 0 : params.term) === null || _a === void 0 ? void 0 : _a.name) + " was created during a Transformation with the Term name " + code((_b = params === null || params === void 0 ? void 0 : params.expected) === null || _b === void 0 ? void 0 : _b.name) :
|
|
7280
|
+
'You have stated some Emissions were created by some Transformations') + ".\n However, we cannot find a Transformation within the Cycle with this Term name.\n " + (level === 'error' ?
|
|
7268
7281
|
'Please check the Terms used in the Emissions and/or the Transformations.' :
|
|
7269
7282
|
'You may want to add this Transformation.');
|
|
7270
7283
|
},
|
|
@@ -7323,6 +7336,12 @@
|
|
|
7323
7336
|
return "We recommend adding a Source to all data items.\n This can be done by adding the " + code(params === null || params === void 0 ? void 0 : params.current) + " field.\n Sources can also be specified for each data item (i.e., each Input, Emission, Product, Practice, Measurement, or Infrastructure).";
|
|
7324
7337
|
},
|
|
7325
7338
|
_g['cover crop cycle contains non cover crop product'] = function () { return "You have specified that this crop is a cover crop using a Practice.\n A cover crop is defined as \"a crop which is left in the field without any fraction harvested by the end of the Cycle\".\n The Products of this Cycle are incompatible with this crop being a cover crop.\n Please check the Products or the Practices."; },
|
|
7339
|
+
_g['should be included in the cycle products'] = function (_g, errorCount) {
|
|
7340
|
+
var params = _g.params;
|
|
7341
|
+
return (errorCount === 1 ?
|
|
7342
|
+
"The Product " + code(params.product.name) + " does not exist in the Cycle with id " + code(params.node.id) :
|
|
7343
|
+
'The ImpactAssessment Product does not exist in the linked Cycle') + ".\n Please add the Product in the Cycle or remove the link with the Cycle.";
|
|
7344
|
+
},
|
|
7326
7345
|
_g);
|
|
7327
7346
|
var formatCustomErrorMessage = function (message, error, errorCount) {
|
|
7328
7347
|
if (errorCount === void 0) { errorCount = 1; }
|
|
@@ -7610,6 +7629,7 @@
|
|
|
7610
7629
|
propertyValueType(Object.assign(Object.assign({}, schema), { type: [schema.items.type] })) :
|
|
7611
7630
|
schema.type) : typeof value); };
|
|
7612
7631
|
var propertyTypeParseValue = {
|
|
7632
|
+
undefined: function () { return undefined; },
|
|
7613
7633
|
object: function (val) { return safeJSONParse(val); },
|
|
7614
7634
|
array: function (val, schema) {
|
|
7615
7635
|
var items = schema.items;
|
|
@@ -9047,7 +9067,7 @@
|
|
|
9047
9067
|
var parseLog = function (data) { return ({
|
|
9048
9068
|
modelId: data.model,
|
|
9049
9069
|
impactTermId: data['key/term'] || data.term || data.indicator,
|
|
9050
|
-
|
|
9070
|
+
blankNodeTermId: data.node,
|
|
9051
9071
|
coefficient: +data.coefficient,
|
|
9052
9072
|
value: +data.value * +data.coefficient
|
|
9053
9073
|
}); };
|
|
@@ -9069,10 +9089,10 @@
|
|
|
9069
9089
|
], __read(logs
|
|
9070
9090
|
.sort(function (a, b) { return a.impactTermId.localeCompare(b.impactTermId); })
|
|
9071
9091
|
.flatMap(function (_d) {
|
|
9072
|
-
var impactTermId = _d.impactTermId, impactTermUnits = _d.impactTermUnits, modelId = _d.modelId,
|
|
9092
|
+
var impactTermId = _d.impactTermId, impactTermUnits = _d.impactTermUnits, modelId = _d.modelId, blankNodeTermId = _d.blankNodeTermId, value = _d.value, inputs = _d.inputs;
|
|
9073
9093
|
return __spreadArray([
|
|
9074
|
-
[impactTermId, impactTermUnits, modelId,
|
|
9075
|
-
], __read((inputs.map(function (v) { return [impactTermId, impactTermUnits, modelId,
|
|
9094
|
+
[impactTermId, impactTermUnits, modelId, blankNodeTermId, value, '', '']
|
|
9095
|
+
], __read((inputs.map(function (v) { return [impactTermId, impactTermUnits, modelId, blankNodeTermId, '', v.name, v.value]; }))));
|
|
9076
9096
|
})
|
|
9077
9097
|
.map(function (v) {
|
|
9078
9098
|
var _a;
|
|
@@ -9091,19 +9111,25 @@
|
|
|
9091
9111
|
this.indicators = [];
|
|
9092
9112
|
this.loading = true;
|
|
9093
9113
|
this.terms = [];
|
|
9114
|
+
this.methods = [];
|
|
9094
9115
|
this.noData = false;
|
|
9095
9116
|
}
|
|
9096
9117
|
ImpactAssessmentsIndicatorBreakdownChartComponent.prototype.ngOnInit = function () {
|
|
9097
9118
|
return __awaiter(this, void 0, void 0, function () {
|
|
9098
|
-
var _d, results;
|
|
9119
|
+
var impacts, _d, results;
|
|
9099
9120
|
var _this = this;
|
|
9100
9121
|
return __generator(this, function (_e) {
|
|
9101
9122
|
switch (_e.label) {
|
|
9102
9123
|
case 0:
|
|
9103
|
-
this.terms = this.indicators.map(function (_d) {
|
|
9124
|
+
this.terms = utils.unique(this.indicators.map(function (_d) {
|
|
9104
9125
|
var term = _d.term;
|
|
9105
9126
|
return term;
|
|
9106
|
-
});
|
|
9127
|
+
}).filter(Boolean));
|
|
9128
|
+
this.methods = utils.unique(this.indicators.map(function (_d) {
|
|
9129
|
+
var methodModel = _d.methodModel;
|
|
9130
|
+
return methodModel;
|
|
9131
|
+
}).filter(Boolean));
|
|
9132
|
+
impacts = __spreadArray(__spreadArray([], __read(this.impactAssessment.impacts || [])), __read(this.impactAssessment.endpoints || []));
|
|
9107
9133
|
_d = this;
|
|
9108
9134
|
return [4 /*yield*/, rxjs.of(Object.assign(Object.assign({}, this.impactAssessment), { dataState: api.DataState.recalculated })).pipe(operators.mergeMap(function (node) { return _this.nodeService.getLog(node); }), operators.map(function (value) { return value ? parseLines(value) : []; }), operators.mergeAll(), operators.filter(function (_d) {
|
|
9109
9135
|
var data = _d.data;
|
|
@@ -9111,20 +9137,19 @@
|
|
|
9111
9137
|
}), operators.map(function (_d) {
|
|
9112
9138
|
var data = _d.data;
|
|
9113
9139
|
return parseMessage(data.message);
|
|
9114
|
-
}), operators.filter(function (message) { return 'node' in message; }), operators.map(parseLog), operators.filter(function (log) { return !!log.impactTermId && !!log.
|
|
9115
|
-
var _a
|
|
9140
|
+
}), operators.filter(function (message) { return 'node' in message; }), operators.map(parseLog), operators.filter(function (log) { return !!log.impactTermId && !!log.blankNodeTermId && !isNaN(log.value) && log.value > 0; }), operators.groupBy(function (log) { return [log.impactTermId, log.blankNodeTermId, log.modelId].join('/'); }), operators.mergeMap(function (group) { return group.pipe(operators.toArray()); }), operators.map(function (values) {
|
|
9141
|
+
var _a;
|
|
9116
9142
|
var log = values[0];
|
|
9117
9143
|
var total = values.reduce(function (prev, curr) { return prev + curr.value; }, 0);
|
|
9118
|
-
var
|
|
9119
|
-
.filter(function (v) { return v.term['@id'] === log.
|
|
9120
|
-
var inputs =
|
|
9144
|
+
var blankNodes = (__spreadArray(__spreadArray([], __read(_this.impactAssessment.emissionsResourceUse || [])), __read(_this.impactAssessment.impacts || [])))
|
|
9145
|
+
.filter(function (v) { return v.term['@id'] === log.blankNodeTermId; });
|
|
9146
|
+
var inputs = blankNodes
|
|
9121
9147
|
.filter(function (v) { var _a; return (_a = v.inputs) === null || _a === void 0 ? void 0 : _a.length; })
|
|
9122
9148
|
.map(function (v) { return ({ name: v.inputs.map(function (i) { return i['@id']; }).join(';'), value: v.value * log.coefficient }); });
|
|
9123
9149
|
var inputsValue = inputs.reduce(function (prev, curr) { return prev + curr.value; }, 0);
|
|
9124
|
-
var
|
|
9125
|
-
.filter(function (v) { return v.term['@id'] === log.impactTermId; });
|
|
9150
|
+
var impact = impacts.find(function (v) { return v.term['@id'] === log.impactTermId; });
|
|
9126
9151
|
// logs might exist but impact was not added => skip logs
|
|
9127
|
-
return
|
|
9152
|
+
return impact ? Object.assign(Object.assign({}, log), { impactTermUnits: (_a = impact.term) === null || _a === void 0 ? void 0 : _a.units, value: total, inputs: inputs, inputsValue: inputsValue }) : null;
|
|
9128
9153
|
}), operators.filter(function (log) { return !!log; }), operators.toArray()).toPromise()];
|
|
9129
9154
|
case 1:
|
|
9130
9155
|
_d.logs = (_e.sent());
|
|
@@ -9165,16 +9190,16 @@
|
|
|
9165
9190
|
var _a, _b, _c;
|
|
9166
9191
|
var logs = this.logs
|
|
9167
9192
|
.filter(function (_d) {
|
|
9168
|
-
var impactTermId = _d.impactTermId;
|
|
9169
|
-
return impactTermId === _this.selectedTerm['@id'];
|
|
9193
|
+
var impactTermId = _d.impactTermId, modelId = _d.modelId;
|
|
9194
|
+
return impactTermId === _this.selectedTerm['@id'] && (!_this.selectedMethod || modelId === _this.selectedMethod['@id']);
|
|
9170
9195
|
})
|
|
9171
9196
|
.sort(function (a, b) { return b.value - a.value; });
|
|
9172
9197
|
this.noData = logs.length === 0;
|
|
9173
9198
|
var total = logs.reduce(function (prev, curr) { return prev + curr.value; }, 0);
|
|
9174
9199
|
var labels = logs.map(function (_d) {
|
|
9175
|
-
var
|
|
9200
|
+
var blankNodeTermId = _d.blankNodeTermId;
|
|
9176
9201
|
var _a;
|
|
9177
|
-
return ((_a = _this.emissions.find(function (v) { return v['@id'] ===
|
|
9202
|
+
return ((_a = _this.emissions.find(function (v) { return v['@id'] === blankNodeTermId; })) === null || _a === void 0 ? void 0 : _a.name) || blankNodeTermId;
|
|
9178
9203
|
});
|
|
9179
9204
|
// display the breakdown by input
|
|
9180
9205
|
// const inputs = logs.flatMap(v => v.inputs.map(i => i.name));
|
|
@@ -9257,7 +9282,7 @@
|
|
|
9257
9282
|
return ImpactAssessmentsIndicatorBreakdownChartComponent;
|
|
9258
9283
|
}());
|
|
9259
9284
|
ImpactAssessmentsIndicatorBreakdownChartComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ImpactAssessmentsIndicatorBreakdownChartComponent, deps: [{ token: i0__namespace.NgZone }, { token: i1__namespace$2.DomSanitizer }, { token: HeSearchService }, { token: HeNodeService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
9260
|
-
ImpactAssessmentsIndicatorBreakdownChartComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ImpactAssessmentsIndicatorBreakdownChartComponent, selector: "he-impact-assessments-indicator-breakdown-chart", inputs: { impactAssessment: "impactAssessment", indicators: "indicators" }, viewQueries: [{ propertyName: "chartRef", first: true, predicate: ["chart"], descendants: true }], ngImport: i0__namespace, template: "<div class=\"p-3\" [class.is-hidden]=\"loading || !terms?.length\">\n <div class=\"columns\">\n <div class=\"column\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <span class=\"button is-small is-static\">Select an Indicator</span>\n </div>\n <div class=\"control is-expanded\">\n <div class=\"select is-fullwidth is-small\">\n <select (change)=\"updateChart()\" [(ngModel)]=\"selectedTerm\" id=\"selectedTerm\">\n <option *ngFor=\"let term of terms\" [ngValue]=\"term\">{{term.name}} ({{term.units}})</option>\n </select>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <a class=\"button is-dark is-outlined is-small\" [href]=\"csvContent\" [download]=\"id + '-logs.csv'\">\n <fa-icon icon=\"download\"></fa-icon>\n <span class=\"pl-2\">Download All (CSV)</span>\n </a>\n </div>\n </div>\n\n <div class=\"mt-1\">\n <p *ngIf=\"noData\" class=\"has-text-centered\">No breakdown available for {{selectedTerm?.name}}
|
|
9285
|
+
ImpactAssessmentsIndicatorBreakdownChartComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ImpactAssessmentsIndicatorBreakdownChartComponent, selector: "he-impact-assessments-indicator-breakdown-chart", inputs: { impactAssessment: "impactAssessment", indicators: "indicators" }, viewQueries: [{ propertyName: "chartRef", first: true, predicate: ["chart"], descendants: true }], ngImport: i0__namespace, template: "<div class=\"p-3\" [class.is-hidden]=\"loading || !terms?.length\">\n <div class=\"columns\">\n <div class=\"column\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <span class=\"button is-small is-static\">Select an Indicator</span>\n </div>\n <div class=\"control is-expanded\">\n <div class=\"select is-fullwidth is-small\">\n <select (change)=\"updateChart()\" [(ngModel)]=\"selectedTerm\" id=\"selectedTerm\">\n <option *ngFor=\"let term of terms\" [ngValue]=\"term\">{{term.name}} ({{term.units}})</option>\n </select>\n </div>\n </div>\n <div class=\"control is-expanded\" *ngIf=\"methods?.length\">\n <div class=\"select is-fullwidth is-small\">\n <select (change)=\"updateChart()\" [(ngModel)]=\"selectedMethod\" id=\"selectedMethod\">\n <option [ngValue]=\"undefined\">Filter Model</option>\n <option *ngFor=\"let term of methods\" [ngValue]=\"term\">{{term.name}}</option>\n </select>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <a class=\"button is-dark is-outlined is-small\" [href]=\"csvContent\" [download]=\"id + '-logs.csv'\">\n <fa-icon icon=\"download\"></fa-icon>\n <span class=\"pl-2\">Download All (CSV)</span>\n </a>\n </div>\n </div>\n\n <p class=\"is-size-7\" *ngIf=\"!selectedMethod\">\n <i>Selecting a Model is recommended to avoid duplicated entries.</i>\n </p>\n\n <div class=\"mt-1\">\n <p *ngIf=\"noData\" class=\"has-text-centered\">\n <span>No breakdown available for {{selectedTerm?.name}}</span>\n <span class=\"pl-1\" *ngIf=\"selectedMethod\">({{selectedMethod.name}})</span>\n <span>.</span>\n </p>\n <div class=\"chart-container h-100\">\n <canvas #chart></canvas>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"loading\">\n <div class=\"has-text-center py-3\">\n <fa-icon icon=\"spinner\" [pulse]=\"true\" size=\"lg\"></fa-icon>\n </div>\n</ng-container>\n", styles: [":host{display:block;overflow:visible}.chart-container{height:400px;position:relative}\n"], components: [{ type: i1__namespace.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }], directives: [{ type: i1__namespace$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1__namespace$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1__namespace$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
9261
9286
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ImpactAssessmentsIndicatorBreakdownChartComponent, decorators: [{
|
|
9262
9287
|
type: i0.Component,
|
|
9263
9288
|
args: [{
|
|
@@ -9406,11 +9431,11 @@
|
|
|
9406
9431
|
this.loading = true;
|
|
9407
9432
|
this.NodeType = schema.NodeType;
|
|
9408
9433
|
this.models = [];
|
|
9409
|
-
this.
|
|
9434
|
+
this.terms = [];
|
|
9410
9435
|
}
|
|
9411
9436
|
ImpactAssessmentsProductsLogsComponent.prototype.ngOnInit = function () {
|
|
9412
9437
|
return __awaiter(this, void 0, void 0, function () {
|
|
9413
|
-
var _a,
|
|
9438
|
+
var _a, terms, showAllEmissions;
|
|
9414
9439
|
return __generator(this, function (_b) {
|
|
9415
9440
|
switch (_b.label) {
|
|
9416
9441
|
case 0:
|
|
@@ -9433,8 +9458,9 @@
|
|
|
9433
9458
|
}
|
|
9434
9459
|
})];
|
|
9435
9460
|
case 2:
|
|
9436
|
-
|
|
9437
|
-
this.
|
|
9461
|
+
terms = (_b.sent()).results;
|
|
9462
|
+
showAllEmissions = this.key !== 'emissionsResourceUse' || (this.filterTermTypes || []).length === 1;
|
|
9463
|
+
this.terms = showAllEmissions ? terms : [];
|
|
9438
9464
|
this.loading = false;
|
|
9439
9465
|
return [2 /*return*/];
|
|
9440
9466
|
}
|
|
@@ -9465,7 +9491,7 @@
|
|
|
9465
9491
|
return ImpactAssessmentsProductsLogsComponent;
|
|
9466
9492
|
}());
|
|
9467
9493
|
ImpactAssessmentsProductsLogsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ImpactAssessmentsProductsLogsComponent, deps: [{ token: HeSearchService }, { token: HeNodeService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
9468
|
-
ImpactAssessmentsProductsLogsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ImpactAssessmentsProductsLogsComponent, selector: "he-impact-assessments-products-logs", inputs: { impactAssessment: "impactAssessment", key: "key", filterTermTypes: "filterTermTypes", originalValues: "originalValues", recalculatedValues: "recalculatedValues" }, ngImport: i0__namespace, template: "<he-node-logs-models *ngIf=\"!loading; else loader\"\n [logsUrl]=\"logsUrl\"\n [nodeType]=\"NodeType.ImpactAssessment\"\n [nodeKey]=\"key\"\n [originalValues]=\"originalValues\"\n [recalculatedValues]=\"recalculatedValues\"\n [terms]=\"
|
|
9494
|
+
ImpactAssessmentsProductsLogsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ImpactAssessmentsProductsLogsComponent, selector: "he-impact-assessments-products-logs", inputs: { impactAssessment: "impactAssessment", key: "key", filterTermTypes: "filterTermTypes", originalValues: "originalValues", recalculatedValues: "recalculatedValues" }, ngImport: i0__namespace, template: "<he-node-logs-models *ngIf=\"!loading; else loader\"\n [logsUrl]=\"logsUrl\"\n [nodeType]=\"NodeType.ImpactAssessment\"\n [nodeKey]=\"key\"\n [originalValues]=\"originalValues\"\n [recalculatedValues]=\"recalculatedValues\"\n [terms]=\"terms\"\n [logs]=\"logs\"\n [filteredType]=\"filteredType\"\n [includeAllModels]=\"includeAllModels\"\n></he-node-logs-models>\n\n<ng-template #loader>\n <div class=\"has-text-center py-3\">\n <fa-icon icon=\"spinner\" [pulse]=\"true\" size=\"lg\"></fa-icon>\n </div>\n</ng-template>\n", styles: [""], components: [{ type: NodeLogsModelsComponent, selector: "he-node-logs-models", inputs: ["nodeType", "nodeKey", "includeAllModels", "logsUrl", "originalValues", "recalculatedValues", "terms", "logs", "filteredType"] }, { type: i1__namespace.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }], directives: [{ type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
9469
9495
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ImpactAssessmentsProductsLogsComponent, decorators: [{
|
|
9470
9496
|
type: i0.Component,
|
|
9471
9497
|
args: [{
|
|
@@ -9616,7 +9642,7 @@
|
|
|
9616
9642
|
};
|
|
9617
9643
|
Object.defineProperty(ImpactAssessmentsProductsComponent.prototype, "enableBreakdown", {
|
|
9618
9644
|
get: function () {
|
|
9619
|
-
return !this.isOriginal && this.impactAssessments.length === 1 && this.key
|
|
9645
|
+
return !this.isOriginal && this.impactAssessments.length === 1 && this.key !== 'emissionsResourceUse';
|
|
9620
9646
|
},
|
|
9621
9647
|
enumerable: false,
|
|
9622
9648
|
configurable: true
|
|
@@ -9878,6 +9904,7 @@
|
|
|
9878
9904
|
exports.filterError = filterError;
|
|
9879
9905
|
exports.filterParams = filterParams;
|
|
9880
9906
|
exports.findConfigModels = findConfigModels;
|
|
9907
|
+
exports.findModels = findModels;
|
|
9881
9908
|
exports.findProperty = findProperty;
|
|
9882
9909
|
exports.findPropertyById = findPropertyById;
|
|
9883
9910
|
exports.formatCustomErrorMessage = formatCustomErrorMessage;
|