@aquera/nile-visualization 0.3.0 → 0.5.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.
Files changed (50) hide show
  1. package/dist/src/index.d.ts +8 -2
  2. package/dist/src/index.js +3 -0
  3. package/dist/src/internal/chart-adapters.js +86 -0
  4. package/dist/src/internal/highcharts-provider.js +27 -0
  5. package/dist/src/internal/types/all-chart-config.type.d.ts +2 -4
  6. package/dist/src/internal/types/chart-config.type.d.ts +3 -2
  7. package/dist/src/internal/types/chart-donut-config.type.d.ts +2 -0
  8. package/dist/src/internal/types/chart-heatmap-config.type.d.ts +19 -0
  9. package/dist/src/internal/types/chart-heatmap-config.type.js +2 -0
  10. package/dist/src/internal/types/chart-kpi-config.type.d.ts +5 -21
  11. package/dist/src/internal/types/chart-line-column-config.type.d.ts +14 -0
  12. package/dist/src/internal/types/chart-line-column-config.type.js +2 -0
  13. package/dist/src/internal/types/chart-organization-config.type.d.ts +13 -0
  14. package/dist/src/internal/types/chart-organization-config.type.js +2 -0
  15. package/dist/src/internal/types/index.d.ts +4 -1
  16. package/dist/src/internal/types/primitive-chart-config.type.d.ts +5 -1
  17. package/dist/src/nile-ai-panel/nile-ai-panel.css.js +8 -0
  18. package/dist/src/nile-ai-panel/nile-ai-panel.d.ts +2 -0
  19. package/dist/src/nile-ai-panel/nile-ai-panel.js +8 -0
  20. package/dist/src/nile-bellcurve-chart/nile-bellcurve-chart.js +3 -1
  21. package/dist/src/nile-chart/index.d.ts +2 -2
  22. package/dist/src/nile-chart/nile-chart-config.d.ts +39 -96
  23. package/dist/src/nile-chart/nile-chart.css.js +31 -6
  24. package/dist/src/nile-chart/nile-chart.d.ts +48 -7
  25. package/dist/src/nile-chart/nile-chart.js +527 -54
  26. package/dist/src/nile-donut-chart/nile-donut-chart.d.ts +2 -0
  27. package/dist/src/nile-donut-chart/nile-donut-chart.js +16 -1
  28. package/dist/src/nile-heatmap-chart/index.d.ts +2 -0
  29. package/dist/src/nile-heatmap-chart/index.js +2 -0
  30. package/dist/src/nile-heatmap-chart/nile-heatmap-chart.css.d.ts +1 -0
  31. package/dist/src/nile-heatmap-chart/nile-heatmap-chart.css.js +28 -0
  32. package/dist/src/nile-heatmap-chart/nile-heatmap-chart.d.ts +49 -0
  33. package/dist/src/nile-heatmap-chart/nile-heatmap-chart.js +259 -0
  34. package/dist/src/nile-histogram-chart/nile-histogram-chart.js +3 -1
  35. package/dist/src/nile-kpi-chart/nile-kpi-chart.css.js +4 -4
  36. package/dist/src/nile-kpi-chart/nile-kpi-chart.d.ts +2 -0
  37. package/dist/src/nile-kpi-chart/nile-kpi-chart.js +6 -0
  38. package/dist/src/nile-line-column-chart/index.d.ts +2 -0
  39. package/dist/src/nile-line-column-chart/index.js +2 -0
  40. package/dist/src/nile-line-column-chart/nile-line-column-chart.css.d.ts +1 -0
  41. package/dist/src/nile-line-column-chart/nile-line-column-chart.css.js +28 -0
  42. package/dist/src/nile-line-column-chart/nile-line-column-chart.d.ts +42 -0
  43. package/dist/src/nile-line-column-chart/nile-line-column-chart.js +205 -0
  44. package/dist/src/nile-organization-chart/index.d.ts +2 -0
  45. package/dist/src/nile-organization-chart/index.js +2 -0
  46. package/dist/src/nile-organization-chart/nile-organization-chart.css.d.ts +1 -0
  47. package/dist/src/nile-organization-chart/nile-organization-chart.css.js +28 -0
  48. package/dist/src/nile-organization-chart/nile-organization-chart.d.ts +57 -0
  49. package/dist/src/nile-organization-chart/nile-organization-chart.js +206 -0
  50. package/package.json +4 -1
@@ -22,6 +22,8 @@ export declare class NileDonutChart extends NileElement {
22
22
  data: DonutChartSeriesData[];
23
23
  seriesName: string;
24
24
  innerSize: string;
25
+ /** Renders a 180° arc (semi-circle) suitable for KPI-style gauges. */
26
+ semiCircle: boolean;
25
27
  options: Highcharts.Options;
26
28
  loading: boolean;
27
29
  height: string;
@@ -18,6 +18,8 @@ let NileDonutChart = class NileDonutChart extends NileElement {
18
18
  this.data = [];
19
19
  this.seriesName = '';
20
20
  this.innerSize = '50%';
21
+ /** Renders a 180° arc (semi-circle) suitable for KPI-style gauges. */
22
+ this.semiCircle = false;
21
23
  this.options = {};
22
24
  this.loading = false;
23
25
  this.height = '400px';
@@ -35,6 +37,8 @@ let NileDonutChart = class NileDonutChart extends NileElement {
35
37
  this.seriesName = donut.seriesName;
36
38
  if (donut.innerSize)
37
39
  this.innerSize = donut.innerSize;
40
+ if (donut.semiCircle !== undefined)
41
+ this.semiCircle = donut.semiCircle;
38
42
  if (donut.height)
39
43
  this.height = donut.height;
40
44
  if (donut.loading !== undefined)
@@ -70,7 +74,7 @@ let NileDonutChart = class NileDonutChart extends NileElement {
70
74
  this.applyConfig(this.config);
71
75
  return;
72
76
  }
73
- const props = ['data', 'chartTitle', 'chartSubtitle', 'options', 'height', 'seriesName', 'innerSize', 'loading', 'showDataLabels', 'showLegend'];
77
+ const props = ['data', 'chartTitle', 'chartSubtitle', 'options', 'height', 'seriesName', 'innerSize', 'semiCircle', 'loading', 'showDataLabels', 'showLegend'];
74
78
  if (!props.some(p => changedProperties.has(p)))
75
79
  return;
76
80
  if (this.loading) {
@@ -101,6 +105,14 @@ let NileDonutChart = class NileDonutChart extends NileElement {
101
105
  plotOptions: {
102
106
  pie: {
103
107
  innerSize: this.innerSize,
108
+ ...(this.semiCircle
109
+ ? {
110
+ startAngle: -90,
111
+ endAngle: 90,
112
+ center: ['50%', '80%'],
113
+ size: '120%',
114
+ }
115
+ : {}),
104
116
  allowPointSelect: true,
105
117
  cursor: 'pointer',
106
118
  dataLabels: { enabled: this.showDataLabels, format: '<b>{point.name}</b>: {point.percentage:.1f} %' },
@@ -152,6 +164,9 @@ __decorate([
152
164
  __decorate([
153
165
  property({ type: String, attribute: 'inner-size' })
154
166
  ], NileDonutChart.prototype, "innerSize", void 0);
167
+ __decorate([
168
+ property({ type: Boolean, attribute: 'semi-circle' })
169
+ ], NileDonutChart.prototype, "semiCircle", void 0);
155
170
  __decorate([
156
171
  property({ type: Object })
157
172
  ], NileDonutChart.prototype, "options", void 0);
@@ -0,0 +1,2 @@
1
+ export { NileHeatmapChart } from './nile-heatmap-chart.js';
2
+ export type { HeatmapCell } from './nile-heatmap-chart.js';
@@ -0,0 +1,2 @@
1
+ export { NileHeatmapChart } from './nile-heatmap-chart.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,28 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ display: block;
5
+ width: 100%;
6
+ position: relative;
7
+ }
8
+
9
+ :host([hidden]) {
10
+ display: none;
11
+ }
12
+
13
+ .chart-container {
14
+ width: 100%;
15
+ min-height: var(--nile-height-200px, var(--ng-height-200px));
16
+ }
17
+
18
+ .chart-loading {
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: center;
22
+ min-height: inherit;
23
+ color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
24
+ font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
25
+ font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));
26
+ }
27
+ `;
28
+ //# sourceMappingURL=nile-heatmap-chart.css.js.map
@@ -0,0 +1,49 @@
1
+ import type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
2
+ import type Highcharts from 'highcharts';
3
+ import NileElement from '../internal/nile-element.js';
4
+ import type { SeparatedChartConfigInputType } from '../internal/types/separated-chart-config-input.type.js';
5
+ /** One cell: x/y are 0-based indices into `xCategories` / `yCategories`. */
6
+ export interface HeatmapCell {
7
+ x: number;
8
+ y: number;
9
+ value: number;
10
+ }
11
+ export declare class NileHeatmapChart extends NileElement {
12
+ static styles: CSSResultGroup;
13
+ private _hc;
14
+ private chart;
15
+ private resizeObserver;
16
+ private chartContainer;
17
+ config: SeparatedChartConfigInputType | null;
18
+ chartTitle: string;
19
+ chartSubtitle: string;
20
+ xCategories: string[];
21
+ yCategories: string[];
22
+ data: HeatmapCell[];
23
+ seriesName: string;
24
+ colorMin: number | null;
25
+ colorMax: number | null;
26
+ minColor: string;
27
+ maxColor: string;
28
+ colorAxisTitle: string;
29
+ options: Highcharts.Options;
30
+ loading: boolean;
31
+ height: string;
32
+ showDataLabels: boolean;
33
+ private applyConfig;
34
+ connectedCallback(): void;
35
+ disconnectedCallback(): void;
36
+ protected firstUpdated(): void;
37
+ protected updated(changedProperties: PropertyValues): void;
38
+ private setupResizeObserver;
39
+ private valueExtent;
40
+ private buildOptions;
41
+ private initChart;
42
+ private destroyChart;
43
+ render(): TemplateResult;
44
+ }
45
+ declare global {
46
+ interface HTMLElementTagNameMap {
47
+ 'nile-heatmap-chart': NileHeatmapChart;
48
+ }
49
+ }
@@ -0,0 +1,259 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement, property, query } from 'lit/decorators.js';
3
+ import { html } from 'lit';
4
+ import { getHighcharts } from '../internal/highcharts-provider.js';
5
+ import NileElement from '../internal/nile-element.js';
6
+ import { applySeparatedChartConfig } from '../internal/separated-chart-config.js';
7
+ import { deepMerge } from '../internal/utils.js';
8
+ import { styles } from './nile-heatmap-chart.css.js';
9
+ let NileHeatmapChart = class NileHeatmapChart extends NileElement {
10
+ constructor() {
11
+ super(...arguments);
12
+ this._hc = null;
13
+ this.chart = null;
14
+ this.resizeObserver = null;
15
+ this.config = null;
16
+ this.chartTitle = '';
17
+ this.chartSubtitle = '';
18
+ this.xCategories = [];
19
+ this.yCategories = [];
20
+ this.data = [];
21
+ this.seriesName = '';
22
+ this.colorMin = null;
23
+ this.colorMax = null;
24
+ this.minColor = '#ffffff';
25
+ this.maxColor = '#1e40af';
26
+ this.colorAxisTitle = '';
27
+ this.options = {};
28
+ this.loading = false;
29
+ this.height = '400px';
30
+ this.showDataLabels = true;
31
+ }
32
+ applyConfig(cfg) {
33
+ applySeparatedChartConfig(this, cfg);
34
+ }
35
+ connectedCallback() {
36
+ super.connectedCallback();
37
+ if (this.config)
38
+ this.applyConfig(this.config);
39
+ }
40
+ disconnectedCallback() {
41
+ super.disconnectedCallback();
42
+ this.destroyChart();
43
+ this.resizeObserver?.disconnect();
44
+ this.resizeObserver = null;
45
+ }
46
+ firstUpdated() {
47
+ this.initChart();
48
+ this.setupResizeObserver();
49
+ }
50
+ updated(changedProperties) {
51
+ if (changedProperties.has('config') && this.config) {
52
+ this.applyConfig(this.config);
53
+ return;
54
+ }
55
+ const props = [
56
+ 'xCategories',
57
+ 'yCategories',
58
+ 'data',
59
+ 'chartTitle',
60
+ 'chartSubtitle',
61
+ 'seriesName',
62
+ 'colorMin',
63
+ 'colorMax',
64
+ 'minColor',
65
+ 'maxColor',
66
+ 'colorAxisTitle',
67
+ 'options',
68
+ 'height',
69
+ 'loading',
70
+ 'showDataLabels',
71
+ ];
72
+ if (!props.some(p => changedProperties.has(p)))
73
+ return;
74
+ if (this.loading) {
75
+ this.destroyChart();
76
+ return;
77
+ }
78
+ if (this.chart) {
79
+ this.chart.update(this.buildOptions(), true, true);
80
+ }
81
+ else {
82
+ this.initChart();
83
+ }
84
+ }
85
+ setupResizeObserver() {
86
+ if (!this.chartContainer)
87
+ return;
88
+ this.resizeObserver = new ResizeObserver(() => {
89
+ this.chart?.reflow();
90
+ });
91
+ this.resizeObserver.observe(this.chartContainer);
92
+ }
93
+ valueExtent() {
94
+ if (this.data.length === 0)
95
+ return { min: 0, max: 1 };
96
+ let min = this.data[0].value;
97
+ let max = min;
98
+ for (const c of this.data) {
99
+ if (c.value < min)
100
+ min = c.value;
101
+ if (c.value > max)
102
+ max = c.value;
103
+ }
104
+ if (min === max)
105
+ max = min + 1;
106
+ return { min, max };
107
+ }
108
+ buildOptions() {
109
+ const self = this;
110
+ const ext = this.valueExtent();
111
+ const cMin = this.colorMin ?? ext.min;
112
+ const cMax = this.colorMax ?? ext.max;
113
+ const seriesData = this.data.map(c => [c.x, c.y, c.value]);
114
+ return deepMerge({
115
+ chart: { type: 'heatmap', height: this.height },
116
+ title: { text: this.chartTitle || undefined },
117
+ subtitle: { text: this.chartSubtitle || undefined },
118
+ xAxis: { categories: this.xCategories, title: { text: undefined } },
119
+ yAxis: {
120
+ categories: this.yCategories,
121
+ title: { text: undefined },
122
+ reversed: true,
123
+ },
124
+ colorAxis: {
125
+ min: cMin,
126
+ max: cMax,
127
+ minColor: this.minColor,
128
+ maxColor: this.maxColor,
129
+ title: { text: this.colorAxisTitle || undefined },
130
+ },
131
+ legend: { align: 'right', layout: 'vertical', verticalAlign: 'top' },
132
+ tooltip: {
133
+ formatter() {
134
+ const p = this.point;
135
+ if (!p)
136
+ return false;
137
+ const x = p.x;
138
+ const y = p.y;
139
+ const xCat = self.xCategories[x] ?? String(x);
140
+ const yCat = self.yCategories[y] ?? String(y);
141
+ const val = p.value;
142
+ return `<b>${yCat}</b> · ${xCat}<br/>Value: <b>${val ?? ''}</b>`;
143
+ },
144
+ },
145
+ plotOptions: {
146
+ heatmap: {
147
+ dataLabels: { enabled: this.showDataLabels },
148
+ borderWidth: 1,
149
+ borderColor: '#e2e8f0',
150
+ },
151
+ series: {
152
+ cursor: 'pointer',
153
+ point: {
154
+ events: {
155
+ click() {
156
+ const x = this.x;
157
+ const y = this.y;
158
+ self.emit('nile-chart-click', {
159
+ point: this,
160
+ xCategory: self.xCategories[x],
161
+ yCategory: self.yCategories[y],
162
+ xIndex: x,
163
+ yIndex: y,
164
+ value: this.value,
165
+ seriesName: this.series.name,
166
+ });
167
+ },
168
+ },
169
+ },
170
+ },
171
+ },
172
+ series: [
173
+ {
174
+ type: 'heatmap',
175
+ name: this.seriesName || 'Intensity',
176
+ data: seriesData,
177
+ },
178
+ ],
179
+ credits: { enabled: false },
180
+ }, this.options);
181
+ }
182
+ async initChart() {
183
+ if (this.loading || !this.chartContainer)
184
+ return;
185
+ if (!this._hc)
186
+ this._hc = await getHighcharts();
187
+ this.chart = this._hc.chart(this.chartContainer, this.buildOptions());
188
+ this.emit('nile-chart-ready', { chart: this.chart });
189
+ }
190
+ destroyChart() {
191
+ if (this.chart) {
192
+ this.chart.destroy();
193
+ this.chart = null;
194
+ }
195
+ }
196
+ render() {
197
+ if (this.loading) {
198
+ return html `<div class="chart-loading" style="height:${this.height}">Loading...</div>`;
199
+ }
200
+ return html `<div class="chart-container"></div>`;
201
+ }
202
+ };
203
+ NileHeatmapChart.styles = styles;
204
+ __decorate([
205
+ query('.chart-container')
206
+ ], NileHeatmapChart.prototype, "chartContainer", void 0);
207
+ __decorate([
208
+ property({ type: Object })
209
+ ], NileHeatmapChart.prototype, "config", void 0);
210
+ __decorate([
211
+ property({ type: String, attribute: 'chart-title' })
212
+ ], NileHeatmapChart.prototype, "chartTitle", void 0);
213
+ __decorate([
214
+ property({ type: String, attribute: 'chart-subtitle' })
215
+ ], NileHeatmapChart.prototype, "chartSubtitle", void 0);
216
+ __decorate([
217
+ property({ type: Array })
218
+ ], NileHeatmapChart.prototype, "xCategories", void 0);
219
+ __decorate([
220
+ property({ type: Array })
221
+ ], NileHeatmapChart.prototype, "yCategories", void 0);
222
+ __decorate([
223
+ property({ type: Array })
224
+ ], NileHeatmapChart.prototype, "data", void 0);
225
+ __decorate([
226
+ property({ type: String, attribute: 'series-name' })
227
+ ], NileHeatmapChart.prototype, "seriesName", void 0);
228
+ __decorate([
229
+ property({ type: Number, attribute: 'color-min' })
230
+ ], NileHeatmapChart.prototype, "colorMin", void 0);
231
+ __decorate([
232
+ property({ type: Number, attribute: 'color-max' })
233
+ ], NileHeatmapChart.prototype, "colorMax", void 0);
234
+ __decorate([
235
+ property({ type: String, attribute: 'min-color' })
236
+ ], NileHeatmapChart.prototype, "minColor", void 0);
237
+ __decorate([
238
+ property({ type: String, attribute: 'max-color' })
239
+ ], NileHeatmapChart.prototype, "maxColor", void 0);
240
+ __decorate([
241
+ property({ type: String, attribute: 'color-axis-title' })
242
+ ], NileHeatmapChart.prototype, "colorAxisTitle", void 0);
243
+ __decorate([
244
+ property({ type: Object })
245
+ ], NileHeatmapChart.prototype, "options", void 0);
246
+ __decorate([
247
+ property({ type: Boolean, reflect: true })
248
+ ], NileHeatmapChart.prototype, "loading", void 0);
249
+ __decorate([
250
+ property({ type: String })
251
+ ], NileHeatmapChart.prototype, "height", void 0);
252
+ __decorate([
253
+ property({ type: Boolean, attribute: 'show-data-labels' })
254
+ ], NileHeatmapChart.prototype, "showDataLabels", void 0);
255
+ NileHeatmapChart = __decorate([
256
+ customElement('nile-heatmap-chart')
257
+ ], NileHeatmapChart);
258
+ export { NileHeatmapChart };
259
+ //# sourceMappingURL=nile-heatmap-chart.js.map
@@ -112,7 +112,9 @@ let NileHistogramChart = class NileHistogramChart extends NileElement {
112
112
  buildOptions() {
113
113
  const self = this;
114
114
  const bw = this.binWidth > 0 ? this.binWidth : undefined;
115
- const scatterData = this.data.map(x => [x, 0]);
115
+ // Highcharts #15: line/scatter x values must be ascending; raw samples are often unsorted.
116
+ const sorted = [...this.data].sort((a, b) => a - b);
117
+ const scatterData = sorted.map(x => [x, 0]);
116
118
  return deepMerge({
117
119
  chart: { height: this.height },
118
120
  title: { text: this.chartTitle || undefined },
@@ -13,7 +13,7 @@ export const styles = css `
13
13
  /* ── Card variant ── */
14
14
 
15
15
  .kpi-card {
16
- background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
16
+ background: transparent;
17
17
  border: var(--nile-border-width-1, var(--ng-stroke-width-1)) solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
18
18
  border-radius: var(--nile-radius-radius-3xl, var(--ng-radius-xl));
19
19
  box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-sm));
@@ -79,17 +79,17 @@ export const styles = css `
79
79
  }
80
80
 
81
81
  .kpi-trend--up {
82
- background: var(--nile-colors-success-100, #ECFDF3);
82
+ background: none;
83
83
  color: var(--nile-colors-success-700, #067647);
84
84
  }
85
85
 
86
86
  .kpi-trend--down {
87
- background: var(--nile-colors-error-100, #FEF3F2);
87
+ background: none;
88
88
  color: var(--nile-colors-error-700, #B42318);
89
89
  }
90
90
 
91
91
  .kpi-trend--neutral {
92
- background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));
92
+ background: none;
93
93
  color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
94
94
  }
95
95
 
@@ -24,6 +24,8 @@ export interface ChartKpiSeparatedPayload {
24
24
  gaugeColor?: string;
25
25
  loading?: boolean;
26
26
  options?: Highcharts.Options;
27
+ /** Optional min height when embedded in `<nile-chart>` (maps to host `min-height`). */
28
+ height?: string;
27
29
  }
28
30
  /** Separated `{ chart, aq }` input for `<nile-kpi-chart>`. */
29
31
  export interface NileKpiConfigInputType {
@@ -86,6 +86,12 @@ let NileKpiChart = class NileKpiChart extends NileElement {
86
86
  this.loading = c.loading;
87
87
  if (c.options !== undefined)
88
88
  this.options = c.options;
89
+ if (c.height !== undefined) {
90
+ if (c.height)
91
+ this.style.minHeight = c.height;
92
+ else
93
+ this.style.removeProperty('min-height');
94
+ }
89
95
  }
90
96
  if (aq) {
91
97
  if (aq.chartTitle != null)
@@ -0,0 +1,2 @@
1
+ export { NileLineColumnChart } from './nile-line-column-chart.js';
2
+ export type { LineColumnSeriesPart } from './nile-line-column-chart.js';
@@ -0,0 +1,2 @@
1
+ export { NileLineColumnChart } from './nile-line-column-chart.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,28 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ display: block;
5
+ width: 100%;
6
+ position: relative;
7
+ }
8
+
9
+ :host([hidden]) {
10
+ display: none;
11
+ }
12
+
13
+ .chart-container {
14
+ width: 100%;
15
+ min-height: var(--nile-height-200px, var(--ng-height-200px));
16
+ }
17
+
18
+ .chart-loading {
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: center;
22
+ min-height: inherit;
23
+ color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary-700));
24
+ font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
25
+ font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));
26
+ }
27
+ `;
28
+ //# sourceMappingURL=nile-line-column-chart.css.js.map
@@ -0,0 +1,42 @@
1
+ import type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
2
+ import type Highcharts from 'highcharts';
3
+ import NileElement from '../internal/nile-element.js';
4
+ import type { SeparatedChartConfigInputType } from '../internal/types/separated-chart-config-input.type.js';
5
+ export interface LineColumnSeriesPart {
6
+ name: string;
7
+ data: number[];
8
+ color?: string;
9
+ }
10
+ export declare class NileLineColumnChart extends NileElement {
11
+ static styles: CSSResultGroup;
12
+ private _hc;
13
+ private chart;
14
+ private resizeObserver;
15
+ private chartContainer;
16
+ config: SeparatedChartConfigInputType | null;
17
+ chartTitle: string;
18
+ chartSubtitle: string;
19
+ categories: string[];
20
+ columnSeries: LineColumnSeriesPart;
21
+ lineSeries: LineColumnSeriesPart;
22
+ columnAxisTitle: string;
23
+ lineAxisTitle: string;
24
+ options: Highcharts.Options;
25
+ loading: boolean;
26
+ height: string;
27
+ private applyConfig;
28
+ connectedCallback(): void;
29
+ disconnectedCallback(): void;
30
+ protected firstUpdated(): void;
31
+ protected updated(changedProperties: PropertyValues): void;
32
+ private setupResizeObserver;
33
+ private buildOptions;
34
+ private initChart;
35
+ private destroyChart;
36
+ render(): TemplateResult;
37
+ }
38
+ declare global {
39
+ interface HTMLElementTagNameMap {
40
+ 'nile-line-column-chart': NileLineColumnChart;
41
+ }
42
+ }