@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.
- package/bundles/hestia-earth-ui-components.umd.js +108 -29
- package/bundles/hestia-earth-ui-components.umd.js.map +1 -1
- package/engine/engine-models-version-link/engine-models-version-link.component.d.ts +11 -0
- package/engine/engine-models-version-link/engine-models-version-link.model.d.ts +1 -0
- package/engine/engine.module.d.ts +8 -7
- package/engine/engine.service.d.ts +6 -2
- package/engine/index.d.ts +1 -0
- package/esm2015/common/link-key-value/link-key-value.component.js +4 -3
- package/esm2015/engine/engine-models-version-link/engine-models-version-link.component.js +38 -0
- package/esm2015/engine/engine-models-version-link/engine-models-version-link.model.js +16 -0
- package/esm2015/engine/engine.module.js +7 -3
- package/esm2015/engine/engine.service.js +9 -6
- package/esm2015/engine/index.js +2 -1
- package/esm2015/node/node-logs-models/node-logs-models.model.js +28 -15
- package/esm2015/node/node-value-details/node-value-details.component.js +2 -2
- package/fesm2015/hestia-earth-ui-components.js +89 -23
- package/fesm2015/hestia-earth-ui-components.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
|
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
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
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
|
-
|
|
5896
|
-
|
|
5897
|
-
|
|
5898
|
-
|
|
5899
|
-
|
|
5900
|
-
|
|
5901
|
-
|
|
5902
|
-
|
|
5903
|
-
|
|
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, {
|
|
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(
|
|
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\"
|
|
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: [
|
|
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: [
|
|
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;
|