@hestia-earth/ui-components 0.41.45 → 0.41.47
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.
|
@@ -693,7 +693,7 @@ const parseMessage = (message = '') => message.split(',').reduce((prev, parts) =
|
|
|
693
693
|
};
|
|
694
694
|
}, {});
|
|
695
695
|
const formatLine = ({ data: { message } }) => parseMessage(message);
|
|
696
|
-
const logToCsv$
|
|
696
|
+
const logToCsv$2 = (lines) => json2csv((lines || []).map(formatLine).filter(data => !isEmpty(data)), {
|
|
697
697
|
emptyFieldValue: ''
|
|
698
698
|
});
|
|
699
699
|
|
|
@@ -5773,7 +5773,7 @@ const parseAfterDrawBarPlugins = (afterBarDrawConfig, units) => Array.isArray(af
|
|
|
5773
5773
|
afterBarDrawPlugin({
|
|
5774
5774
|
textFn: ({ data }) => [toPrecision(Array.isArray(data) ? data[0] : data), units].filter(Boolean).join(' '),
|
|
5775
5775
|
emptyValueLabel: 'No data',
|
|
5776
|
-
...afterBarDrawConfig
|
|
5776
|
+
...(afterBarDrawConfig || {})
|
|
5777
5777
|
})
|
|
5778
5778
|
];
|
|
5779
5779
|
const convertToSvg = (config, metadata = {}) => new Promise((resolve, reject) => {
|
|
@@ -5830,8 +5830,8 @@ const convertToSvg = (config, metadata = {}) => new Promise((resolve, reject) =>
|
|
|
5830
5830
|
};
|
|
5831
5831
|
// 4. Register Export-Specific Plugins
|
|
5832
5832
|
chartConfig.plugins = [
|
|
5833
|
-
|
|
5834
|
-
metadata.lollipopConfig
|
|
5833
|
+
metadata.afterBarDrawConfig !== null && parseAfterDrawBarPlugins(metadata.afterBarDrawConfig, metadata.units),
|
|
5834
|
+
metadata.lollipopConfig !== null && lollipopChartPlugin(metadata.lollipopConfig)
|
|
5835
5835
|
]
|
|
5836
5836
|
.filter(Boolean)
|
|
5837
5837
|
.flat();
|
|
@@ -6055,7 +6055,6 @@ const axisHoverPlugin = {
|
|
|
6055
6055
|
}
|
|
6056
6056
|
};
|
|
6057
6057
|
|
|
6058
|
-
// ... createHoverGradient remains the same ...
|
|
6059
6058
|
const createHoverGradient = (ctx, chartArea, color) => {
|
|
6060
6059
|
const gradient = ctx.createLinearGradient(chartArea.left, 0, chartArea.right, 0);
|
|
6061
6060
|
gradient.addColorStop(0, colorToRgba(color, 0.05));
|
|
@@ -6063,7 +6062,6 @@ const createHoverGradient = (ctx, chartArea, color) => {
|
|
|
6063
6062
|
gradient.addColorStop(1, colorToRgba(color, 0.05));
|
|
6064
6063
|
return gradient;
|
|
6065
6064
|
};
|
|
6066
|
-
// UPDATED: Use element properties instead of _model
|
|
6067
6065
|
const calculateBarBounds = (element, indexAxis = 'y') => {
|
|
6068
6066
|
const { x, y, base, width, height } = element;
|
|
6069
6067
|
// Handle Horizontal Bars (indexAxis: 'y')
|
|
@@ -6085,7 +6083,6 @@ const calculateBarBounds = (element, indexAxis = 'y') => {
|
|
|
6085
6083
|
return { barLeft, barRight, barTop, barBottom, thickness: barWidth };
|
|
6086
6084
|
}
|
|
6087
6085
|
};
|
|
6088
|
-
// UPDATED: Calculate shadow bounds based on the bounds we just found
|
|
6089
6086
|
const calculateShadowBounds = (element, bounds, threshold) => {
|
|
6090
6087
|
return {
|
|
6091
6088
|
top: bounds.barTop - threshold,
|
|
@@ -6100,6 +6097,10 @@ const drawHoverEffect = (ctx, chartArea, element, threshold, indexAxis) => {
|
|
|
6100
6097
|
// Access colors via options
|
|
6101
6098
|
const opts = element.options || null;
|
|
6102
6099
|
const barColor = (opts?.backgroundColor || opts?.borderColor || '#000000');
|
|
6100
|
+
if (barColor.length !== 7) {
|
|
6101
|
+
// prevent trying to draw from an incorrect color
|
|
6102
|
+
return;
|
|
6103
|
+
}
|
|
6103
6104
|
const color = parseColor(barColor);
|
|
6104
6105
|
const bounds = calculateBarBounds(element, indexAxis);
|
|
6105
6106
|
const shadow = calculateShadowBounds(element, bounds, threshold);
|
|
@@ -6367,14 +6368,14 @@ class BarChartLegendComponent {
|
|
|
6367
6368
|
return Object.values(item).join('-');
|
|
6368
6369
|
}
|
|
6369
6370
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BarChartLegendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6370
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BarChartLegendComponent, isStandalone: true, selector: "he-bar-chart-legend", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"is-
|
|
6371
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BarChartLegendComponent, isStandalone: true, selector: "he-bar-chart-legend", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"is-flex is-align-items-center is-flex-wrap-wrap is-gap-4 is-py-1 is-px-2 is-mt-3 is-radius-3 w-100 | breakdown-legend\">\n @for (value of data(); track trackByItem(value)) {\n @if (value.includedItems?.length) {\n <span class=\"has-text-secondary has-text-weight-bold is-size-7\">\n {{ value.includedItems.length }} others grouped together\n </span>\n }\n\n <div class=\"is-flex is-align-items-center is-gap-4 | breakdown-legend--item\">\n <div class=\"breakdown-legend--color\" [style.backgroundColor]=\"value.backgroundColor || value.color\"></div>\n\n @if (value.includedItems?.length) {\n <div class=\"is-flex is-flex-direction-column is-gap-4\">\n @for (subValue of value.includedItems; track trackByItem(subValue)) {\n <span class=\"is-size-7\">{{ subValue.label }}</span>\n }\n </div>\n } @else {\n <span class=\"is-size-7\">{{ value.label }}</span>\n }\n </div>\n }\n</div>\n", styles: [":host{display:block}.breakdown-legend{background:#fafafa}@media screen and (min-width:768px),print{.breakdown-legend{overflow-y:auto;max-height:100px}}@media screen and (max-width:767px){.breakdown-legend--item{width:100%}}.breakdown-legend--color{width:8px;height:8px;border-radius:50%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6371
6372
|
}
|
|
6372
6373
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BarChartLegendComponent, decorators: [{
|
|
6373
6374
|
type: Component$1,
|
|
6374
|
-
args: [{ selector: 'he-bar-chart-legend', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"is-
|
|
6375
|
+
args: [{ selector: 'he-bar-chart-legend', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"is-flex is-align-items-center is-flex-wrap-wrap is-gap-4 is-py-1 is-px-2 is-mt-3 is-radius-3 w-100 | breakdown-legend\">\n @for (value of data(); track trackByItem(value)) {\n @if (value.includedItems?.length) {\n <span class=\"has-text-secondary has-text-weight-bold is-size-7\">\n {{ value.includedItems.length }} others grouped together\n </span>\n }\n\n <div class=\"is-flex is-align-items-center is-gap-4 | breakdown-legend--item\">\n <div class=\"breakdown-legend--color\" [style.backgroundColor]=\"value.backgroundColor || value.color\"></div>\n\n @if (value.includedItems?.length) {\n <div class=\"is-flex is-flex-direction-column is-gap-4\">\n @for (subValue of value.includedItems; track trackByItem(subValue)) {\n <span class=\"is-size-7\">{{ subValue.label }}</span>\n }\n </div>\n } @else {\n <span class=\"is-size-7\">{{ value.label }}</span>\n }\n </div>\n }\n</div>\n", styles: [":host{display:block}.breakdown-legend{background:#fafafa}@media screen and (min-width:768px),print{.breakdown-legend{overflow-y:auto;max-height:100px}}@media screen and (max-width:767px){.breakdown-legend--item{width:100%}}.breakdown-legend--color{width:8px;height:8px;border-radius:50%}\n"] }]
|
|
6375
6376
|
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }] } });
|
|
6376
6377
|
|
|
6377
|
-
const grey = '#4a4a4a';
|
|
6378
|
+
const grey$1 = '#4a4a4a';
|
|
6378
6379
|
const defaultSettings$3 = Object.freeze({
|
|
6379
6380
|
type: 'bar',
|
|
6380
6381
|
options: {
|
|
@@ -6395,7 +6396,7 @@ const defaultSettings$3 = Object.freeze({
|
|
|
6395
6396
|
min: 0,
|
|
6396
6397
|
title: {
|
|
6397
6398
|
display: false,
|
|
6398
|
-
color: grey,
|
|
6399
|
+
color: grey$1,
|
|
6399
6400
|
font: defaultTicksFont
|
|
6400
6401
|
},
|
|
6401
6402
|
ticks: {
|
|
@@ -6416,7 +6417,7 @@ const defaultSettings$3 = Object.freeze({
|
|
|
6416
6417
|
offset: false
|
|
6417
6418
|
},
|
|
6418
6419
|
ticks: {
|
|
6419
|
-
color: grey,
|
|
6420
|
+
color: grey$1,
|
|
6420
6421
|
padding: 4,
|
|
6421
6422
|
crossAlign: 'center',
|
|
6422
6423
|
font: {
|
|
@@ -6539,15 +6540,16 @@ class BarChartComponent {
|
|
|
6539
6540
|
return this.chart().exportAsPng();
|
|
6540
6541
|
}
|
|
6541
6542
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BarChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6542
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BarChartComponent, isStandalone: true, selector: "he-bar-chart", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, datasets: { classPropertyName: "datasets", publicName: "datasets", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, datasetLabel: { classPropertyName: "datasetLabel", publicName: "datasetLabel", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, showExportButton: { classPropertyName: "showExportButton", publicName: "showExportButton", isSignal: true, isRequired: false, transformFunction: null }, showNegativeValues: { classPropertyName: "showNegativeValues", publicName: "showNegativeValues", isSignal: true, isRequired: false, transformFunction: null }, maximumValues: { classPropertyName: "maximumValues", publicName: "maximumValues", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "chart", first: true, predicate: ChartComponent, descendants: true, isSignal: true }], exportAs: ["barChart"], ngImport: i0, template: "<he-chart [data]=\"dataConfig()\" [config]=\"configuration()\" [showExportButton]=\"showExportButton()\">\n <ng-content />\n</he-chart>\n\n@if (hasNegativeContributions()) {\n <p class=\"is-mt-2 is-italic is-size-7 has-text-center\">\n <span class=\"is-pr-1\">This chart includes negative contributions that will appear as</span>\n <b>0</b>\n <span>.</span>\n </p>\n}\n\n<he-bar-chart-legend [data]=\"maximumData()\" />\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: ChartComponent, selector: "he-chart", inputs: ["data", "config", "showExportButton"], exportAs: ["chart"] }, { kind: "component", type: BarChartLegendComponent, selector: "he-bar-chart-legend", inputs: ["data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6543
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BarChartComponent, isStandalone: true, selector: "he-bar-chart", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, datasets: { classPropertyName: "datasets", publicName: "datasets", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, datasetLabel: { classPropertyName: "datasetLabel", publicName: "datasetLabel", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, showExportButton: { classPropertyName: "showExportButton", publicName: "showExportButton", isSignal: true, isRequired: false, transformFunction: null }, showNegativeValues: { classPropertyName: "showNegativeValues", publicName: "showNegativeValues", isSignal: true, isRequired: false, transformFunction: null }, maximumValues: { classPropertyName: "maximumValues", publicName: "maximumValues", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "chart", first: true, predicate: ChartComponent, descendants: true, isSignal: true }], exportAs: ["barChart"], ngImport: i0, template: "<he-chart [data]=\"dataConfig()\" [config]=\"configuration()\" [showExportButton]=\"showExportButton()\">\n <ng-content />\n</he-chart>\n\n@if (!showNegativeValues() && hasNegativeContributions()) {\n <p class=\"is-mt-2 is-italic is-size-7 has-text-center\">\n <span class=\"is-pr-1\">This chart includes negative contributions that will appear as</span>\n <b>0</b>\n <span>.</span>\n </p>\n}\n\n<he-bar-chart-legend [data]=\"maximumData()\" />\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: ChartComponent, selector: "he-chart", inputs: ["data", "config", "showExportButton"], exportAs: ["chart"] }, { kind: "component", type: BarChartLegendComponent, selector: "he-bar-chart-legend", inputs: ["data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6543
6544
|
}
|
|
6544
6545
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BarChartComponent, decorators: [{
|
|
6545
6546
|
type: Component$1,
|
|
6546
|
-
args: [{ selector: 'he-bar-chart', exportAs: 'barChart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ChartComponent, BarChartLegendComponent], template: "<he-chart [data]=\"dataConfig()\" [config]=\"configuration()\" [showExportButton]=\"showExportButton()\">\n <ng-content />\n</he-chart>\n\n@if (hasNegativeContributions()) {\n <p class=\"is-mt-2 is-italic is-size-7 has-text-center\">\n <span class=\"is-pr-1\">This chart includes negative contributions that will appear as</span>\n <b>0</b>\n <span>.</span>\n </p>\n}\n\n<he-bar-chart-legend [data]=\"maximumData()\" />\n", styles: [":host{display:block}\n"] }]
|
|
6547
|
+
args: [{ selector: 'he-bar-chart', exportAs: 'barChart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ChartComponent, BarChartLegendComponent], template: "<he-chart [data]=\"dataConfig()\" [config]=\"configuration()\" [showExportButton]=\"showExportButton()\">\n <ng-content />\n</he-chart>\n\n@if (!showNegativeValues() && hasNegativeContributions()) {\n <p class=\"is-mt-2 is-italic is-size-7 has-text-center\">\n <span class=\"is-pr-1\">This chart includes negative contributions that will appear as</span>\n <b>0</b>\n <span>.</span>\n </p>\n}\n\n<he-bar-chart-legend [data]=\"maximumData()\" />\n", styles: [":host{display:block}\n"] }]
|
|
6547
6548
|
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], datasets: [{ type: i0.Input, args: [{ isSignal: true, alias: "datasets", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], datasetLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "datasetLabel", required: false }] }], labels: [{ type: i0.Input, args: [{ isSignal: true, alias: "labels", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], showExportButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showExportButton", required: false }] }], showNegativeValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNegativeValues", required: false }] }], maximumValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "maximumValues", required: false }] }], chart: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ChartComponent), { isSignal: true }] }] } });
|
|
6548
6549
|
|
|
6549
6550
|
class ChartTooltipComponent {
|
|
6550
6551
|
constructor() {
|
|
6552
|
+
this.domSanitizer = inject(DomSanitizer);
|
|
6551
6553
|
this.tooltipFn = input.required(...(ngDevMode ? [{ debugName: "tooltipFn" }] : []));
|
|
6552
6554
|
this.tooltip = viewChild.required('tooltip');
|
|
6553
6555
|
this.tooltipX = signal(0, ...(ngDevMode ? [{ debugName: "tooltipX" }] : []));
|
|
@@ -6557,9 +6559,10 @@ class ChartTooltipComponent {
|
|
|
6557
6559
|
this.tooltipX.set(x);
|
|
6558
6560
|
this.tooltipY.set(y);
|
|
6559
6561
|
const text = this.tooltipFn()(data);
|
|
6562
|
+
this.tooltip().tooltipClass = options?.tooltipClass;
|
|
6560
6563
|
this.tooltip().container = options?.container;
|
|
6561
6564
|
this.tooltip().placement = options?.placement || 'bottom';
|
|
6562
|
-
text && setTimeout(() => this.tooltip().open({ data: text }));
|
|
6565
|
+
text && setTimeout(() => this.tooltip().open({ data: this.domSanitizer.bypassSecurityTrustHtml(text) }));
|
|
6563
6566
|
}
|
|
6564
6567
|
hide() {
|
|
6565
6568
|
this.tooltip().close();
|
|
@@ -6572,27 +6575,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
6572
6575
|
args: [{ selector: 'he-chart-tooltip', exportAs: 'chartTooltip', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgbTooltip], template: "<div\n class=\"is-invisible is-absolute | shadow-tooltip\"\n [style.left.px]=\"tooltipX()\"\n [style.top.px]=\"tooltipY()\"\n [ngbTooltip]=\"rawHtmlContent\"\n triggers=\"manual\"\n autoClose=\"outside\"\n placement=\"bottom\"\n container=\"body\"\n #tooltip=\"ngbTooltip\"></div>\n\n<ng-template #rawHtmlContent let-rawString=\"data\">\n <div [innerHTML]=\"rawString\"></div>\n</ng-template>\n", styles: [":host{position:absolute}.shadow-tooltip{width:1px;height:1px;pointer-events:none}\n"] }]
|
|
6573
6576
|
}], propDecorators: { tooltipFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipFn", required: true }] }], tooltip: [{ type: i0.ViewChild, args: ['tooltip', { isSignal: true }] }] } });
|
|
6574
6577
|
|
|
6578
|
+
const escape = (value) => (`${value}`.includes(',') ? `"${value}"` : value);
|
|
6579
|
+
const toLine = (values) => values.map(escape).join(',');
|
|
6580
|
+
|
|
6581
|
+
const grey = '#4a4a4a';
|
|
6582
|
+
const barheight = 8; // 8px
|
|
6583
|
+
const hoverHeight = 10; // 10px
|
|
6575
6584
|
const defaultSettings$2 = Object.freeze({
|
|
6576
6585
|
type: 'bar',
|
|
6577
6586
|
options: {
|
|
6587
|
+
indexAxis: 'y',
|
|
6578
6588
|
responsive: true,
|
|
6579
6589
|
plugins: {
|
|
6580
6590
|
tooltip: {
|
|
6581
|
-
enabled:
|
|
6582
|
-
callbacks: {
|
|
6583
|
-
label: ({ dataset, raw, dataIndex }) => {
|
|
6584
|
-
const includedItems = dataset.includedItems;
|
|
6585
|
-
return [
|
|
6586
|
-
`${dataset.label}: ${transform(raw)}`,
|
|
6587
|
-
includedItems?.length ? 'This includes:' : null,
|
|
6588
|
-
...(includedItems?.length
|
|
6589
|
-
? includedItems
|
|
6590
|
-
.filter(item => !!item.values[dataIndex])
|
|
6591
|
-
.map(item => ` - ${item.label}: ${transform(item.values[dataIndex])}`)
|
|
6592
|
-
: [])
|
|
6593
|
-
].filter(Boolean);
|
|
6594
|
-
}
|
|
6595
|
-
}
|
|
6591
|
+
enabled: false
|
|
6596
6592
|
},
|
|
6597
6593
|
legend: {
|
|
6598
6594
|
display: false
|
|
@@ -6603,23 +6599,101 @@ const defaultSettings$2 = Object.freeze({
|
|
|
6603
6599
|
stacked: true,
|
|
6604
6600
|
display: true,
|
|
6605
6601
|
grid: {
|
|
6606
|
-
display:
|
|
6602
|
+
display: true,
|
|
6603
|
+
drawOnChartArea: true
|
|
6604
|
+
},
|
|
6605
|
+
ticks: {
|
|
6606
|
+
font: defaultTicksFont,
|
|
6607
|
+
callback: label => `${transform(+label)}`
|
|
6607
6608
|
}
|
|
6608
6609
|
},
|
|
6609
6610
|
y: {
|
|
6610
6611
|
stacked: true,
|
|
6611
6612
|
display: true,
|
|
6612
6613
|
position: 'left',
|
|
6613
|
-
beginAtZero: true,
|
|
6614
6614
|
grid: {
|
|
6615
|
-
display: true
|
|
6615
|
+
display: true,
|
|
6616
|
+
drawOnChartArea: false,
|
|
6617
|
+
drawTicks: true,
|
|
6618
|
+
tickLength: 8,
|
|
6619
|
+
offset: false
|
|
6620
|
+
},
|
|
6621
|
+
ticks: {
|
|
6622
|
+
color: grey,
|
|
6623
|
+
padding: 4,
|
|
6624
|
+
crossAlign: 'center',
|
|
6625
|
+
font: {
|
|
6626
|
+
...defaultTicksFont,
|
|
6627
|
+
weight: 400
|
|
6628
|
+
},
|
|
6629
|
+
callback: function (value) {
|
|
6630
|
+
const label = this.getLabelForValue(value);
|
|
6631
|
+
return ellipsis$1(label, 50);
|
|
6632
|
+
}
|
|
6616
6633
|
}
|
|
6617
6634
|
}
|
|
6618
6635
|
}
|
|
6619
6636
|
}
|
|
6620
6637
|
});
|
|
6638
|
+
const chartHeight$1 = (minHeight, maxHeight, nbRows) => {
|
|
6639
|
+
const rowHeight = barheight + hoverHeight * 2; // Pixels per bar (includes bar + gap)
|
|
6640
|
+
const padding = 60; // Extra pixels for x-axis labels, legend, etc.
|
|
6641
|
+
const height = nbRows * rowHeight + padding;
|
|
6642
|
+
return Math.min(Math.max(height, minHeight), maxHeight);
|
|
6643
|
+
};
|
|
6644
|
+
const datasetCenter = (chart, index) => {
|
|
6645
|
+
const elements = chart.data.datasets
|
|
6646
|
+
.map((_, i) => {
|
|
6647
|
+
const meta = chart.getDatasetMeta(i);
|
|
6648
|
+
return meta.hidden ? null : meta.data[index];
|
|
6649
|
+
})
|
|
6650
|
+
.filter(e => !!e);
|
|
6651
|
+
const right = Math.max(...elements.map(e => e.x), ...elements.map(e => e.base));
|
|
6652
|
+
const left = Math.min(...elements.map(e => e.x), ...elements.map(e => e.base));
|
|
6653
|
+
return (right + left) / 2;
|
|
6654
|
+
};
|
|
6655
|
+
const tooltipFn = ({ selectedLabel, units, values }) => `
|
|
6656
|
+
<div class="is-flex is-justify-content-center is-align-items-flex-start is-overflow-y-auto" style="max-height:400px">
|
|
6657
|
+
<div class="is-flex is-flex-direction-column is-align-items-center is-align-self-stretch h-100 is-pr-1 with-border-secondary-accent" style="border-right-width:1px;max-width:360px">
|
|
6658
|
+
<div class="is-align-self-stretch is-p-1 has-text-secondary has-text-weight-bold is-size-7 with-border-secondary-accent" style="border-bottom-width:1px">Contribution</div>
|
|
6659
|
+
|
|
6660
|
+
${values
|
|
6661
|
+
.map(value => `
|
|
6662
|
+
<div class="is-flex is-align-items-center is-align-self-stretch is-gap-4 is-p-1 has-text-grey-dark is-size-7 w-100">
|
|
6663
|
+
<div class="is-radius-3" style="width:12px;height:12px;background:${value.backgroundColor || value.borderColor || value.color}"></div>
|
|
6664
|
+
<span class="${value.label === selectedLabel ? 'has-text-weight-bold' : ''}">${ellipsis$1(value.label, 50)}</span>
|
|
6665
|
+
</div>
|
|
6666
|
+
`.trim())
|
|
6667
|
+
.join('')}
|
|
6668
|
+
|
|
6669
|
+
<div class="is-align-self-stretch has-text-right is-p-1 has-text-grey-dark is-size-7 with-border-secondary-accent" style="border-top-width:1px">Total</div>
|
|
6670
|
+
</div>
|
|
6671
|
+
<div class="is-flex is-flex-direction-column is-align-items-center is-align-self-stretch h-100 is-pl-1">
|
|
6672
|
+
<div class="is-align-self-stretch is-p-1 has-text-secondary has-text-weight-bold is-size-7 with-border-secondary-accent" style="border-bottom-width:1px">${units}</div>
|
|
6673
|
+
|
|
6674
|
+
${values
|
|
6675
|
+
.map(value => `
|
|
6676
|
+
<div class="is-flex is-align-items-center is-align-self-stretch is-gap-4 is-p-1 has-text-grey-dark is-size-7">
|
|
6677
|
+
<span class="${value.label === selectedLabel ? 'has-text-weight-bold' : ''}">${transform(value.value)}</span>
|
|
6678
|
+
</div>
|
|
6679
|
+
`.trim())
|
|
6680
|
+
.join('')}
|
|
6681
|
+
|
|
6682
|
+
<div class="is-align-self-stretch is-p-1 has-text-grey-dark is-size-7 with-border-secondary-accent" style="border-top-width:1px">${transform(sum(values.map(v => v.value)))}</div>
|
|
6683
|
+
</div>
|
|
6684
|
+
</div>
|
|
6685
|
+
`.trim();
|
|
6686
|
+
const dataAtIndex = (data, index) => data
|
|
6687
|
+
.map(item => ({ ...item, value: item.values[index] }))
|
|
6688
|
+
.filter(v => !isUndefined(v.value))
|
|
6689
|
+
.sort((a, b) => Math.abs(b.value) - Math.abs(a.value));
|
|
6690
|
+
const logToCsv$1 = (labels, data) => [
|
|
6691
|
+
toLine(['@id', ...data.map(v => v.label)]),
|
|
6692
|
+
labels.map((label, index) => toLine([label, ...dataAtIndex(data, index).map(v => v.value)])).join('\n')
|
|
6693
|
+
].join('\n');
|
|
6621
6694
|
class ContributionChartComponent {
|
|
6622
6695
|
constructor() {
|
|
6696
|
+
this.tooltipFn = tooltipFn;
|
|
6623
6697
|
/**
|
|
6624
6698
|
* Contribution data.
|
|
6625
6699
|
*/
|
|
@@ -6632,33 +6706,35 @@ class ContributionChartComponent {
|
|
|
6632
6706
|
* Label to display below the chart (X-axis title).
|
|
6633
6707
|
*/
|
|
6634
6708
|
this.label = input('', ...(ngDevMode ? [{ debugName: "label" }] : []));
|
|
6709
|
+
/**
|
|
6710
|
+
* Show default button for export, located on the top-right corner of the chart.
|
|
6711
|
+
*/
|
|
6712
|
+
this.showExportButton = input(true, ...(ngDevMode ? [{ debugName: "showExportButton" }] : []));
|
|
6635
6713
|
this.config = input({}, ...(ngDevMode ? [{ debugName: "config" }] : []));
|
|
6714
|
+
this.minHeight = input(100, ...(ngDevMode ? [{ debugName: "minHeight" }] : []));
|
|
6715
|
+
this.maxHeight = input(400, ...(ngDevMode ? [{ debugName: "maxHeight" }] : []));
|
|
6636
6716
|
this.chart = viewChild.required(ChartComponent);
|
|
6717
|
+
this.tooltip = viewChild.required(ChartTooltipComponent);
|
|
6637
6718
|
this.exporting = computed(() => this.chart()?.exporting(), ...(ngDevMode ? [{ debugName: "exporting" }] : []));
|
|
6719
|
+
this.height = computed(() => chartHeight$1(this.minHeight(), this.maxHeight(), this.labels()?.length ?? 0), ...(ngDevMode ? [{ debugName: "height" }] : []));
|
|
6720
|
+
this.hasNegativeContributions = computed(() => this.data()?.some(value => value.values.some(v => v < 0)), ...(ngDevMode ? [{ debugName: "hasNegativeContributions" }] : []));
|
|
6638
6721
|
this.defaultConfig = computed(() => ({
|
|
6639
6722
|
options: {
|
|
6723
|
+
onClick: (event, activeElements, chart) => this.onItemClick(event, activeElements, chart),
|
|
6640
6724
|
scales: {
|
|
6641
6725
|
x: {
|
|
6726
|
+
afterDataLimits: scale => increaseScaleLimits(scale),
|
|
6642
6727
|
title: {
|
|
6643
6728
|
display: !!this.label(),
|
|
6644
6729
|
text: this.label()
|
|
6645
6730
|
},
|
|
6646
|
-
|
|
6647
|
-
|
|
6648
|
-
}
|
|
6649
|
-
},
|
|
6650
|
-
y: {
|
|
6651
|
-
ticks: {
|
|
6652
|
-
font: {
|
|
6653
|
-
family: defaultTicksFont.family,
|
|
6654
|
-
size: 10,
|
|
6655
|
-
weight: 400
|
|
6656
|
-
},
|
|
6657
|
-
color: '#4A4A4A'
|
|
6731
|
+
grid: {
|
|
6732
|
+
lineWidth: context => (context.tick.value === 0 && this.hasNegativeContributions() ? 1 : 0)
|
|
6658
6733
|
}
|
|
6659
6734
|
}
|
|
6660
6735
|
}
|
|
6661
|
-
}
|
|
6736
|
+
},
|
|
6737
|
+
plugins: [backgroundHoverPlugin({ threshold: hoverHeight })]
|
|
6662
6738
|
}), ...(ngDevMode ? [{ debugName: "defaultConfig" }] : []));
|
|
6663
6739
|
this.dataConfig = computed(() => ({
|
|
6664
6740
|
datasets: this.data().map(item => ({
|
|
@@ -6666,13 +6742,29 @@ class ContributionChartComponent {
|
|
|
6666
6742
|
data: item.values,
|
|
6667
6743
|
backgroundColor: item.backgroundColor || item.color,
|
|
6668
6744
|
borderColor: item.borderColor || item.color,
|
|
6669
|
-
|
|
6670
|
-
|
|
6745
|
+
barThickness: barheight,
|
|
6746
|
+
maxBarThickness: barheight,
|
|
6671
6747
|
includedItems: item.includedItems
|
|
6672
6748
|
})),
|
|
6673
6749
|
labels: this.labels()
|
|
6674
6750
|
}), ...(ngDevMode ? [{ debugName: "dataConfig" }] : []));
|
|
6675
6751
|
this.configuration = computed(() => merge$1({}, defaultSettings$2, this.defaultConfig(), this.config()), ...(ngDevMode ? [{ debugName: "configuration" }] : []));
|
|
6752
|
+
this.csvContent = computed(() => `data:text/html;charset=utf-8,${encodeURIComponent(logToCsv$1(this.labels(), this.data()))}`, ...(ngDevMode ? [{ debugName: "csvContent" }] : []));
|
|
6753
|
+
}
|
|
6754
|
+
onItemClick(event, activeElements, chart) {
|
|
6755
|
+
const index = activeElements?.[0]?.index;
|
|
6756
|
+
const datasetIndex = activeElements[0]?.datasetIndex;
|
|
6757
|
+
const element = activeElements[0]?.element;
|
|
6758
|
+
!isUndefined(index) &&
|
|
6759
|
+
this.tooltip().show({
|
|
6760
|
+
label: this.labels()[index],
|
|
6761
|
+
units: this.label(),
|
|
6762
|
+
values: dataAtIndex(this.data(), index),
|
|
6763
|
+
selectedLabel: this.data()?.[datasetIndex]?.label
|
|
6764
|
+
}, datasetCenter(chart, index), element.y, {
|
|
6765
|
+
tooltipClass: 'has-background-white shadow-3 is-p-1',
|
|
6766
|
+
container: 'body'
|
|
6767
|
+
});
|
|
6676
6768
|
}
|
|
6677
6769
|
exportAsSvg(config = {}) {
|
|
6678
6770
|
return this.chart().exportAsSvg({
|
|
@@ -6683,13 +6775,16 @@ class ContributionChartComponent {
|
|
|
6683
6775
|
exportAsPng() {
|
|
6684
6776
|
return this.chart().exportAsPng();
|
|
6685
6777
|
}
|
|
6778
|
+
exportAsCsv(title) {
|
|
6779
|
+
return downloadFile(this.csvContent(), `${title}-contribution.csv`);
|
|
6780
|
+
}
|
|
6686
6781
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContributionChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6687
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.6", type: ContributionChartComponent, isStandalone: true, selector: "he-contribution-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "chart", first: true, predicate: ChartComponent, descendants: true, isSignal: true }], exportAs: ["contributionChart"], ngImport: i0, template: "<he-chart
|
|
6782
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.6", type: ContributionChartComponent, isStandalone: true, selector: "he-contribution-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, showExportButton: { classPropertyName: "showExportButton", publicName: "showExportButton", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "chart", first: true, predicate: ChartComponent, descendants: true, isSignal: true }, { propertyName: "tooltip", first: true, predicate: ChartTooltipComponent, descendants: true, isSignal: true }], exportAs: ["contributionChart"], ngImport: i0, template: "<div class=\"chart-area-border\">\n <he-chart\n [data]=\"dataConfig()\"\n [config]=\"configuration()\"\n [showExportButton]=\"showExportButton()\"\n [style.height.px]=\"height()\">\n <he-chart-tooltip [tooltipFn]=\"tooltipFn\" />\n </he-chart>\n</div>\n\n<he-bar-chart-legend [data]=\"data()\" />\n", styles: [":host{display:block}he-chart{height:400px}he-bar-chart-legend ::ng-deep .breakdown-legend--color{border-radius:3px}\n"], dependencies: [{ kind: "component", type: ChartComponent, selector: "he-chart", inputs: ["data", "config", "showExportButton"], exportAs: ["chart"] }, { kind: "component", type: ChartTooltipComponent, selector: "he-chart-tooltip", inputs: ["tooltipFn"], exportAs: ["chartTooltip"] }, { kind: "component", type: BarChartLegendComponent, selector: "he-bar-chart-legend", inputs: ["data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6688
6783
|
}
|
|
6689
6784
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContributionChartComponent, decorators: [{
|
|
6690
6785
|
type: Component$1,
|
|
6691
|
-
args: [{ selector: 'he-contribution-chart', exportAs: 'contributionChart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ChartComponent], template: "<he-chart
|
|
6692
|
-
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], labels: [{ type: i0.Input, args: [{ isSignal: true, alias: "labels", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], chart: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ChartComponent), { isSignal: true }] }] } });
|
|
6786
|
+
args: [{ selector: 'he-contribution-chart', exportAs: 'contributionChart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ChartComponent, ChartTooltipComponent, BarChartLegendComponent], template: "<div class=\"chart-area-border\">\n <he-chart\n [data]=\"dataConfig()\"\n [config]=\"configuration()\"\n [showExportButton]=\"showExportButton()\"\n [style.height.px]=\"height()\">\n <he-chart-tooltip [tooltipFn]=\"tooltipFn\" />\n </he-chart>\n</div>\n\n<he-bar-chart-legend [data]=\"data()\" />\n", styles: [":host{display:block}he-chart{height:400px}he-bar-chart-legend ::ng-deep .breakdown-legend--color{border-radius:3px}\n"] }]
|
|
6787
|
+
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], labels: [{ type: i0.Input, args: [{ isSignal: true, alias: "labels", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], showExportButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showExportButton", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], minHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "minHeight", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], chart: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ChartComponent), { isSignal: true }] }], tooltip: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ChartTooltipComponent), { isSignal: true }] }] } });
|
|
6693
6788
|
|
|
6694
6789
|
const colors = {
|
|
6695
6790
|
darkBlue: 'rgba(25, 57, 87, 1)',
|
|
@@ -7001,11 +7096,11 @@ class HorizontalBarChartComponent extends BarChartComponent {
|
|
|
7001
7096
|
}), ...(ngDevMode ? [{ debugName: "horizontalConfiguration" }] : []));
|
|
7002
7097
|
}
|
|
7003
7098
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: HorizontalBarChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
7004
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.6", type: HorizontalBarChartComponent, isStandalone: true, selector: "he-horizontal-bar-chart", inputs: { tooltipFn: { classPropertyName: "tooltipFn", publicName: "tooltipFn", isSignal: true, isRequired: false, transformFunction: null }, afterBarDrawSettings: { classPropertyName: "afterBarDrawSettings", publicName: "afterBarDrawSettings", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: ChartTooltipComponent, descendants: true, isSignal: true }], exportAs: ["horizontalBarChart"], usesInheritance: true, ngImport: i0, template: "<div class=\"chart-area-border\">\n <he-chart\n class=\"is-relative h-100\"\n [data]=\"dataConfig()\"\n [config]=\"horizontalConfiguration()\"\n [showExportButton]=\"showExportButton()\"\n [style.height.px]=\"height()\">\n <he-chart-tooltip [tooltipFn]=\"tooltipFn()\" />\n\n <ng-content />\n </he-chart>\n</div>\n\n<he-bar-chart-legend [data]=\"maximumData()\" />\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: ChartComponent, selector: "he-chart", inputs: ["data", "config", "showExportButton"], exportAs: ["chart"] }, { kind: "component", type: ChartTooltipComponent, selector: "he-chart-tooltip", inputs: ["tooltipFn"], exportAs: ["chartTooltip"] }, { kind: "component", type: BarChartLegendComponent, selector: "he-bar-chart-legend", inputs: ["data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7099
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.6", type: HorizontalBarChartComponent, isStandalone: true, selector: "he-horizontal-bar-chart", inputs: { tooltipFn: { classPropertyName: "tooltipFn", publicName: "tooltipFn", isSignal: true, isRequired: false, transformFunction: null }, afterBarDrawSettings: { classPropertyName: "afterBarDrawSettings", publicName: "afterBarDrawSettings", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: ChartTooltipComponent, descendants: true, isSignal: true }], exportAs: ["horizontalBarChart"], usesInheritance: true, ngImport: i0, template: "<div class=\"chart-area-border\">\n <he-chart\n class=\"is-relative h-100\"\n [data]=\"dataConfig()\"\n [config]=\"horizontalConfiguration()\"\n [showExportButton]=\"showExportButton()\"\n [style.height.px]=\"height()\">\n <he-chart-tooltip [tooltipFn]=\"tooltipFn()\" />\n\n <ng-content />\n </he-chart>\n</div>\n\n<he-bar-chart-legend class=\"is-hidden-tablet\" [data]=\"maximumData()\" />\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: ChartComponent, selector: "he-chart", inputs: ["data", "config", "showExportButton"], exportAs: ["chart"] }, { kind: "component", type: ChartTooltipComponent, selector: "he-chart-tooltip", inputs: ["tooltipFn"], exportAs: ["chartTooltip"] }, { kind: "component", type: BarChartLegendComponent, selector: "he-bar-chart-legend", inputs: ["data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7005
7100
|
}
|
|
7006
7101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: HorizontalBarChartComponent, decorators: [{
|
|
7007
7102
|
type: Component$1,
|
|
7008
|
-
args: [{ selector: 'he-horizontal-bar-chart', exportAs: 'horizontalBarChart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ChartComponent, ChartTooltipComponent, BarChartLegendComponent], template: "<div class=\"chart-area-border\">\n <he-chart\n class=\"is-relative h-100\"\n [data]=\"dataConfig()\"\n [config]=\"horizontalConfiguration()\"\n [showExportButton]=\"showExportButton()\"\n [style.height.px]=\"height()\">\n <he-chart-tooltip [tooltipFn]=\"tooltipFn()\" />\n\n <ng-content />\n </he-chart>\n</div>\n\n<he-bar-chart-legend [data]=\"maximumData()\" />\n", styles: [":host{display:block}\n"] }]
|
|
7103
|
+
args: [{ selector: 'he-horizontal-bar-chart', exportAs: 'horizontalBarChart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ChartComponent, ChartTooltipComponent, BarChartLegendComponent], template: "<div class=\"chart-area-border\">\n <he-chart\n class=\"is-relative h-100\"\n [data]=\"dataConfig()\"\n [config]=\"horizontalConfiguration()\"\n [showExportButton]=\"showExportButton()\"\n [style.height.px]=\"height()\">\n <he-chart-tooltip [tooltipFn]=\"tooltipFn()\" />\n\n <ng-content />\n </he-chart>\n</div>\n\n<he-bar-chart-legend class=\"is-hidden-tablet\" [data]=\"maximumData()\" />\n", styles: [":host{display:block}\n"] }]
|
|
7009
7104
|
}], propDecorators: { tooltipFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipFn", required: false }] }], afterBarDrawSettings: [{ type: i0.Input, args: [{ isSignal: true, alias: "afterBarDrawSettings", required: false }] }], minHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "minHeight", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], tooltip: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ChartTooltipComponent), { isSignal: true }] }] } });
|
|
7010
7105
|
|
|
7011
7106
|
const primaryProduct = ({ products }) => (products || []).find(({ primary }) => primary);
|
|
@@ -9251,11 +9346,11 @@ class CyclesEmissionsChartComponent {
|
|
|
9251
9346
|
this.selectedTerm.set(term);
|
|
9252
9347
|
}
|
|
9253
9348
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CyclesEmissionsChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9254
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: CyclesEmissionsChartComponent, isStandalone: true, selector: "he-cycles-emissions-chart", inputs: { cycles: { classPropertyName: "cycles", publicName: "cycles", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"is-flex is-gap-8 is-justify-content-space-between is-align-items-center is-mb-3\">\n <he-chart-export-button [chart]=\"chart\" [config]=\"{ lollipopConfig:
|
|
9349
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: CyclesEmissionsChartComponent, isStandalone: true, selector: "he-cycles-emissions-chart", inputs: { cycles: { classPropertyName: "cycles", publicName: "cycles", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"is-flex is-gap-8 is-justify-content-space-between is-align-items-center is-mb-3\">\n <he-chart-export-button [chart]=\"chart\" [config]=\"{ lollipopConfig: null }\" />\n\n <ng-content />\n</div>\n\n@if (terms().length) {\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth\">\n <select (change)=\"selectTerm($event)\" id=\"selectTerm\">\n @for (term of terms(); track term) {\n <option [value]=\"term['@id']\">{{ term.name }}</option>\n }\n </select>\n </div>\n </div>\n </div>\n}\n\n<he-horizontal-bar-chart\n #chart=\"horizontalBarChart\"\n class=\"is-relative h-100\"\n [title]=\"selectedTerm()?.units\"\n [data]=\"chartData()\"\n [labels]=\"labels()\"\n [showExportButton]=\"false\" />\n", styles: [":host{display:block;overflow:visible}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "component", type: HorizontalBarChartComponent, selector: "he-horizontal-bar-chart", inputs: ["tooltipFn", "afterBarDrawSettings", "minHeight", "maxHeight"], exportAs: ["horizontalBarChart"] }, { kind: "component", type: ChartExportButtonComponent, selector: "he-chart-export-button", inputs: ["buttonClass", "chart", "config", "exportFormats", "chartExportFn"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9255
9350
|
}
|
|
9256
9351
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CyclesEmissionsChartComponent, decorators: [{
|
|
9257
9352
|
type: Component$1,
|
|
9258
|
-
args: [{ selector: 'he-cycles-emissions-chart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, HorizontalBarChartComponent, ChartExportButtonComponent], template: "<div class=\"is-flex is-gap-8 is-justify-content-space-between is-align-items-center is-mb-3\">\n <he-chart-export-button [chart]=\"chart\" [config]=\"{ lollipopConfig:
|
|
9353
|
+
args: [{ selector: 'he-cycles-emissions-chart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, HorizontalBarChartComponent, ChartExportButtonComponent], template: "<div class=\"is-flex is-gap-8 is-justify-content-space-between is-align-items-center is-mb-3\">\n <he-chart-export-button [chart]=\"chart\" [config]=\"{ lollipopConfig: null }\" />\n\n <ng-content />\n</div>\n\n@if (terms().length) {\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth\">\n <select (change)=\"selectTerm($event)\" id=\"selectTerm\">\n @for (term of terms(); track term) {\n <option [value]=\"term['@id']\">{{ term.name }}</option>\n }\n </select>\n </div>\n </div>\n </div>\n}\n\n<he-horizontal-bar-chart\n #chart=\"horizontalBarChart\"\n class=\"is-relative h-100\"\n [title]=\"selectedTerm()?.units\"\n [data]=\"chartData()\"\n [labels]=\"labels()\"\n [showExportButton]=\"false\" />\n", styles: [":host{display:block;overflow:visible}\n"] }]
|
|
9259
9354
|
}], ctorParameters: () => [], propDecorators: { cycles: [{ type: i0.Input, args: [{ isSignal: true, alias: "cycles", required: true }] }] } });
|
|
9260
9355
|
|
|
9261
9356
|
class CyclesFunctionalUnitMeasureComponent {
|
|
@@ -10323,7 +10418,7 @@ class NodeLogsFileComponent {
|
|
|
10323
10418
|
?.filter(({ level }) => levels.indexOf(level) >= levels.indexOf(this.selectedLevel()))
|
|
10324
10419
|
?.filter(({ code }) => (!this.modelFilter() || code.toLocaleLowerCase().includes(`model=${this.modelFilter().toLowerCase()}`)) &&
|
|
10325
10420
|
(!this.termFilter() || code.toLocaleLowerCase().includes(`term=${this.termFilter().toLowerCase()}`))), ...(ngDevMode ? [{ debugName: "nodeLogLines" }] : []));
|
|
10326
|
-
this.csvContent = computed(() => this.domSanitizer.bypassSecurityTrustResourceUrl(`data:text/html;charset=utf-8,${encodeURIComponent(logToCsv$
|
|
10421
|
+
this.csvContent = computed(() => this.domSanitizer.bypassSecurityTrustResourceUrl(`data:text/html;charset=utf-8,${encodeURIComponent(logToCsv$2(this.allLogs()))}`), ...(ngDevMode ? [{ debugName: "csvContent" }] : []));
|
|
10327
10422
|
this.csvFilename = computed(() => fileToExt(this.node()?.['@id'] ?? '', 'csv'), ...(ngDevMode ? [{ debugName: "csvFilename" }] : []));
|
|
10328
10423
|
}
|
|
10329
10424
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NodeLogsFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -13626,8 +13721,6 @@ const showBar = (node) => [
|
|
|
13626
13721
|
].every(Boolean);
|
|
13627
13722
|
const extraInputKeys = ['input', 'input value'];
|
|
13628
13723
|
const extraOperationKeys = ['operation', 'operation value'];
|
|
13629
|
-
const escape = (value) => (`${value}`.includes(',') ? `"${value}"` : value);
|
|
13630
|
-
const toLine = (values) => values.map(escape).join(',');
|
|
13631
13724
|
const dataToCsv = (keys, terms) => (data) => [
|
|
13632
13725
|
// line for the data
|
|
13633
13726
|
toLine([
|
|
@@ -14161,10 +14254,10 @@ const chartBreakdownLabel = (logs, total, maxValues) => {
|
|
|
14161
14254
|
return values.map(({ blankNodeTermId, value }) => `${blankNodeTermId}: ${chartLabel(value, total)}`).join('</br>');
|
|
14162
14255
|
};
|
|
14163
14256
|
const logToCsv = (logs, impact) => [
|
|
14164
|
-
['Impact', 'Impact Unit', 'Method', 'Emission', 'Value', 'Inputs', 'Functional Unit']
|
|
14257
|
+
toLine(['Impact', 'Impact Unit', 'Method', 'Emission', 'Value', 'Inputs', 'Functional Unit']),
|
|
14165
14258
|
...logs
|
|
14166
14259
|
.sort((a, b) => a.impactTermId.localeCompare(b.impactTermId))
|
|
14167
|
-
.map(({ impactTermId, impactTermUnits, modelId, blankNodeTermId, value, inputs }) => [
|
|
14260
|
+
.map(({ impactTermId, impactTermUnits, modelId, blankNodeTermId, value, inputs }) => toLine([
|
|
14168
14261
|
impactTermId,
|
|
14169
14262
|
impactTermUnits,
|
|
14170
14263
|
modelId,
|
|
@@ -14172,7 +14265,7 @@ const logToCsv = (logs, impact) => [
|
|
|
14172
14265
|
value,
|
|
14173
14266
|
inputs.join(';'),
|
|
14174
14267
|
impact.product?.term?.units
|
|
14175
|
-
]
|
|
14268
|
+
]))
|
|
14176
14269
|
].join('\n');
|
|
14177
14270
|
const processContributions = (record, nodes, impacts) => Object.entries(record || {}).flatMap(([index, impactContr]) => {
|
|
14178
14271
|
const indicator = nodes[+index];
|
|
@@ -14307,12 +14400,16 @@ class ImpactAssessmentsIndicatorBreakdownChartComponent {
|
|
|
14307
14400
|
}
|
|
14308
14401
|
: { textFn: ({ data }) => `${valueRatio(data, total)}%` });
|
|
14309
14402
|
}, ...(ngDevMode ? [{ debugName: "afterBarDrawSettings" }] : []));
|
|
14403
|
+
this.chartMin = computed(() => {
|
|
14404
|
+
const values = this.values().map(v => v.value);
|
|
14405
|
+
return values.some(v => v < 0) ? Math.min(...values) : 0;
|
|
14406
|
+
}, ...(ngDevMode ? [{ debugName: "chartMin" }] : []));
|
|
14310
14407
|
this.configuration = computed(() => ({
|
|
14311
14408
|
options: {
|
|
14312
14409
|
scales: {
|
|
14313
14410
|
x: {
|
|
14314
14411
|
afterDataLimits: scale => increaseScaleLimits(scale),
|
|
14315
|
-
min:
|
|
14412
|
+
min: this.chartMin(),
|
|
14316
14413
|
max: Math.max(...this.values().map(v => v.value))
|
|
14317
14414
|
}
|
|
14318
14415
|
}
|
|
@@ -14329,7 +14426,7 @@ class ImpactAssessmentsIndicatorBreakdownChartComponent {
|
|
|
14329
14426
|
this.chartExportFn = async (format, chart) => {
|
|
14330
14427
|
return {
|
|
14331
14428
|
png: () => chart.exportAsPng(),
|
|
14332
|
-
svg: () => chart.exportAsSvg({ lollipopConfig:
|
|
14429
|
+
svg: () => chart.exportAsSvg({ lollipopConfig: null }),
|
|
14333
14430
|
csv: () => downloadFile(this.csvContent(), 'chart.csv')
|
|
14334
14431
|
}[format]();
|
|
14335
14432
|
};
|
|
@@ -14476,6 +14573,25 @@ class ImpactAssessmentsIndicatorsChartComponent {
|
|
|
14476
14573
|
color: listColor(impact, index)
|
|
14477
14574
|
})), ...(ngDevMode ? [{ debugName: "chartData" }] : []));
|
|
14478
14575
|
this.chartLabels = computed(() => this.impactAssessments().map((impact, index) => impactName(impact, index)), ...(ngDevMode ? [{ debugName: "chartLabels" }] : []));
|
|
14576
|
+
this.exportFormats = computed(() => [
|
|
14577
|
+
...exportFormats,
|
|
14578
|
+
this.enableContributions()
|
|
14579
|
+
? {
|
|
14580
|
+
extension: 'csv',
|
|
14581
|
+
label: 'Data'
|
|
14582
|
+
}
|
|
14583
|
+
: null
|
|
14584
|
+
].filter(Boolean), ...(ngDevMode ? [{ debugName: "exportFormats" }] : []));
|
|
14585
|
+
this.chartExportFn = async (format, chart) => {
|
|
14586
|
+
return {
|
|
14587
|
+
png: () => chart.exportAsPng(),
|
|
14588
|
+
svg: () => chart.exportAsSvg({
|
|
14589
|
+
lollipopConfig: null,
|
|
14590
|
+
...(this.enableContributions() ? { afterBarDrawConfig: null } : {})
|
|
14591
|
+
}),
|
|
14592
|
+
csv: () => this.contributionChart().exportAsCsv([this.selectedTerm()?.name, this.selectedMethod()?.name, this.selectedCategory()].filter(Boolean).join('-'))
|
|
14593
|
+
}[format]();
|
|
14594
|
+
};
|
|
14479
14595
|
// make sure selected term exists
|
|
14480
14596
|
effect(() => {
|
|
14481
14597
|
const terms = this.terms();
|
|
@@ -14498,11 +14614,11 @@ class ImpactAssessmentsIndicatorsChartComponent {
|
|
|
14498
14614
|
});
|
|
14499
14615
|
}
|
|
14500
14616
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ImpactAssessmentsIndicatorsChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14501
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: ImpactAssessmentsIndicatorsChartComponent, isStandalone: true, selector: "he-impact-assessments-indicators-chart", inputs: { key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: false, transformFunction: null }, filterTermTypes: { classPropertyName: "filterTermTypes", publicName: "filterTermTypes", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "barChart", first: true, predicate: HorizontalBarChartComponent, descendants: true, isSignal: true }, { propertyName: "contributionChart", first: true, predicate: ContributionChartComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"is-flex is-gap-8 is-justify-content-space-between is-align-items-center is-mb-3\">\n <he-chart-export-button [chart]=\"chart()\" [
|
|
14617
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: ImpactAssessmentsIndicatorsChartComponent, isStandalone: true, selector: "he-impact-assessments-indicators-chart", inputs: { key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: false, transformFunction: null }, filterTermTypes: { classPropertyName: "filterTermTypes", publicName: "filterTermTypes", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "barChart", first: true, predicate: HorizontalBarChartComponent, descendants: true, isSignal: true }, { propertyName: "contributionChart", first: true, predicate: ContributionChartComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"is-flex is-gap-8 is-justify-content-space-between is-align-items-center is-mb-3\">\n <he-chart-export-button [chart]=\"chart()\" [chartExportFn]=\"chartExportFn\" [exportFormats]=\"exportFormats()\" />\n\n <ng-content />\n</div>\n\n@if (terms()?.length) {\n <div class=\"is-flex is-align-items-center is-gap-12 is-mb-2 | breakdown-actions-table\">\n @if (terms()?.length) {\n <div class=\"control is-expanded is-flex-grow-1\">\n <div class=\"select is-fullwidth is-small\">\n <select [(ngModel)]=\"selectedTermId\" name=\"selectedTermId\">\n @for (term of terms(); track term['@id']) {\n <option [value]=\"term['@id']\">{{ term.name }}</option>\n }\n </select>\n </div>\n </div>\n }\n @if (methods()?.length) {\n <div class=\"control is-expanded is-flex-shrink-0\">\n <div class=\"select is-fullwidth is-small\">\n <select [(ngModel)]=\"selectedMethodId\" name=\"selectedMethodId\">\n @for (term of methods(); track term['@id']) {\n <option [value]=\"term['@id']\">{{ term.name }}</option>\n }\n </select>\n </div>\n </div>\n }\n @if (enableContributions()) {\n <div class=\"control is-expanded is-flex-shrink-0\">\n <div class=\"select is-fullwidth is-small\">\n <select [(ngModel)]=\"selectedCategory\" name=\"selectedCategory\">\n <option [ngValue]=\"undefined\">No Disaggregation</option>\n @for (category of categories; track category.key) {\n <option [value]=\"category.key\">{{ category.label }}</option>\n }\n </select>\n </div>\n </div>\n }\n </div>\n}\n\n@if (enableContributions()) {\n <he-contribution-chart\n class=\"is-relative h-100\"\n [label]=\"selectedTerm()?.units\"\n [data]=\"chartData()\"\n [labels]=\"chartLabels()\"\n [showExportButton]=\"false\" />\n} @else {\n <he-horizontal-bar-chart\n class=\"is-relative h-100\"\n [title]=\"selectedTerm()?.units\"\n [data]=\"chartData()\"\n [showExportButton]=\"false\" />\n}\n", styles: [":host{display:block;overflow:visible}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: HorizontalBarChartComponent, selector: "he-horizontal-bar-chart", inputs: ["tooltipFn", "afterBarDrawSettings", "minHeight", "maxHeight"], exportAs: ["horizontalBarChart"] }, { kind: "component", type: ContributionChartComponent, selector: "he-contribution-chart", inputs: ["data", "labels", "label", "showExportButton", "config", "minHeight", "maxHeight"], exportAs: ["contributionChart"] }, { kind: "component", type: ChartExportButtonComponent, selector: "he-chart-export-button", inputs: ["buttonClass", "chart", "config", "exportFormats", "chartExportFn"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14502
14618
|
}
|
|
14503
14619
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ImpactAssessmentsIndicatorsChartComponent, decorators: [{
|
|
14504
14620
|
type: Component$1,
|
|
14505
|
-
args: [{ selector: 'he-impact-assessments-indicators-chart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, HorizontalBarChartComponent, ContributionChartComponent, ChartExportButtonComponent], template: "<div class=\"is-flex is-gap-8 is-justify-content-space-between is-align-items-center is-mb-3\">\n <he-chart-export-button [chart]=\"chart()\" [
|
|
14621
|
+
args: [{ selector: 'he-impact-assessments-indicators-chart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, HorizontalBarChartComponent, ContributionChartComponent, ChartExportButtonComponent], template: "<div class=\"is-flex is-gap-8 is-justify-content-space-between is-align-items-center is-mb-3\">\n <he-chart-export-button [chart]=\"chart()\" [chartExportFn]=\"chartExportFn\" [exportFormats]=\"exportFormats()\" />\n\n <ng-content />\n</div>\n\n@if (terms()?.length) {\n <div class=\"is-flex is-align-items-center is-gap-12 is-mb-2 | breakdown-actions-table\">\n @if (terms()?.length) {\n <div class=\"control is-expanded is-flex-grow-1\">\n <div class=\"select is-fullwidth is-small\">\n <select [(ngModel)]=\"selectedTermId\" name=\"selectedTermId\">\n @for (term of terms(); track term['@id']) {\n <option [value]=\"term['@id']\">{{ term.name }}</option>\n }\n </select>\n </div>\n </div>\n }\n @if (methods()?.length) {\n <div class=\"control is-expanded is-flex-shrink-0\">\n <div class=\"select is-fullwidth is-small\">\n <select [(ngModel)]=\"selectedMethodId\" name=\"selectedMethodId\">\n @for (term of methods(); track term['@id']) {\n <option [value]=\"term['@id']\">{{ term.name }}</option>\n }\n </select>\n </div>\n </div>\n }\n @if (enableContributions()) {\n <div class=\"control is-expanded is-flex-shrink-0\">\n <div class=\"select is-fullwidth is-small\">\n <select [(ngModel)]=\"selectedCategory\" name=\"selectedCategory\">\n <option [ngValue]=\"undefined\">No Disaggregation</option>\n @for (category of categories; track category.key) {\n <option [value]=\"category.key\">{{ category.label }}</option>\n }\n </select>\n </div>\n </div>\n }\n </div>\n}\n\n@if (enableContributions()) {\n <he-contribution-chart\n class=\"is-relative h-100\"\n [label]=\"selectedTerm()?.units\"\n [data]=\"chartData()\"\n [labels]=\"chartLabels()\"\n [showExportButton]=\"false\" />\n} @else {\n <he-horizontal-bar-chart\n class=\"is-relative h-100\"\n [title]=\"selectedTerm()?.units\"\n [data]=\"chartData()\"\n [showExportButton]=\"false\" />\n}\n", styles: [":host{display:block;overflow:visible}\n"] }]
|
|
14506
14622
|
}], ctorParameters: () => [], propDecorators: { barChart: [{ type: i0.ViewChild, args: [i0.forwardRef(() => HorizontalBarChartComponent), { isSignal: true }] }], contributionChart: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ContributionChartComponent), { isSignal: true }] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: false }] }], filterTermTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterTermTypes", required: false }] }] } });
|
|
14507
14623
|
|
|
14508
14624
|
var View$1;
|
|
@@ -15335,5 +15451,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
15335
15451
|
* Generated bundle index. Do not edit.
|
|
15336
15452
|
*/
|
|
15337
15453
|
|
|
15338
|
-
export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, CapitalizePipe, ChartComponent, ChartConfigurationDirective, ChartExportButtonComponent, ChartTooltipComponent, ClickOutsideDirective, ClipboardComponent, CollapsibleBoxComponent, CollapsibleBoxStyle, ColorPalette, CompoundDirective, CompoundPipe, ContributionChartComponent, ControlValueAccessor, CycleNodesKeyGroup, CyclesCompletenessComponent, CyclesEmissionsChartComponent, CyclesFunctionalUnitMeasureComponent, CyclesMetadataComponent, CyclesNodesComponent, CyclesNodesTimelineComponent, CyclesResultComponent, DataTableComponent, DefaultPipe, DeltaColour, DistributionChartComponent, DrawerContainerComponent, DurationPipe, EllipsisPipe, EngineModelsLinkComponent, EngineModelsLookupInfoComponent, EngineModelsStageComponent, EngineModelsStageDeepComponent, EngineModelsStageDeepService, EngineModelsVersionInfoComponent, EngineModelsVersionLinkComponent, EngineOrchestratorEditComponent, EngineRequirementsFormComponent, FileSizePipe, FileUploadErrorKeys, FilesErrorSummaryComponent, FilesFormComponent, FilesFormEditableComponent, FilesUploadErrorsComponent, FilterAccordionComponent, GUIDE_ENABLED, GetPipe, GlossaryMigrationFormat, GuideOverlayComponent, HESvgIconComponent, HE_API_BASE_URL, HE_CALCULATIONS_BASE_URL, HE_MAP_LOADED, HeAuthService, HeCommonService, HeEngineService, HeGlossaryService, HeMendeleyService, HeNodeCsvService, HeNodeService, HeNodeStoreService, HeSchemaService, HeSearchService, HeToastService, HorizontalBarChartComponent, HorizontalButtonsGroupComponent, ImpactAssessmentsGraphComponent, ImpactAssessmentsIndicatorBreakdownChartComponent, ImpactAssessmentsIndicatorsChartComponent, ImpactAssessmentsProductsComponent, IsArrayPipe, IsObjectPipe, IssueConfirmComponent, KeyToLabelPipe, Level, LineChartComponent, LinkKeyValueComponent, LogStatus, LongPressDirective, MAX_RESULTS, MapsDrawingComponent, MapsDrawingConfirmComponent, MendeleySearchResult, MobileShellComponent, NavigationMenuComponent, NoExtPipe, NodeAggregatedComponent, NodeAggregatedInfoComponent, NodeAggregatedQualityScoreComponent, NodeCsvExportConfirmComponent, NodeCsvPreviewComponent, NodeCsvSelectHeadersComponent, NodeIconComponent, NodeJsonldComponent, NodeJsonldSchemaComponent, NodeKeyState, NodeLinkComponent, NodeLogsFileComponent, NodeLogsModelsComponent, NodeLogsTimeComponent, NodeMissingLookupFactorsComponent, NodeQualityScore, NodeRecommendationsComponent, NodeSelectComponent, NodeValueDetailsComponent, PipelineStagesProgressComponent, PluralizePipe, PopoverComponent, PopoverConfirmComponent, PrecisionPipe, RelatedNodeResult, RemoveMarkdownPipe, RepeatPipe, Repository, ResizedDirective, ResizedEvent, ResponsiveService, SchemaInfoComponent, SchemaVersionLinkComponent, SearchExtendComponent, ShelfDialogComponent, ShellComponent, SitesManagementChartComponent, SitesMapsComponent, SitesNodesComponent, SkeletonTextComponent, SocialTagsComponent, SortByPipe, SortSelectComponent, TagsInputDirective, Template, TermsPropertyContentComponent, TermsSubClassOfContentComponent, TermsUnitsDescriptionComponent, ThousandSuffixesPipe, ThousandsPipe, TimesPipe, ToastComponent, UncapitalizePipe, addPolygonToFeature, afterBarDrawPlugin, allCountriesQuery, allGroups, allOptions, availableProperties, axisHoverPlugin, backgroundHoverPlugin, baseApiUrl, baseUrl, bottom, buildSummary, bytesSize, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, capitalize, changelogUrl, clustererImage, code, colorToRgba, compoundToHtml, computeKeys, computeTerms, contactUsEmail, contactUsLink, convertToSvg, coordinatesToPoint, copyObject, countGroupVisibleNodes, countriesQuery, createMarker, cropsQuery, d3ellipse, d3wrap, dataPathLabel, dataPathToKey, dataVersionHeader, dataVersionHeaderKey, defaultFeature, defaultLabel, defaultSuggestionType, defaultSvgIconSize, defaultTicksFont, definitionToSchemaType, distinctUntilChangedDeep, downloadFile, downloadPng, downloadSvg, ellipsis, engineGitBaseUrl, engineGitUrl, errorHasError, errorHasWarning, errorText, evaluateSuccess, exportAsSVG, exportFormats, externalLink, externalNodeLink, fillColor, fillStyle, filterBlankNode$1 as filterBlankNode, filterError, filterParams, findConfigModels, findMatchingModel, findModels, findNodeModel, findOrchestratorModel, findProperty, findPropertyById, flatFilterData, flatFilterNode, formatCustomErrorMessage, formatDate, formatError, formatPropertyError, formatter, getColor, getDatesBetween, gitBranch, gitHome, gitlabRawUrl, glossaryBaseUrl, glossaryLink, groupChanged, groupLogsByModel, groupLogsByTerm, groupNodesByTerm, groupdLogsByKey, grouppedKeys, grouppedValueKeys, groupsLogsByFields, guideModelUrl, guideNamespace, guidePageId, handleAPIError, handleGuideEvent, hasError, hasValidationError, hasWarning, hexToRgba, iconSizes, icons, ignoreKeys$2 as ignoreKeys, increaseScaleLimits, initialFilterState, injectResizeEvent$, inputGroupsTermTypes, isAddPropertyEnabled, isChrome, isDateBetween, isEqual, isExternal, isKeyClosedVisible, isKeyHidden, isMaxStage, isMethodModelAllowed, isMigrationError, isMissingOneOfError, isMissingPropertyError, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, keyToDataPath, levels, listColor, listColorContinuous, listColorWithAlpha, loadMapApi, loadSvgSprite, locationQuery, logToCsv$
|
|
15454
|
+
export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, CapitalizePipe, ChartComponent, ChartConfigurationDirective, ChartExportButtonComponent, ChartTooltipComponent, ClickOutsideDirective, ClipboardComponent, CollapsibleBoxComponent, CollapsibleBoxStyle, ColorPalette, CompoundDirective, CompoundPipe, ContributionChartComponent, ControlValueAccessor, CycleNodesKeyGroup, CyclesCompletenessComponent, CyclesEmissionsChartComponent, CyclesFunctionalUnitMeasureComponent, CyclesMetadataComponent, CyclesNodesComponent, CyclesNodesTimelineComponent, CyclesResultComponent, DataTableComponent, DefaultPipe, DeltaColour, DistributionChartComponent, DrawerContainerComponent, DurationPipe, EllipsisPipe, EngineModelsLinkComponent, EngineModelsLookupInfoComponent, EngineModelsStageComponent, EngineModelsStageDeepComponent, EngineModelsStageDeepService, EngineModelsVersionInfoComponent, EngineModelsVersionLinkComponent, EngineOrchestratorEditComponent, EngineRequirementsFormComponent, FileSizePipe, FileUploadErrorKeys, FilesErrorSummaryComponent, FilesFormComponent, FilesFormEditableComponent, FilesUploadErrorsComponent, FilterAccordionComponent, GUIDE_ENABLED, GetPipe, GlossaryMigrationFormat, GuideOverlayComponent, HESvgIconComponent, HE_API_BASE_URL, HE_CALCULATIONS_BASE_URL, HE_MAP_LOADED, HeAuthService, HeCommonService, HeEngineService, HeGlossaryService, HeMendeleyService, HeNodeCsvService, HeNodeService, HeNodeStoreService, HeSchemaService, HeSearchService, HeToastService, HorizontalBarChartComponent, HorizontalButtonsGroupComponent, ImpactAssessmentsGraphComponent, ImpactAssessmentsIndicatorBreakdownChartComponent, ImpactAssessmentsIndicatorsChartComponent, ImpactAssessmentsProductsComponent, IsArrayPipe, IsObjectPipe, IssueConfirmComponent, KeyToLabelPipe, Level, LineChartComponent, LinkKeyValueComponent, LogStatus, LongPressDirective, MAX_RESULTS, MapsDrawingComponent, MapsDrawingConfirmComponent, MendeleySearchResult, MobileShellComponent, NavigationMenuComponent, NoExtPipe, NodeAggregatedComponent, NodeAggregatedInfoComponent, NodeAggregatedQualityScoreComponent, NodeCsvExportConfirmComponent, NodeCsvPreviewComponent, NodeCsvSelectHeadersComponent, NodeIconComponent, NodeJsonldComponent, NodeJsonldSchemaComponent, NodeKeyState, NodeLinkComponent, NodeLogsFileComponent, NodeLogsModelsComponent, NodeLogsTimeComponent, NodeMissingLookupFactorsComponent, NodeQualityScore, NodeRecommendationsComponent, NodeSelectComponent, NodeValueDetailsComponent, PipelineStagesProgressComponent, PluralizePipe, PopoverComponent, PopoverConfirmComponent, PrecisionPipe, RelatedNodeResult, RemoveMarkdownPipe, RepeatPipe, Repository, ResizedDirective, ResizedEvent, ResponsiveService, SchemaInfoComponent, SchemaVersionLinkComponent, SearchExtendComponent, ShelfDialogComponent, ShellComponent, SitesManagementChartComponent, SitesMapsComponent, SitesNodesComponent, SkeletonTextComponent, SocialTagsComponent, SortByPipe, SortSelectComponent, TagsInputDirective, Template, TermsPropertyContentComponent, TermsSubClassOfContentComponent, TermsUnitsDescriptionComponent, ThousandSuffixesPipe, ThousandsPipe, TimesPipe, ToastComponent, UncapitalizePipe, addPolygonToFeature, afterBarDrawPlugin, allCountriesQuery, allGroups, allOptions, availableProperties, axisHoverPlugin, backgroundHoverPlugin, baseApiUrl, baseUrl, bottom, buildSummary, bytesSize, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, capitalize, changelogUrl, clustererImage, code, colorToRgba, compoundToHtml, computeKeys, computeTerms, contactUsEmail, contactUsLink, convertToSvg, coordinatesToPoint, copyObject, countGroupVisibleNodes, countriesQuery, createMarker, cropsQuery, d3ellipse, d3wrap, dataPathLabel, dataPathToKey, dataVersionHeader, dataVersionHeaderKey, defaultFeature, defaultLabel, defaultSuggestionType, defaultSvgIconSize, defaultTicksFont, definitionToSchemaType, distinctUntilChangedDeep, downloadFile, downloadPng, downloadSvg, ellipsis, engineGitBaseUrl, engineGitUrl, errorHasError, errorHasWarning, errorText, evaluateSuccess, exportAsSVG, exportFormats, externalLink, externalNodeLink, fillColor, fillStyle, filterBlankNode$1 as filterBlankNode, filterError, filterParams, findConfigModels, findMatchingModel, findModels, findNodeModel, findOrchestratorModel, findProperty, findPropertyById, flatFilterData, flatFilterNode, formatCustomErrorMessage, formatDate, formatError, formatPropertyError, formatter, getColor, getDatesBetween, gitBranch, gitHome, gitlabRawUrl, glossaryBaseUrl, glossaryLink, groupChanged, groupLogsByModel, groupLogsByTerm, groupNodesByTerm, groupdLogsByKey, grouppedKeys, grouppedValueKeys, groupsLogsByFields, guideModelUrl, guideNamespace, guidePageId, handleAPIError, handleGuideEvent, hasError, hasValidationError, hasWarning, hexToRgba, iconSizes, icons, ignoreKeys$2 as ignoreKeys, increaseScaleLimits, initialFilterState, injectResizeEvent$, inputGroupsTermTypes, isAddPropertyEnabled, isChrome, isDateBetween, isEqual, isExternal, isKeyClosedVisible, isKeyHidden, isMaxStage, isMethodModelAllowed, isMigrationError, isMissingOneOfError, isMissingPropertyError, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, keyToDataPath, levels, listColor, listColorContinuous, listColorWithAlpha, loadMapApi, loadSvgSprite, locationQuery, logToCsv$2 as logToCsv, logValueArray, logsKey, lollipopChartPlugin, lookupUrl, mapFilterData, mapsUrl, markerIcon, markerPie, matchAggregatedQuery, matchAggregatedValidatedQuery, matchBoolPrefixQuery, matchCountry, matchExactQuery, matchGlobalRegion, matchId, matchNameNormalized, matchNestedKey, matchPhrasePrefixQuery, matchPhraseQuery, matchPrimaryProductQuery, matchQuery, matchRegex, matchRegion, matchTermType, matchType, maxAreaSize, measurementValue, mergeDataWithHeaders, methodTierOrder, migrationErrorMessage, migrationsUrl, missingNodeErrors, modelCount, modelKeyParams, modelParams, models, multiMatchQuery, nestedProperty, nestingEnabled, nestingTypeEnabled, nodeAvailableProperties, nodeById, nodeColours$1 as nodeColours, nodeDataState, nodeDataStates, nodeId, nodeIds, nodeLink, nodeLinkEnabled, nodeLinkTypeEnabled, nodeLogsUrl, nodeQualityScoreColor, nodeQualityScoreLevel, nodeQualityScoreMaxDefault, nodeQualityScoreOrder, nodeSecondaryColours, nodeToAggregationFilename, nodeType, nodeTypeDataState, nodeTypeIcon, nodeTypeIconSchema, nodeUrl, nodeUrlParams, nodeVersion, nodesByState, nodesByType, numberGte, optionsFromGroup, parentKey, parentProperty, parseColor, parseData, parseDataPath, parseLines, parseLogMessage, parseMessage, parseNewValue, pluralize, pointToCoordinates, polygonBounds, polygonToCoordinates, polygonToMap, polygonsFromFeature, populateWithTrackIdsFilterData, postGuideEvent, primaryProduct, productsQuery, propertyError, propertyId, recursiveProperties, refToSchemaType, refreshPropertyKeys, regionsQuery, registerChart, repeat, reportIssueLink, reportIssueUrl, safeJSONParse, safeJSONStringify, schemaBaseUrl, schemaDataBaseUrl, schemaLink, schemaRequiredProperties, schemaTypeToDefaultValue, scrollToEl, scrollTop, searchFilterData, searchableTypes, siblingProperty, singleProperty, siteTooBig, siteTypeToColor, siteTypeToIcon, sortProperties, sortedDates, strokeColor, strokeStyle, suggestMatchQuery, suggestQuery, takeAfterViewInit, termLocation, termLocationName, termProperties, termTypeLabel, toSnakeCase, toThousands, typeToNewProperty, typeaheadFocus, uncapitalize, uniqueDatesBetween, updateProperties, valueLink, valueToString, valueTypeToDefault, valueValue, waitFor, wildcardQuery };
|
|
15339
15455
|
//# sourceMappingURL=hestia-earth-ui-components.mjs.map
|