@hestia-earth/ui-components 0.5.2 → 0.5.3

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.
@@ -1437,7 +1437,8 @@
1437
1437
 
1438
1438
  var HE_CALCULATIONS_BASE_URL = new i0.InjectionToken('HE_CALCULATIONS_BASE_URL');
1439
1439
  var HE_ORCHESTRATOR_BASE_URL = new i0.InjectionToken('HE_ORCHESTRATOR_BASE_URL');
1440
- var engineGitUrl = function () { return gitHome + "/hestia-engine-models/-/blob/" + gitBranch(); };
1440
+ var engineGitBaseUrl = function () { return gitHome + "/hestia-engine-models"; };
1441
+ var engineGitUrl = function () { return engineGitBaseUrl() + "/-/blob/" + gitBranch(); };
1441
1442
  var engineRawUrl = function () { return gitRawBaseUrl + "/hestia-engine-models/-/raw/" + gitBranch(); };
1442
1443
  var findModels = function (models, termId) { return models.filter(function (_b) {
1443
1444
  var term = _b.term;
@@ -1502,16 +1503,11 @@
1502
1503
  this.init();
1503
1504
  }
1504
1505
  HeEngineService.prototype.init = function () {
1505
- return __awaiter(this, void 0, void 0, function () {
1506
- return __generator(this, function (_b) {
1507
- switch (_b.label) {
1508
- case 0: return [4 /*yield*/, this.loadModels().toPromise()];
1509
- case 1:
1510
- _b.sent();
1511
- return [2 /*return*/];
1512
- }
1513
- });
1514
- });
1506
+ this.latestVersion$ = this.http.get(engineRawUrl() + "/package.json").pipe(operators.map(function (_b) {
1507
+ var version = _b.version;
1508
+ return version;
1509
+ }));
1510
+ return this.loadModels().toPromise();
1515
1511
  };
1516
1512
  HeEngineService.prototype.loadModels = function () {
1517
1513
  var _this = this;
@@ -1550,6 +1546,9 @@
1550
1546
  HeEngineService.prototype.model = function (model) {
1551
1547
  return this.model$(model).pipe(operators.take(1)).toPromise();
1552
1548
  };
1549
+ HeEngineService.prototype.latestVersion = function () {
1550
+ return this.latestVersion$.pipe(operators.take(1)).toPromise();
1551
+ };
1553
1552
  HeEngineService.prototype.listModels = function (params) {
1554
1553
  return this.http.get(this._calculationsBaseUrl + "/models", {
1555
1554
  params: filterParams(params)
@@ -1939,10 +1938,11 @@
1939
1938
 
1940
1939
  var valueLink = function (value) { return schema.isExpandable(value) && value['@id'] ? [baseUrl(), value['@type'].toLowerCase(), value['@id']].join('/') : null; };
1941
1940
  var valueLinkRef = function (value, href) { return href ? "<a href=\"" + href + "\">" + (value.name || value['@id']) + "</a>" : null; };
1941
+ var valueValue = function (value) { return Array.isArray(value) ? value.map(valueValue).join(', ') : utils.toPrecision(value); };
1942
1942
  var stringMapper = {
1943
1943
  undefined: function () { return ''; },
1944
1944
  blankNode: function (value) { return 'term' in value
1945
- ? "" + valueLinkRef(value.term, valueLink(value.term)) + ('value' in value ? ": " + value.value : '')
1945
+ ? "" + valueLinkRef(value.term, valueLink(value.term)) + ('value' in value ? ": " + valueValue(value.value) : '')
1946
1946
  : valueLinkRef(value, valueLink(value)) || value.name || value['@id']; },
1947
1947
  object: function (value) { return Array.isArray(value)
1948
1948
  ? value.map(toString).join(', ')
@@ -5734,7 +5734,7 @@
5734
5734
  prev[uniqueKey] = {
5735
5735
  id: id,
5736
5736
  key: key,
5737
- configModels: __spreadArray(__spreadArray([], __read(((prev[uniqueKey] || {}).configModels || []))), __read((configModels || [])))
5737
+ configModels: utils.unique(__spreadArray(__spreadArray([], __read(((prev[uniqueKey] || {}).configModels || []))), __read((configModels || []))))
5738
5738
  };
5739
5739
  return prev;
5740
5740
  }, {})); };
@@ -5890,17 +5890,27 @@
5890
5890
  .filter(function (v) { return v.configModels.length > 0; })
5891
5891
  .map(dataWithConfigModelLogs(logs));
5892
5892
  };
5893
+ var isModelForInputProduct = function (type, key) { return [
5894
+ key !== 'hestiaAggregatedData',
5895
+ !key.includes('/input/') || type === schema.SchemaType.Input,
5896
+ !key.includes('/product/') || type === schema.SchemaType.Product,
5897
+ ].every(Boolean); };
5893
5898
  var isBackgroundNoInput = function (logs) { return logs.methodTier === schema.EmissionMethodTier.background && !logs.input; };
5894
- var isModelLog = function (logs) { return [
5895
- !isBackgroundNoInput(logs),
5896
- !logs.isKey,
5897
- !logs.input,
5898
- !logs.property
5899
- ].every(Boolean) && [
5900
- 'shouldRun' in logs,
5901
- 'shouldRunOrchestrator' in logs,
5902
- 'runRequired' in logs
5903
- ].some(Boolean); };
5899
+ var isModelLog = function (logs, type) { return function (key) {
5900
+ var log = logs[key];
5901
+ return [
5902
+ // handle Product same as Input
5903
+ isModelForInputProduct(type, key),
5904
+ !isBackgroundNoInput(log),
5905
+ !log.isKey,
5906
+ !log.input,
5907
+ !log.property
5908
+ ].every(Boolean) && [
5909
+ 'shouldRun' in log,
5910
+ 'shouldRunOrchestrator' in log,
5911
+ 'runRequired' in log
5912
+ ].some(Boolean);
5913
+ }; };
5904
5914
  var modelConfigOrder = function (models, termId, modelKey, model) {
5905
5915
  var indexes = models.map(function (m, index) {
5906
5916
  var arrayIndex = Array.isArray(m) ? modelConfigOrder(m, termId, modelKey, model) : '';
@@ -5934,8 +5944,11 @@
5934
5944
  findMatchingModel(models, modelKeyParams(node, (type === null || type === void 0 ? void 0 : type.toLowerCase()) + "." + methodId)) ||
5935
5945
  // handle "transformation"
5936
5946
  ((subValue === null || subValue === void 0 ? void 0 : subValue.key) ? findMatchingModel(models, modelKeyParams(node, subValue === null || subValue === void 0 ? void 0 : subValue.key)) : undefined) ||
5937
- // handle "transformation/excreta" and other models with "/"
5938
- (methodId.includes('/') ? findMatchingModel(models, { model: methodId.split('/')[0], modelKey: methodId.split('/')[1] }) : undefined)
5947
+ // handle "transformation/input/excreta" and other models with "/"
5948
+ (methodId.includes('/') ? findMatchingModel(models, {
5949
+ model: methodId.split('/')[0],
5950
+ modelKey: methodId.split('/').slice(1).join('.')
5951
+ }) : undefined)
5939
5952
  };
5940
5953
  };
5941
5954
  };
@@ -5992,7 +6005,7 @@
5992
6005
  var recalculated = recalculatedValues.filter(function (v) { return termId === v.term['@id']; });
5993
6006
  var hasData = !!original.length || !!recalculated.length || Object.keys(termLogs).length > 0;
5994
6007
  var configModelsData = { nodeType: nodeType, type: type, termId: termId, termType: termType };
5995
- var configModels = groupParallelModels(config, termId, nodeKey, utils.unique(__spreadArray([], __read((termLogs.models || []).filter(function (key) { return isModelLog(termLogs[key]); })))).map(configModelWithDocs(models, configModelsData)));
6008
+ var configModels = groupParallelModels(config, termId, nodeKey, utils.unique(__spreadArray([], __read((termLogs.models || []).filter(isModelLog(termLogs, type))))).map(configModelWithDocs(models, configModelsData)));
5996
6009
  var keys = logKeys(termLogs, original, recalculated, models, configModelsData);
5997
6010
  var subValues = logSubValues(logs, termLogs, original, recalculated, models, configModelsData);
5998
6011
  var isRequired = !Object.values(termLogs)
@@ -6297,7 +6310,7 @@
6297
6310
  return NodeValueDetailsComponent;
6298
6311
  }());
6299
6312
  NodeValueDetailsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NodeValueDetailsComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6300
- NodeValueDetailsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NodeValueDetailsComponent, selector: "he-node-value-details", inputs: { data: "data", nodeType: "nodeType", dataKey: "dataKey" }, ngImport: i0__namespace, template: "<ng-container *bindOnce=\"data\">\n <ng-container *ngIf=\"showInline; else asTable\">\n <ng-container *ngFor=\"let key of keys\">\n <he-link-key-value [node]=\"data!.nodes[0]\" [nodeType]=\"nodeType\" [dataKey]=\"dataKey\" [key]=\"key\" [defaultValue]=\"defaultValue(key)\"></he-link-key-value>\n </ng-container>\n <ng-container *ngFor=\"let key of additionalKeys\">\n <he-link-key-value [node]=\"data!.nodes[0]\" [nodeType]=\"nodeType\" [dataKey]=\"dataKey\" [key]=\"key\" [defaultValue]=\"defaultValue(key)\"></he-link-key-value>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #asTable>\n <he-link-key-value [node]=\"data!.nodes[0]\" [nodeType]=\"nodeType\" [dataKey]=\"dataKey\" key=\"term\"></he-link-key-value>\n\n <div class=\"table-container mt-2\">\n <table class=\"table is-narrow\">\n <thead>\n <th *ngFor=\"let key of tableKeys\">\n <a [href]=\"baseUrl + '/schema/' + type + '#' + key\" target=\"_blank\"><b>{{key}}</b></a>\n </th>\n </thead>\n <tbody>\n <tr *ngFor=\"let node of data!.nodes\">\n <td *ngFor=\"let key of tableKeys\">\n <he-link-key-value [node]=\"node\" [nodeType]=\"nodeType\" [dataKey]=\"dataKey\" [key]=\"key\" [defaultValue]=\"defaultValue(key)\"></he-link-key-value>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n", styles: ["table{background-color:transparent;color:#fff}table::ng-deep he-link-key-value>a:first-child,table::ng-deep he-link-key-value>a:first-child+span{display:none}\n"], components: [{ type: LinkKeyValueComponent, selector: "he-link-key-value", inputs: ["node", "nodeType", "dataKey", "key", "defaultValue"] }], directives: [{ type: BindOnceDirective, selector: "[bindOnce]", inputs: ["bindOnce"] }, { type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
6313
+ NodeValueDetailsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NodeValueDetailsComponent, selector: "he-node-value-details", inputs: { data: "data", nodeType: "nodeType", dataKey: "dataKey" }, ngImport: i0__namespace, template: "<ng-container *bindOnce=\"data\">\n <ng-container *ngIf=\"showInline; else asTable\">\n <ng-container *ngFor=\"let key of keys\">\n <he-link-key-value [node]=\"data!.nodes[0]\" [nodeType]=\"nodeType\" [dataKey]=\"dataKey\" [key]=\"key\"></he-link-key-value>\n </ng-container>\n <ng-container *ngFor=\"let key of additionalKeys\">\n <he-link-key-value [node]=\"data!.nodes[0]\" [nodeType]=\"nodeType\" [dataKey]=\"dataKey\" [key]=\"key\"></he-link-key-value>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #asTable>\n <he-link-key-value [node]=\"data!.nodes[0]\" [nodeType]=\"nodeType\" [dataKey]=\"dataKey\" key=\"term\"></he-link-key-value>\n\n <div class=\"table-container mt-2\">\n <table class=\"table is-narrow\">\n <thead>\n <th *ngFor=\"let key of tableKeys\">\n <a [href]=\"baseUrl + '/schema/' + type + '#' + key\" target=\"_blank\"><b>{{key}}</b></a>\n </th>\n </thead>\n <tbody>\n <tr *ngFor=\"let node of data!.nodes\">\n <td *ngFor=\"let key of tableKeys\">\n <he-link-key-value [node]=\"node\" [nodeType]=\"nodeType\" [dataKey]=\"dataKey\" [key]=\"key\" [defaultValue]=\"defaultValue(key)\"></he-link-key-value>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</ng-template>\n", styles: ["table{background-color:transparent;color:#fff}table::ng-deep he-link-key-value>a:first-child,table::ng-deep he-link-key-value>a:first-child+span{display:none}\n"], components: [{ type: LinkKeyValueComponent, selector: "he-link-key-value", inputs: ["node", "nodeType", "dataKey", "key", "defaultValue"] }], directives: [{ type: BindOnceDirective, selector: "[bindOnce]", inputs: ["bindOnce"] }, { type: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
6301
6314
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NodeValueDetailsComponent, decorators: [{
6302
6315
  type: i0.Component,
6303
6316
  args: [{
@@ -7261,6 +7274,67 @@
7261
7274
  }]
7262
7275
  }] });
7263
7276
 
7277
+ var isVersionKey = function (key) { return ['addedVersion', 'updatedVersion'].includes(key); };
7278
+ var version = function (node) {
7279
+ var versions = Object.entries(node)
7280
+ .filter(function (_a) {
7281
+ var _b = __read(_a, 2), key = _b[0], value = _b[1];
7282
+ return isVersionKey(key) ||
7283
+ typeof value === 'object' && (Array.isArray(value) || value.addedVersion || value.updatedVersion);
7284
+ })
7285
+ .flatMap(function (_a) {
7286
+ var _b = __read(_a, 2), key = _b[0], value = _b[1];
7287
+ return isVersionKey(key)
7288
+ ? value
7289
+ : typeof value === 'object'
7290
+ ? Array.isArray(value)
7291
+ ? value.map(version)
7292
+ : (value.addedVersion || value.updatedVersion)
7293
+ : value;
7294
+ })
7295
+ .filter(Boolean);
7296
+ return (versions === null || versions === void 0 ? void 0 : versions.length) ? versions[0] : null;
7297
+ };
7298
+
7299
+ var EngineModelsVersionLinkComponent = /** @class */ (function () {
7300
+ function EngineModelsVersionLinkComponent(service) {
7301
+ this.service = service;
7302
+ }
7303
+ Object.defineProperty(EngineModelsVersionLinkComponent.prototype, "version", {
7304
+ get: function () {
7305
+ return version(this.node);
7306
+ },
7307
+ enumerable: false,
7308
+ configurable: true
7309
+ });
7310
+ Object.defineProperty(EngineModelsVersionLinkComponent.prototype, "url", {
7311
+ get: function () {
7312
+ return [
7313
+ engineGitBaseUrl(),
7314
+ '-',
7315
+ 'tree',
7316
+ "v" + this.version
7317
+ ].filter(Boolean).join('/');
7318
+ },
7319
+ enumerable: false,
7320
+ configurable: true
7321
+ });
7322
+ return EngineModelsVersionLinkComponent;
7323
+ }());
7324
+ EngineModelsVersionLinkComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: EngineModelsVersionLinkComponent, deps: [{ token: HeEngineService }], target: i0__namespace.ɵɵFactoryTarget.Component });
7325
+ EngineModelsVersionLinkComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EngineModelsVersionLinkComponent, selector: "he-engine-models-version-link", inputs: { node: "node" }, ngImport: i0__namespace, template: "<div class=\"tags has-addons\" *ngIf=\"service.latestVersion$ | async as latestVersion\">\n <ng-container *bindOnce=\"url\">\n <a class=\"tag is-info\" [href]=\"url\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n {{version}}\n <fa-icon class=\"ml-2\" icon=\"external-link-alt\" size=\"sm\"></fa-icon>\n </a>\n </ng-container>\n <ng-container *ngIf=\"latestVersion === version; else outdated\">\n <ng-container *ngTemplateOutlet=\"latest\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #latest>\n <span class=\"tag is-success\">latest</span>\n</ng-template>\n\n<ng-template #outdated>\n <span class=\"tag is-warning\">outdated</span>\n</ng-template>\n", styles: ["a{color:inherit}\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: i2__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: BindOnceDirective, selector: "[bindOnce]", inputs: ["bindOnce"] }, { type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i2__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
7326
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: EngineModelsVersionLinkComponent, decorators: [{
7327
+ type: i0.Component,
7328
+ args: [{
7329
+ selector: 'he-engine-models-version-link',
7330
+ templateUrl: './engine-models-version-link.component.html',
7331
+ styleUrls: ['./engine-models-version-link.component.scss'],
7332
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
7333
+ }]
7334
+ }], ctorParameters: function () { return [{ type: HeEngineService }]; }, propDecorators: { node: [{
7335
+ type: i0.Input
7336
+ }] } });
7337
+
7264
7338
  var gitUrl = gitHome + "/hestia-engine-orchestrator/-/blob/" + gitBranch();
7265
7339
  var generalDocsUrl = gitUrl + "/hestia_earth/orchestrator/config/README.md";
7266
7340
  var strategiesDocs = gitUrl + "/hestia_earth/orchestrator/strategies";
@@ -7474,6 +7548,7 @@
7474
7548
  }], ctorParameters: function () { return [{ type: i1__namespace$1.FormBuilder }, { type: HeSearchService }]; } });
7475
7549
 
7476
7550
  var components$3 = [
7551
+ EngineModelsVersionLinkComponent,
7477
7552
  EngineOrchestratorEditComponent,
7478
7553
  EngineRequirementsFormComponent
7479
7554
  ];
@@ -7483,10 +7558,12 @@
7483
7558
  return HeEngineModule;
7484
7559
  }());
7485
7560
  HeEngineModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: HeEngineModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
7486
- HeEngineModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: HeEngineModule, declarations: [EngineOrchestratorEditComponent,
7561
+ HeEngineModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: HeEngineModule, declarations: [EngineModelsVersionLinkComponent,
7562
+ EngineOrchestratorEditComponent,
7487
7563
  EngineRequirementsFormComponent], imports: [i2.CommonModule, i1$1.ReactiveFormsModule, i1$1.FormsModule,
7488
7564
  HeCommonModule,
7489
- HeNodeModule], exports: [EngineOrchestratorEditComponent,
7565
+ HeNodeModule], exports: [EngineModelsVersionLinkComponent,
7566
+ EngineOrchestratorEditComponent,
7490
7567
  EngineRequirementsFormComponent] });
7491
7568
  HeEngineModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: HeEngineModule, imports: [[
7492
7569
  i2.CommonModule, i1$1.ReactiveFormsModule, i1$1.FormsModule,
@@ -10157,6 +10234,7 @@
10157
10234
  exports.DataTableComponent = DataTableComponent;
10158
10235
  exports.DefaultPipe = DefaultPipe;
10159
10236
  exports.EllipsisPipe = EllipsisPipe;
10237
+ exports.EngineModelsVersionLinkComponent = EngineModelsVersionLinkComponent;
10160
10238
  exports.EngineOrchestratorEditComponent = EngineOrchestratorEditComponent;
10161
10239
  exports.EngineRequirementsFormComponent = EngineRequirementsFormComponent;
10162
10240
  exports.FilesFormComponent = FilesFormComponent;
@@ -10250,6 +10328,7 @@
10250
10328
  exports.definitionToSchemaType = definitionToSchemaType;
10251
10329
  exports.deserializeSearchFilters = deserializeSearchFilters;
10252
10330
  exports.ellipsis = ellipsis;
10331
+ exports.engineGitBaseUrl = engineGitBaseUrl;
10253
10332
  exports.engineGitUrl = engineGitUrl;
10254
10333
  exports.errorHasError = errorHasError;
10255
10334
  exports.errorHasWarning = errorHasWarning;