@aquera/nile-visualization 1.4.0 → 1.6.0
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/dist/src/internal/types/chart-anomaly-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-area-config.type.d.ts +12 -0
- package/dist/src/internal/types/chart-area-negative-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-area-range-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-area-spline-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-bar-config.type.d.ts +12 -0
- package/dist/src/internal/types/chart-bellcurve-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-boxplot-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-bubble-config.type.d.ts +12 -0
- package/dist/src/internal/types/chart-cluster-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-column-config.type.d.ts +12 -0
- package/dist/src/internal/types/chart-column-drilldown-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-column-pyramid-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-column-range-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-donut-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-dumbbell-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-euler-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-fan-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-flame-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-funnel-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-gauge-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-grid-config.type.d.ts +1 -0
- package/dist/src/internal/types/chart-heatmap-config.type.d.ts +12 -0
- package/dist/src/internal/types/chart-histogram-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-line-column-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-line-config.type.d.ts +12 -0
- package/dist/src/internal/types/chart-lollipop-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-map-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-organization-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-pie-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-polygon-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-radar-config.type.d.ts +12 -0
- package/dist/src/internal/types/chart-radial-bar-config.type.d.ts +12 -0
- package/dist/src/internal/types/chart-scatter-config.type.d.ts +12 -0
- package/dist/src/internal/types/chart-spiderweb-config.type.d.ts +12 -0
- package/dist/src/internal/types/chart-spline-config.type.d.ts +12 -0
- package/dist/src/internal/types/chart-stacked-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-timeline-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-trendline-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-variable-pie-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-vector-config.type.d.ts +11 -0
- package/dist/src/internal/types/chart-waterfall-config.type.d.ts +12 -0
- package/dist/src/internal/types/chart-xrange-config.type.d.ts +12 -0
- package/dist/src/nile-anomaly-chart/nile-anomaly-chart.css.js +20 -4
- package/dist/src/nile-anomaly-chart/nile-anomaly-chart.d.ts +12 -0
- package/dist/src/nile-anomaly-chart/nile-anomaly-chart.js +95 -1
- package/dist/src/nile-area-chart/nile-area-chart.css.js +20 -4
- package/dist/src/nile-area-chart/nile-area-chart.d.ts +13 -0
- package/dist/src/nile-area-chart/nile-area-chart.js +107 -3
- package/dist/src/nile-area-negative-chart/nile-area-negative-chart.css.js +20 -4
- package/dist/src/nile-area-negative-chart/nile-area-negative-chart.d.ts +12 -0
- package/dist/src/nile-area-negative-chart/nile-area-negative-chart.js +73 -1
- package/dist/src/nile-area-range-chart/nile-area-range-chart.css.js +20 -4
- package/dist/src/nile-area-range-chart/nile-area-range-chart.d.ts +12 -0
- package/dist/src/nile-area-range-chart/nile-area-range-chart.js +73 -1
- package/dist/src/nile-area-spline-chart/nile-area-spline-chart.css.js +20 -4
- package/dist/src/nile-area-spline-chart/nile-area-spline-chart.d.ts +12 -0
- package/dist/src/nile-area-spline-chart/nile-area-spline-chart.js +73 -1
- package/dist/src/nile-bar-chart/nile-bar-chart.css.js +20 -4
- package/dist/src/nile-bar-chart/nile-bar-chart.d.ts +14 -0
- package/dist/src/nile-bar-chart/nile-bar-chart.js +104 -1
- package/dist/src/nile-bellcurve-chart/nile-bellcurve-chart.css.js +20 -4
- package/dist/src/nile-bellcurve-chart/nile-bellcurve-chart.d.ts +12 -0
- package/dist/src/nile-bellcurve-chart/nile-bellcurve-chart.js +73 -1
- package/dist/src/nile-boxplot-chart/nile-boxplot-chart.css.js +20 -4
- package/dist/src/nile-boxplot-chart/nile-boxplot-chart.d.ts +12 -0
- package/dist/src/nile-boxplot-chart/nile-boxplot-chart.js +73 -1
- package/dist/src/nile-bubble-chart/nile-bubble-chart.css.js +20 -4
- package/dist/src/nile-bubble-chart/nile-bubble-chart.d.ts +13 -0
- package/dist/src/nile-bubble-chart/nile-bubble-chart.js +107 -3
- package/dist/src/nile-chart/nile-chart-config.d.ts +331 -38
- package/dist/src/nile-chart/nile-chart.d.ts +0 -3
- package/dist/src/nile-chart/nile-chart.js +548 -4
- package/dist/src/nile-cluster-chart/nile-cluster-chart.css.js +20 -4
- package/dist/src/nile-cluster-chart/nile-cluster-chart.d.ts +12 -0
- package/dist/src/nile-cluster-chart/nile-cluster-chart.js +73 -1
- package/dist/src/nile-column-chart/nile-column-chart.css.js +20 -4
- package/dist/src/nile-column-chart/nile-column-chart.d.ts +13 -0
- package/dist/src/nile-column-chart/nile-column-chart.js +107 -3
- package/dist/src/nile-column-drilldown-chart/nile-column-drilldown-chart.css.js +20 -4
- package/dist/src/nile-column-drilldown-chart/nile-column-drilldown-chart.d.ts +12 -0
- package/dist/src/nile-column-drilldown-chart/nile-column-drilldown-chart.js +73 -1
- package/dist/src/nile-column-pyramid-chart/nile-column-pyramid-chart.css.js +20 -4
- package/dist/src/nile-column-pyramid-chart/nile-column-pyramid-chart.d.ts +12 -0
- package/dist/src/nile-column-pyramid-chart/nile-column-pyramid-chart.js +73 -1
- package/dist/src/nile-column-range-chart/nile-column-range-chart.css.js +20 -4
- package/dist/src/nile-column-range-chart/nile-column-range-chart.d.ts +12 -0
- package/dist/src/nile-column-range-chart/nile-column-range-chart.js +73 -1
- package/dist/src/nile-dashboard-viewer/nile-dashboard-viewer.css.js +10 -0
- package/dist/src/nile-dashboard-viewer/nile-dashboard-viewer.d.ts +10 -14
- package/dist/src/nile-dashboard-viewer/nile-dashboard-viewer.js +36 -14
- package/dist/src/nile-donut-chart/nile-donut-chart.css.js +20 -4
- package/dist/src/nile-donut-chart/nile-donut-chart.d.ts +12 -0
- package/dist/src/nile-donut-chart/nile-donut-chart.js +99 -2
- package/dist/src/nile-dumbbell-chart/nile-dumbbell-chart.css.js +20 -4
- package/dist/src/nile-dumbbell-chart/nile-dumbbell-chart.d.ts +12 -0
- package/dist/src/nile-dumbbell-chart/nile-dumbbell-chart.js +73 -1
- package/dist/src/nile-dumbbell-lower-chart/nile-dumbbell-lower-chart.css.js +20 -4
- package/dist/src/nile-dumbbell-lower-chart/nile-dumbbell-lower-chart.d.ts +12 -0
- package/dist/src/nile-dumbbell-lower-chart/nile-dumbbell-lower-chart.js +73 -1
- package/dist/src/nile-dumbbell-upper-chart/nile-dumbbell-upper-chart.css.js +20 -4
- package/dist/src/nile-dumbbell-upper-chart/nile-dumbbell-upper-chart.d.ts +12 -0
- package/dist/src/nile-dumbbell-upper-chart/nile-dumbbell-upper-chart.js +73 -1
- package/dist/src/nile-euler-chart/nile-euler-chart.css.js +20 -4
- package/dist/src/nile-euler-chart/nile-euler-chart.d.ts +12 -0
- package/dist/src/nile-euler-chart/nile-euler-chart.js +73 -1
- package/dist/src/nile-fan-chart/nile-fan-chart.css.js +20 -4
- package/dist/src/nile-fan-chart/nile-fan-chart.d.ts +12 -0
- package/dist/src/nile-fan-chart/nile-fan-chart.js +73 -1
- package/dist/src/nile-flame-chart/nile-flame-chart.css.js +20 -4
- package/dist/src/nile-flame-chart/nile-flame-chart.d.ts +12 -0
- package/dist/src/nile-flame-chart/nile-flame-chart.js +73 -1
- package/dist/src/nile-funnel-chart/nile-funnel-chart.css.js +20 -4
- package/dist/src/nile-funnel-chart/nile-funnel-chart.d.ts +12 -0
- package/dist/src/nile-funnel-chart/nile-funnel-chart.js +73 -1
- package/dist/src/nile-gauge-chart/nile-gauge-chart.css.js +20 -4
- package/dist/src/nile-gauge-chart/nile-gauge-chart.d.ts +12 -0
- package/dist/src/nile-gauge-chart/nile-gauge-chart.js +95 -2
- package/dist/src/nile-heatmap-chart/nile-heatmap-chart.css.js +20 -4
- package/dist/src/nile-heatmap-chart/nile-heatmap-chart.d.ts +13 -0
- package/dist/src/nile-heatmap-chart/nile-heatmap-chart.js +79 -2
- package/dist/src/nile-histogram-chart/nile-histogram-chart.css.js +20 -4
- package/dist/src/nile-histogram-chart/nile-histogram-chart.d.ts +12 -0
- package/dist/src/nile-histogram-chart/nile-histogram-chart.js +73 -1
- package/dist/src/nile-inverted-area-chart/nile-inverted-area-chart.css.js +20 -4
- package/dist/src/nile-inverted-area-chart/nile-inverted-area-chart.d.ts +12 -0
- package/dist/src/nile-inverted-area-chart/nile-inverted-area-chart.js +73 -1
- package/dist/src/nile-kpi-chart/nile-kpi-chart.css.d.ts +1 -1
- package/dist/src/nile-kpi-chart/nile-kpi-chart.css.js +54 -33
- package/dist/src/nile-kpi-chart/nile-kpi-chart.d.ts +121 -1
- package/dist/src/nile-kpi-chart/nile-kpi-chart.js +366 -52
- package/dist/src/nile-line-chart/nile-line-chart.css.js +20 -4
- package/dist/src/nile-line-chart/nile-line-chart.d.ts +13 -0
- package/dist/src/nile-line-chart/nile-line-chart.js +103 -3
- package/dist/src/nile-line-column-chart/nile-line-column-chart.css.js +20 -4
- package/dist/src/nile-line-column-chart/nile-line-column-chart.d.ts +12 -0
- package/dist/src/nile-line-column-chart/nile-line-column-chart.js +73 -1
- package/dist/src/nile-lollipop-chart/nile-lollipop-chart.css.js +20 -4
- package/dist/src/nile-lollipop-chart/nile-lollipop-chart.d.ts +12 -0
- package/dist/src/nile-lollipop-chart/nile-lollipop-chart.js +73 -1
- package/dist/src/nile-map-chart/nile-map-chart.css.js +20 -4
- package/dist/src/nile-map-chart/nile-map-chart.d.ts +12 -0
- package/dist/src/nile-map-chart/nile-map-chart.js +95 -1
- package/dist/src/nile-organization-chart/nile-organization-chart.css.js +20 -4
- package/dist/src/nile-organization-chart/nile-organization-chart.d.ts +12 -0
- package/dist/src/nile-organization-chart/nile-organization-chart.js +73 -1
- package/dist/src/nile-pie-chart/nile-pie-chart.css.js +20 -4
- package/dist/src/nile-pie-chart/nile-pie-chart.d.ts +12 -0
- package/dist/src/nile-pie-chart/nile-pie-chart.js +95 -1
- package/dist/src/nile-polygon-chart/nile-polygon-chart.css.js +20 -4
- package/dist/src/nile-polygon-chart/nile-polygon-chart.d.ts +12 -0
- package/dist/src/nile-polygon-chart/nile-polygon-chart.js +73 -1
- package/dist/src/nile-radar-chart/nile-radar-chart.css.js +20 -4
- package/dist/src/nile-radar-chart/nile-radar-chart.d.ts +13 -0
- package/dist/src/nile-radar-chart/nile-radar-chart.js +103 -3
- package/dist/src/nile-radial-bar-chart/nile-radial-bar-chart.css.js +20 -4
- package/dist/src/nile-radial-bar-chart/nile-radial-bar-chart.d.ts +13 -0
- package/dist/src/nile-radial-bar-chart/nile-radial-bar-chart.js +79 -1
- package/dist/src/nile-scatter-chart/nile-scatter-chart.css.js +20 -4
- package/dist/src/nile-scatter-chart/nile-scatter-chart.d.ts +13 -0
- package/dist/src/nile-scatter-chart/nile-scatter-chart.js +103 -3
- package/dist/src/nile-spiderweb-chart/nile-spiderweb-chart.css.js +20 -4
- package/dist/src/nile-spiderweb-chart/nile-spiderweb-chart.d.ts +13 -0
- package/dist/src/nile-spiderweb-chart/nile-spiderweb-chart.js +79 -1
- package/dist/src/nile-spline-chart/nile-spline-chart.css.js +20 -4
- package/dist/src/nile-spline-chart/nile-spline-chart.d.ts +13 -0
- package/dist/src/nile-spline-chart/nile-spline-chart.js +103 -3
- package/dist/src/nile-stacked-chart/nile-stacked-chart.css.js +20 -4
- package/dist/src/nile-stacked-chart/nile-stacked-chart.d.ts +12 -0
- package/dist/src/nile-stacked-chart/nile-stacked-chart.js +73 -1
- package/dist/src/nile-timeline-chart/nile-timeline-chart.css.js +20 -4
- package/dist/src/nile-timeline-chart/nile-timeline-chart.d.ts +13 -1
- package/dist/src/nile-timeline-chart/nile-timeline-chart.js +73 -1
- package/dist/src/nile-trendline-chart/nile-trendline-chart.css.js +20 -4
- package/dist/src/nile-trendline-chart/nile-trendline-chart.d.ts +12 -0
- package/dist/src/nile-trendline-chart/nile-trendline-chart.js +95 -1
- package/dist/src/nile-variable-pie-chart/nile-variable-pie-chart.css.js +20 -4
- package/dist/src/nile-variable-pie-chart/nile-variable-pie-chart.d.ts +12 -0
- package/dist/src/nile-variable-pie-chart/nile-variable-pie-chart.js +73 -1
- package/dist/src/nile-vector-chart/nile-vector-chart.css.js +20 -4
- package/dist/src/nile-vector-chart/nile-vector-chart.d.ts +12 -0
- package/dist/src/nile-vector-chart/nile-vector-chart.js +73 -1
- package/dist/src/nile-waterfall-chart/nile-waterfall-chart.css.js +20 -4
- package/dist/src/nile-waterfall-chart/nile-waterfall-chart.d.ts +13 -0
- package/dist/src/nile-waterfall-chart/nile-waterfall-chart.js +103 -4
- package/dist/src/nile-xrange-chart/nile-xrange-chart.css.js +20 -4
- package/dist/src/nile-xrange-chart/nile-xrange-chart.d.ts +13 -0
- package/dist/src/nile-xrange-chart/nile-xrange-chart.js +79 -1
- package/package.json +1 -1
|
@@ -22,6 +22,40 @@ let NileInvertedAreaChart = class NileInvertedAreaChart extends NileElement {
|
|
|
22
22
|
this.height = '400px';
|
|
23
23
|
this.yAxisTitle = '';
|
|
24
24
|
this.stacked = false;
|
|
25
|
+
// ── Container styling ──
|
|
26
|
+
this.chartBg = '';
|
|
27
|
+
this.chartBorderRadius = '';
|
|
28
|
+
this.chartBorder = '';
|
|
29
|
+
this.chartShadow = '';
|
|
30
|
+
this.chartPadding = '';
|
|
31
|
+
this.chartMinHeight = '';
|
|
32
|
+
// ── Loading ──
|
|
33
|
+
this.loadingText = 'Loading...';
|
|
34
|
+
this.loadingColor = '';
|
|
35
|
+
this.loadingFontSize = '';
|
|
36
|
+
this.loadingFontFamily = '';
|
|
37
|
+
this.loadingBg = '';
|
|
38
|
+
}
|
|
39
|
+
_syncCssVars() {
|
|
40
|
+
const set = (prop, val) => {
|
|
41
|
+
const s = typeof val === 'number'
|
|
42
|
+
? (Number.isFinite(val) ? `${val}px` : '')
|
|
43
|
+
: String(val ?? '').trim();
|
|
44
|
+
if (s)
|
|
45
|
+
this.style.setProperty(prop, s);
|
|
46
|
+
else
|
|
47
|
+
this.style.removeProperty(prop);
|
|
48
|
+
};
|
|
49
|
+
set('--nile-chart-bg', this.chartBg);
|
|
50
|
+
set('--nile-chart-border-radius', this.chartBorderRadius);
|
|
51
|
+
set('--nile-chart-border', this.chartBorder);
|
|
52
|
+
set('--nile-chart-shadow', this.chartShadow);
|
|
53
|
+
set('--nile-chart-padding', this.chartPadding);
|
|
54
|
+
set('--nile-chart-min-height', this.chartMinHeight);
|
|
55
|
+
set('--nile-chart-loading-color', this.loadingColor);
|
|
56
|
+
set('--nile-chart-loading-font-size', this.loadingFontSize);
|
|
57
|
+
set('--nile-chart-loading-font-family', this.loadingFontFamily);
|
|
58
|
+
set('--nile-chart-loading-bg', this.loadingBg);
|
|
25
59
|
}
|
|
26
60
|
connectedCallback() {
|
|
27
61
|
super.connectedCallback();
|
|
@@ -35,6 +69,7 @@ let NileInvertedAreaChart = class NileInvertedAreaChart extends NileElement {
|
|
|
35
69
|
this.resizeObserver = null;
|
|
36
70
|
}
|
|
37
71
|
firstUpdated() {
|
|
72
|
+
this._syncCssVars();
|
|
38
73
|
this.initChart();
|
|
39
74
|
this.setupResizeObserver();
|
|
40
75
|
}
|
|
@@ -54,6 +89,10 @@ let NileInvertedAreaChart = class NileInvertedAreaChart extends NileElement {
|
|
|
54
89
|
'stacked',
|
|
55
90
|
'loading',
|
|
56
91
|
];
|
|
92
|
+
const cssVarProps = ['chartBg', 'chartBorderRadius', 'chartBorder', 'chartShadow', 'chartPadding', 'chartMinHeight',
|
|
93
|
+
'loadingText', 'loadingColor', 'loadingFontSize', 'loadingFontFamily', 'loadingBg'];
|
|
94
|
+
if (cssVarProps.some(p => changedProperties.has(p)))
|
|
95
|
+
this._syncCssVars();
|
|
57
96
|
if (!props.some(p => changedProperties.has(p)))
|
|
58
97
|
return;
|
|
59
98
|
if (this.loading) {
|
|
@@ -127,7 +166,7 @@ let NileInvertedAreaChart = class NileInvertedAreaChart extends NileElement {
|
|
|
127
166
|
}
|
|
128
167
|
render() {
|
|
129
168
|
if (this.loading) {
|
|
130
|
-
return html `<div class="chart-loading" style="height:${this.height}"
|
|
169
|
+
return html `<div class="chart-loading" style="height:${this.height}">${this.loadingText}</div>`;
|
|
131
170
|
}
|
|
132
171
|
return html `<div class="chart-container"></div>`;
|
|
133
172
|
}
|
|
@@ -166,6 +205,39 @@ __decorate([
|
|
|
166
205
|
__decorate([
|
|
167
206
|
property({ type: Boolean })
|
|
168
207
|
], NileInvertedAreaChart.prototype, "stacked", void 0);
|
|
208
|
+
__decorate([
|
|
209
|
+
property({ type: String, attribute: 'chart-bg' })
|
|
210
|
+
], NileInvertedAreaChart.prototype, "chartBg", void 0);
|
|
211
|
+
__decorate([
|
|
212
|
+
property({ type: String, attribute: 'chart-border-radius' })
|
|
213
|
+
], NileInvertedAreaChart.prototype, "chartBorderRadius", void 0);
|
|
214
|
+
__decorate([
|
|
215
|
+
property({ type: String, attribute: 'chart-border' })
|
|
216
|
+
], NileInvertedAreaChart.prototype, "chartBorder", void 0);
|
|
217
|
+
__decorate([
|
|
218
|
+
property({ type: String, attribute: 'chart-shadow' })
|
|
219
|
+
], NileInvertedAreaChart.prototype, "chartShadow", void 0);
|
|
220
|
+
__decorate([
|
|
221
|
+
property({ type: String, attribute: 'chart-padding' })
|
|
222
|
+
], NileInvertedAreaChart.prototype, "chartPadding", void 0);
|
|
223
|
+
__decorate([
|
|
224
|
+
property({ type: String, attribute: 'chart-min-height' })
|
|
225
|
+
], NileInvertedAreaChart.prototype, "chartMinHeight", void 0);
|
|
226
|
+
__decorate([
|
|
227
|
+
property({ type: String, attribute: 'loading-text' })
|
|
228
|
+
], NileInvertedAreaChart.prototype, "loadingText", void 0);
|
|
229
|
+
__decorate([
|
|
230
|
+
property({ type: String, attribute: 'loading-color' })
|
|
231
|
+
], NileInvertedAreaChart.prototype, "loadingColor", void 0);
|
|
232
|
+
__decorate([
|
|
233
|
+
property({ type: String, attribute: 'loading-font-size' })
|
|
234
|
+
], NileInvertedAreaChart.prototype, "loadingFontSize", void 0);
|
|
235
|
+
__decorate([
|
|
236
|
+
property({ type: String, attribute: 'loading-font-family' })
|
|
237
|
+
], NileInvertedAreaChart.prototype, "loadingFontFamily", void 0);
|
|
238
|
+
__decorate([
|
|
239
|
+
property({ type: String, attribute: 'loading-bg' })
|
|
240
|
+
], NileInvertedAreaChart.prototype, "loadingBg", void 0);
|
|
169
241
|
NileInvertedAreaChart = __decorate([
|
|
170
242
|
customElement('nile-inverted-area-chart')
|
|
171
243
|
], NileInvertedAreaChart);
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Global tooltip styles — injected once into document.head so the tooltip
|
|
3
3
|
* element on document.body is styled independently of the shadow DOM.
|
|
4
4
|
*/
|
|
5
|
-
export declare const tooltipCss = "\n .nile-kpi-tooltip {\n position: fixed;\n display: none;\n transform: translate(-50%, calc(-100% - 10px));\n background:
|
|
5
|
+
export declare const tooltipCss = "\n .nile-kpi-tooltip {\n position: fixed;\n display: none;\n transform: translate(-50%, calc(-100% - 10px));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n line-height: 1.4;\n padding: var(--nile-spacing-xs, var(--ng-spacing-xs)) var(--nile-spacing-md, var(--ng-spacing-md));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-sm));\n border: var(--nile-border-width-1, var(--ng-stroke-width-1)) solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n pointer-events: none;\n white-space: nowrap;\n z-index: 2147483647;\n box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-sm));\n }\n\n .nile-kpi-tooltip::after {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: var(--nile-border-size-5, 5px) solid transparent;\n border-top-color: var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n }\n";
|
|
6
6
|
export declare const styles: import("lit").CSSResult;
|
|
@@ -8,18 +8,19 @@ export const tooltipCss = `
|
|
|
8
8
|
position: fixed;
|
|
9
9
|
display: none;
|
|
10
10
|
transform: translate(-50%, calc(-100% - 10px));
|
|
11
|
-
background:
|
|
12
|
-
color:
|
|
13
|
-
font-family:
|
|
14
|
-
font-size:
|
|
15
|
-
font-weight:
|
|
11
|
+
background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
12
|
+
color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
|
|
13
|
+
font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
|
|
14
|
+
font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));
|
|
15
|
+
font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));
|
|
16
16
|
line-height: 1.4;
|
|
17
|
-
padding:
|
|
18
|
-
border-radius:
|
|
17
|
+
padding: var(--nile-spacing-xs, var(--ng-spacing-xs)) var(--nile-spacing-md, var(--ng-spacing-md));
|
|
18
|
+
border-radius: var(--nile-radius-radius-xl, var(--ng-radius-sm));
|
|
19
|
+
border: var(--nile-border-width-1, var(--ng-stroke-width-1)) solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
|
|
19
20
|
pointer-events: none;
|
|
20
21
|
white-space: nowrap;
|
|
21
22
|
z-index: 2147483647;
|
|
22
|
-
box-shadow:
|
|
23
|
+
box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-sm));
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
.nile-kpi-tooltip::after {
|
|
@@ -28,12 +29,33 @@ export const tooltipCss = `
|
|
|
28
29
|
top: 100%;
|
|
29
30
|
left: 50%;
|
|
30
31
|
transform: translateX(-50%);
|
|
31
|
-
border: 5px solid transparent;
|
|
32
|
-
border-top-color:
|
|
32
|
+
border: var(--nile-border-size-5, 5px) solid transparent;
|
|
33
|
+
border-top-color: var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
|
|
33
34
|
}
|
|
34
35
|
`;
|
|
35
36
|
export const styles = css `
|
|
36
37
|
:host {
|
|
38
|
+
--nile-kpi-card-bg: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
39
|
+
--nile-kpi-card-border-color: var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
|
|
40
|
+
--nile-kpi-card-border-width: var(--nile-border-width-1, var(--ng-stroke-width-1));
|
|
41
|
+
--nile-kpi-card-border-radius: var(--nile-radius-radius-3xl, var(--ng-radius-xl));
|
|
42
|
+
--nile-kpi-card-shadow: var(--nile-box-shadow-3, var(--ng-shadow-sm));
|
|
43
|
+
--nile-kpi-card-shadow-hover: var(--nile-kpi-card-shadow, var(--nile-box-shadow-7, var(--ng-shadow-md)));
|
|
44
|
+
--nile-kpi-padding-v: var(--nile-spacing-2xl, var(--ng-spacing-2xl));
|
|
45
|
+
--nile-kpi-padding-h: var(--nile-spacing-3xl, var(--ng-spacing-3xl));
|
|
46
|
+
--nile-kpi-content-gap: var(--nile-spacing-md, var(--ng-spacing-md));
|
|
47
|
+
--nile-kpi-label-color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
|
|
48
|
+
--nile-kpi-label-font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));
|
|
49
|
+
--nile-kpi-label-font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));
|
|
50
|
+
--nile-kpi-value-font-size: clamp(1.25rem, 2.5vw + 0.75rem, 36px);
|
|
51
|
+
--nile-kpi-value-color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
|
|
52
|
+
--nile-kpi-prefix-suffix-font-size: var(--nile-type-scale-6, var(--ng-font-size-text-xl));
|
|
53
|
+
--nile-kpi-prefix-suffix-color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
|
|
54
|
+
--nile-kpi-trend-up-color: var(--nile-colors-success-700, var(--ng-color-success-700));
|
|
55
|
+
--nile-kpi-trend-down-color: var(--nile-colors-error-700, var(--ng-color-error-700));
|
|
56
|
+
--nile-kpi-trend-neutral-color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
|
|
57
|
+
--nile-kpi-description-font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));
|
|
58
|
+
--nile-kpi-description-color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
|
|
37
59
|
display: flex;
|
|
38
60
|
flex-direction: column;
|
|
39
61
|
width: 100%;
|
|
@@ -48,32 +70,32 @@ export const styles = css `
|
|
|
48
70
|
/* Card / gauge chrome on the host when used alone (inside nile-chart, embed-in-nile-chart skips this). */
|
|
49
71
|
:host([variant='card']:not([embed-in-nile-chart])),
|
|
50
72
|
:host([variant='gauge']:not([embed-in-nile-chart])) {
|
|
51
|
-
background:
|
|
52
|
-
border: var(--nile-
|
|
53
|
-
border-radius: var(--nile-
|
|
54
|
-
box-shadow: var(--nile-
|
|
73
|
+
background: var(--nile-kpi-card-bg);
|
|
74
|
+
border: var(--nile-kpi-card-border-width) solid var(--nile-kpi-card-border-color);
|
|
75
|
+
border-radius: var(--nile-kpi-card-border-radius);
|
|
76
|
+
box-shadow: var(--nile-kpi-card-shadow);
|
|
55
77
|
transition: box-shadow var(--nile-transition-duration-default, var(--ng-transition-duration-default)) ease;
|
|
56
78
|
}
|
|
57
79
|
|
|
58
80
|
:host([variant='card']:not([embed-in-nile-chart]):hover),
|
|
59
81
|
:host([variant='gauge']:not([embed-in-nile-chart]):hover) {
|
|
60
|
-
box-shadow: var(--nile-
|
|
82
|
+
box-shadow: var(--nile-kpi-card-shadow-hover);
|
|
61
83
|
}
|
|
62
84
|
|
|
63
85
|
.kpi {
|
|
64
86
|
flex: 1 1 auto;
|
|
65
87
|
display: flex;
|
|
66
88
|
flex-direction: column;
|
|
67
|
-
gap: var(--nile-
|
|
68
|
-
padding: var(--nile-
|
|
89
|
+
gap: var(--nile-kpi-content-gap);
|
|
90
|
+
padding: var(--nile-kpi-padding-v) var(--nile-kpi-padding-h);
|
|
69
91
|
}
|
|
70
92
|
|
|
71
93
|
.kpi-label {
|
|
72
94
|
margin: 0;
|
|
73
95
|
font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
|
|
74
|
-
font-size: var(--nile-
|
|
75
|
-
font-weight: var(--nile-
|
|
76
|
-
color: var(--nile-
|
|
96
|
+
font-size: var(--nile-kpi-label-font-size);
|
|
97
|
+
font-weight: var(--nile-kpi-label-font-weight);
|
|
98
|
+
color: var(--nile-kpi-label-color);
|
|
77
99
|
line-height: 1.4;
|
|
78
100
|
}
|
|
79
101
|
|
|
@@ -87,9 +109,9 @@ export const styles = css `
|
|
|
87
109
|
.kpi-value {
|
|
88
110
|
margin: 0;
|
|
89
111
|
font-family: var(--nile-font-family-serif-colfax-medium, var(--ng-font-family-display));
|
|
90
|
-
font-size:
|
|
112
|
+
font-size: var(--nile-kpi-value-font-size);
|
|
91
113
|
font-weight: var(--nile-font-weight-semi-bold, var(--ng-font-weight-semibold));
|
|
92
|
-
color: var(--nile-
|
|
114
|
+
color: var(--nile-kpi-value-color);
|
|
93
115
|
line-height: 1.2;
|
|
94
116
|
cursor: default;
|
|
95
117
|
}
|
|
@@ -97,9 +119,9 @@ export const styles = css `
|
|
|
97
119
|
.kpi-prefix,
|
|
98
120
|
.kpi-suffix {
|
|
99
121
|
font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
|
|
100
|
-
font-size: var(--nile-
|
|
122
|
+
font-size: var(--nile-kpi-prefix-suffix-font-size);
|
|
101
123
|
font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));
|
|
102
|
-
color: var(--nile-
|
|
124
|
+
color: var(--nile-kpi-prefix-suffix-color);
|
|
103
125
|
}
|
|
104
126
|
|
|
105
127
|
.kpi-trend {
|
|
@@ -116,23 +138,23 @@ export const styles = css `
|
|
|
116
138
|
|
|
117
139
|
.kpi-trend--up {
|
|
118
140
|
background: none;
|
|
119
|
-
color: var(--nile-
|
|
141
|
+
color: var(--nile-kpi-trend-up-color);
|
|
120
142
|
}
|
|
121
143
|
|
|
122
144
|
.kpi-trend--down {
|
|
123
145
|
background: none;
|
|
124
|
-
color: var(--nile-
|
|
146
|
+
color: var(--nile-kpi-trend-down-color);
|
|
125
147
|
}
|
|
126
148
|
|
|
127
149
|
.kpi-trend--neutral {
|
|
128
150
|
background: none;
|
|
129
|
-
color: var(--nile-
|
|
151
|
+
color: var(--nile-kpi-trend-neutral-color);
|
|
130
152
|
}
|
|
131
153
|
|
|
132
154
|
.kpi-trend-arrow {
|
|
133
155
|
display: inline-flex;
|
|
134
|
-
width: 12px;
|
|
135
|
-
height: 12px;
|
|
156
|
+
width: var(--nile-width-12px, 12px);
|
|
157
|
+
height: var(--nile-height-12px, 12px);
|
|
136
158
|
}
|
|
137
159
|
|
|
138
160
|
.kpi-trend-arrow svg {
|
|
@@ -144,8 +166,8 @@ export const styles = css `
|
|
|
144
166
|
.kpi-description {
|
|
145
167
|
margin: 0;
|
|
146
168
|
font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
|
|
147
|
-
font-size: var(--nile-
|
|
148
|
-
color: var(--nile-
|
|
169
|
+
font-size: var(--nile-kpi-description-font-size);
|
|
170
|
+
color: var(--nile-kpi-description-color);
|
|
149
171
|
line-height: 1.5;
|
|
150
172
|
}
|
|
151
173
|
|
|
@@ -193,11 +215,10 @@ export const styles = css `
|
|
|
193
215
|
/* ── Loading state ── */
|
|
194
216
|
|
|
195
217
|
.chart-loading {
|
|
196
|
-
flex:
|
|
218
|
+
flex: 0 0 auto;
|
|
197
219
|
display: flex;
|
|
198
220
|
align-items: center;
|
|
199
221
|
justify-content: center;
|
|
200
|
-
min-height: var(--nile-height-200px, var(--ng-height-200px));
|
|
201
222
|
color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
|
|
202
223
|
font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
|
|
203
224
|
font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));
|
|
@@ -4,6 +4,7 @@ import NileElement from '../internal/nile-element.js';
|
|
|
4
4
|
import type { AqConfigType } from '../internal/types/aq-config.type.js';
|
|
5
5
|
export type TrendDirection = 'up' | 'down' | 'neutral';
|
|
6
6
|
export type KpiVariant = 'default' | 'card' | 'gauge';
|
|
7
|
+
export type SparklineType = 'area' | 'line';
|
|
7
8
|
/** `chart` slice for `<nile-kpi-chart>.config` (discriminated by `type: 'kpi'`). */
|
|
8
9
|
export interface ChartKpiSeparatedPayload {
|
|
9
10
|
type: 'kpi';
|
|
@@ -18,10 +19,69 @@ export interface ChartKpiSeparatedPayload {
|
|
|
18
19
|
description?: string;
|
|
19
20
|
sparkline?: number[];
|
|
20
21
|
sparklineColor?: string;
|
|
22
|
+
/** Sparkline chart height in pixels (default: 48). */
|
|
23
|
+
sparklineHeight?: number;
|
|
24
|
+
/** Sparkline stroke width (default: 2). */
|
|
25
|
+
sparklineLineWidth?: number;
|
|
26
|
+
/** Sparkline series type: 'area' (filled) or 'line' (default: 'area'). */
|
|
27
|
+
sparklineType?: SparklineType;
|
|
28
|
+
/** Fill area opacity 0–1 (default: 0.2). Only applies when sparklineType is 'area'. */
|
|
29
|
+
sparklineFillOpacity?: number;
|
|
30
|
+
/** Show data-point markers on the sparkline (default: false). */
|
|
31
|
+
sparklineMarkers?: boolean;
|
|
21
32
|
gaugeValue?: number;
|
|
22
33
|
gaugeMin?: number;
|
|
23
34
|
gaugeMax?: number;
|
|
24
35
|
gaugeColor?: string;
|
|
36
|
+
/** Background track color for the gauge ring (default: '#E5E7EB'). */
|
|
37
|
+
gaugeTrackColor?: string;
|
|
38
|
+
/** Gauge start angle in degrees (default: 0 = full circle). */
|
|
39
|
+
gaugeStartAngle?: number;
|
|
40
|
+
/** Gauge end angle in degrees (default: 360 = full circle). */
|
|
41
|
+
gaugeEndAngle?: number;
|
|
42
|
+
/** Inner radius of the gauge arc as a percentage string (default: '80%'). */
|
|
43
|
+
gaugeInnerRadius?: string;
|
|
44
|
+
/** Whether gauge arc ends are rounded (default: true). */
|
|
45
|
+
gaugeRounded?: boolean;
|
|
46
|
+
/** Font size of the center data label inside the gauge (default: 28). */
|
|
47
|
+
gaugeLabelFontSize?: string | number;
|
|
48
|
+
/** Text color of the center data label inside the gauge (default: '#101828'). */
|
|
49
|
+
gaugeLabelColor?: string;
|
|
50
|
+
/** Font weight of the center data label inside the gauge (default: 600). */
|
|
51
|
+
gaugeLabelFontWeight?: string | number;
|
|
52
|
+
/** Vertical offset of the center data label in pixels (default: -25). */
|
|
53
|
+
gaugeLabelYOffset?: number;
|
|
54
|
+
/** Height of the gauge chart in pixels (default: 160). */
|
|
55
|
+
gaugeHeight?: number;
|
|
56
|
+
/** Outer radius of the gauge arc as a percentage string (default: '100%'). */
|
|
57
|
+
gaugeOuterRadius?: string;
|
|
58
|
+
/** Override the KPI value font size (e.g. '48px', '2rem'). */
|
|
59
|
+
valueFontSize?: string | number;
|
|
60
|
+
/** Override the KPI value text color. */
|
|
61
|
+
valueColor?: string;
|
|
62
|
+
/** Custom text shown in the loading state (default: 'Loading...'). */
|
|
63
|
+
loadingText?: string;
|
|
64
|
+
/** Whether the hover tooltip is shown on value / sparkline / gauge (default: true). */
|
|
65
|
+
tooltipEnabled?: boolean;
|
|
66
|
+
cardBackground?: string;
|
|
67
|
+
cardBorderColor?: string;
|
|
68
|
+
cardBorderWidth?: string | number;
|
|
69
|
+
cardBorderRadius?: string | number;
|
|
70
|
+
cardShadow?: string;
|
|
71
|
+
cardShadowHover?: string;
|
|
72
|
+
cardPaddingVertical?: string | number;
|
|
73
|
+
cardPaddingHorizontal?: string | number;
|
|
74
|
+
contentGap?: string | number;
|
|
75
|
+
labelColor?: string;
|
|
76
|
+
labelFontSize?: string | number;
|
|
77
|
+
labelFontWeight?: string | number;
|
|
78
|
+
descriptionColor?: string;
|
|
79
|
+
descriptionFontSize?: string | number;
|
|
80
|
+
prefixSuffixColor?: string;
|
|
81
|
+
prefixSuffixFontSize?: string | number;
|
|
82
|
+
trendUpColor?: string;
|
|
83
|
+
trendDownColor?: string;
|
|
84
|
+
trendNeutralColor?: string;
|
|
25
85
|
loading?: boolean;
|
|
26
86
|
options?: Highcharts.Options;
|
|
27
87
|
/** Box size when a height is set (host min-height and height). */
|
|
@@ -33,7 +93,7 @@ export interface NileKpiConfigInputType {
|
|
|
33
93
|
aq?: AqConfigType;
|
|
34
94
|
}
|
|
35
95
|
export interface KpiConfig {
|
|
36
|
-
label
|
|
96
|
+
label?: string;
|
|
37
97
|
value: number | string;
|
|
38
98
|
prefix?: string;
|
|
39
99
|
suffix?: string;
|
|
@@ -79,6 +139,16 @@ export declare class NileKpiChart extends NileElement {
|
|
|
79
139
|
sparkline: number[];
|
|
80
140
|
/** Color for the sparkline. */
|
|
81
141
|
sparklineColor: string;
|
|
142
|
+
/** Sparkline chart height in pixels. */
|
|
143
|
+
sparklineHeight: number;
|
|
144
|
+
/** Sparkline stroke width. */
|
|
145
|
+
sparklineLineWidth: number;
|
|
146
|
+
/** Sparkline series type: 'area' (filled) or 'line'. */
|
|
147
|
+
sparklineType: SparklineType;
|
|
148
|
+
/** Fill area opacity 0–1. Only applies when sparklineType is 'area'. */
|
|
149
|
+
sparklineFillOpacity: number;
|
|
150
|
+
/** Show data-point markers on the sparkline. */
|
|
151
|
+
sparklineMarkers: boolean;
|
|
82
152
|
/** Gauge: the numeric value (0-100 by default). */
|
|
83
153
|
gaugeValue: number;
|
|
84
154
|
/** Gauge: minimum value. */
|
|
@@ -87,6 +157,55 @@ export declare class NileKpiChart extends NileElement {
|
|
|
87
157
|
gaugeMax: number;
|
|
88
158
|
/** Gauge: ring color. Falls back to brand color. */
|
|
89
159
|
gaugeColor: string;
|
|
160
|
+
/** Gauge: background track color. */
|
|
161
|
+
gaugeTrackColor: string;
|
|
162
|
+
/** Gauge: start angle in degrees (0 = full circle start). */
|
|
163
|
+
gaugeStartAngle: number;
|
|
164
|
+
/** Gauge: end angle in degrees (360 = full circle). */
|
|
165
|
+
gaugeEndAngle: number;
|
|
166
|
+
/** Gauge: inner radius as percentage string (controls ring thickness). */
|
|
167
|
+
gaugeInnerRadius: string;
|
|
168
|
+
/** Gauge: whether arc ends are rounded. */
|
|
169
|
+
gaugeRounded: boolean;
|
|
170
|
+
/** Gauge: font size for the center data label. */
|
|
171
|
+
gaugeLabelFontSize: string | number;
|
|
172
|
+
/** Gauge: text color for the center data label. */
|
|
173
|
+
gaugeLabelColor: string;
|
|
174
|
+
/** Gauge: font weight for the center data label. */
|
|
175
|
+
gaugeLabelFontWeight: string | number;
|
|
176
|
+
/** Gauge: vertical offset of the center data label in pixels. */
|
|
177
|
+
gaugeLabelYOffset: number;
|
|
178
|
+
/** Gauge: chart height in pixels. */
|
|
179
|
+
gaugeHeight: number;
|
|
180
|
+
/** Gauge: outer radius of the arc as a percentage string. */
|
|
181
|
+
gaugeOuterRadius: string;
|
|
182
|
+
/** Override the KPI value font size (e.g. '48px', '2rem'). */
|
|
183
|
+
valueFontSize: string | number;
|
|
184
|
+
/** Override the KPI value text color. */
|
|
185
|
+
valueColor: string;
|
|
186
|
+
/** Custom text shown in the loading state. */
|
|
187
|
+
loadingText: string;
|
|
188
|
+
/** Whether the hover tooltip is shown on value / sparkline / gauge. */
|
|
189
|
+
tooltipEnabled: boolean;
|
|
190
|
+
cardBackground: string;
|
|
191
|
+
cardBorderColor: string;
|
|
192
|
+
cardBorderWidth: string | number;
|
|
193
|
+
cardBorderRadius: string | number;
|
|
194
|
+
cardShadow: string;
|
|
195
|
+
cardShadowHover: string;
|
|
196
|
+
cardPaddingVertical: string | number;
|
|
197
|
+
cardPaddingHorizontal: string | number;
|
|
198
|
+
contentGap: string | number;
|
|
199
|
+
labelColor: string;
|
|
200
|
+
labelFontSize: string | number;
|
|
201
|
+
labelFontWeight: string | number;
|
|
202
|
+
descriptionColor: string;
|
|
203
|
+
descriptionFontSize: string | number;
|
|
204
|
+
prefixSuffixColor: string;
|
|
205
|
+
prefixSuffixFontSize: string | number;
|
|
206
|
+
trendUpColor: string;
|
|
207
|
+
trendDownColor: string;
|
|
208
|
+
trendNeutralColor: string;
|
|
90
209
|
/** Whether the component is in a loading state. */
|
|
91
210
|
loading: boolean;
|
|
92
211
|
/** Highcharts options override for the sparkline or gauge. */
|
|
@@ -98,6 +217,7 @@ export declare class NileKpiChart extends NileElement {
|
|
|
98
217
|
private _createTipEl;
|
|
99
218
|
private _showTip;
|
|
100
219
|
private _hideTip;
|
|
220
|
+
private _syncCssVars;
|
|
101
221
|
private formatCssLength;
|
|
102
222
|
private parseNumericValue;
|
|
103
223
|
private formatTooltipNumber;
|