@acorex/charts 21.0.3-next.3 → 21.0.3-next.31

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 (31) hide show
  1. package/{types/acorex-charts-bar-chart.d.ts → bar-chart/index.d.ts} +3 -28
  2. package/{types/acorex-charts-donut-chart.d.ts → donut-chart/index.d.ts} +8 -22
  3. package/fesm2022/acorex-charts-bar-chart.mjs +66 -91
  4. package/fesm2022/acorex-charts-bar-chart.mjs.map +1 -1
  5. package/fesm2022/acorex-charts-chart-legend.mjs +13 -13
  6. package/fesm2022/acorex-charts-chart-legend.mjs.map +1 -1
  7. package/fesm2022/acorex-charts-chart-tooltip.mjs +11 -11
  8. package/fesm2022/acorex-charts-chart-tooltip.mjs.map +1 -1
  9. package/fesm2022/acorex-charts-donut-chart.mjs +94 -101
  10. package/fesm2022/acorex-charts-donut-chart.mjs.map +1 -1
  11. package/fesm2022/acorex-charts-funnel-chart.mjs +19 -19
  12. package/fesm2022/acorex-charts-funnel-chart.mjs.map +1 -1
  13. package/fesm2022/acorex-charts-gauge-chart.mjs +64 -45
  14. package/fesm2022/acorex-charts-gauge-chart.mjs.map +1 -1
  15. package/fesm2022/acorex-charts-heatmap-chart.mjs +16 -19
  16. package/fesm2022/acorex-charts-heatmap-chart.mjs.map +1 -1
  17. package/fesm2022/acorex-charts-hierarchy-chart.mjs +39 -80
  18. package/fesm2022/acorex-charts-hierarchy-chart.mjs.map +1 -1
  19. package/fesm2022/acorex-charts-line-chart.mjs +42 -109
  20. package/fesm2022/acorex-charts-line-chart.mjs.map +1 -1
  21. package/fesm2022/acorex-charts.mjs +69 -5
  22. package/fesm2022/acorex-charts.mjs.map +1 -1
  23. package/{types/acorex-charts-funnel-chart.d.ts → funnel-chart/index.d.ts} +3 -25
  24. package/{types/acorex-charts-gauge-chart.d.ts → gauge-chart/index.d.ts} +6 -21
  25. package/{types/acorex-charts-heatmap-chart.d.ts → heatmap-chart/index.d.ts} +2 -28
  26. package/{types/acorex-charts-hierarchy-chart.d.ts → hierarchy-chart/index.d.ts} +2 -27
  27. package/{types/acorex-charts.d.ts → index.d.ts} +52 -2
  28. package/{types/acorex-charts-line-chart.d.ts → line-chart/index.d.ts} +2 -38
  29. package/package.json +15 -16
  30. /package/{types/acorex-charts-chart-legend.d.ts → chart-legend/index.d.ts} +0 -0
  31. /package/{types/acorex-charts-chart-tooltip.d.ts → chart-tooltip/index.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { AXChartComponent, AX_CHART_COLOR_PALETTE, formatLargeNumber, getChartColor, getEasingFunction, computeTooltipPosition } from '@acorex/charts';
1
+ import { AX_CHART_DEFAULT_MESSAGES, AXChartComponent, AX_CHART_COLOR_PALETTE, mergeChartOptions, mergeChartMessages, formatLargeNumber, getChartColor, getEasingFunction, computeTooltipPosition, renderChartEmptyMessage } from '@acorex/charts';
2
2
  import { AXChartTooltipComponent } from '@acorex/charts/chart-tooltip';
3
3
  import * as i0 from '@angular/core';
4
4
  import { InjectionToken, input, output, viewChild, signal, inject, computed, effect, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
@@ -27,12 +27,8 @@ const AXLineChartDefaultConfig = {
27
27
  animationDuration: 1000,
28
28
  animationEasing: 'cubic-out',
29
29
  messages: {
30
- noData: 'No data available',
31
- noDataHelp: 'Please provide data to display the chart',
32
- allHidden: 'All series are hidden',
33
- allHiddenHelp: 'Click legend items to show series in the chart',
30
+ ...AX_CHART_DEFAULT_MESSAGES,
34
31
  noDataIcon: 'fa-light fa-chart-line',
35
- allHiddenIcon: 'fa-light fa-eye-slash',
36
32
  },
37
33
  };
38
34
  const AX_LINE_CHART_CONFIG = new InjectionToken('AX_LINE_CHART_CONFIG', {
@@ -40,19 +36,26 @@ const AX_LINE_CHART_CONFIG = new InjectionToken('AX_LINE_CHART_CONFIG', {
40
36
  factory: () => AXLineChartDefaultConfig,
41
37
  });
42
38
  function lineChartConfig(config = {}) {
43
- const result = {
39
+ return {
44
40
  ...AXLineChartDefaultConfig,
45
41
  ...config,
42
+ margins: {
43
+ ...AXLineChartDefaultConfig.margins,
44
+ ...config.margins,
45
+ },
46
+ messages: {
47
+ ...AXLineChartDefaultConfig.messages,
48
+ ...config.messages,
49
+ },
46
50
  };
47
- return result;
48
51
  }
49
52
 
50
53
  /**
51
54
  * Line Chart Component for rendering data as lines with interactive hover effects and animations
52
55
  */
53
56
  class AXLineChartComponent extends AXChartComponent {
54
- data = input([], ...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
55
- options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
57
+ data = input([], ...(ngDevMode ? [{ debugName: "data" }] : []));
58
+ options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : []));
56
59
  pointClick = output();
57
60
  chartContainerEl = viewChild.required('chartContainer');
58
61
  d3;
@@ -66,18 +69,18 @@ class AXLineChartComponent extends AXChartComponent {
66
69
  width;
67
70
  height;
68
71
  margin = { top: 20, right: 25, bottom: 40, left: 50 };
69
- _tooltipVisible = signal(false, ...(ngDevMode ? [{ debugName: "_tooltipVisible" }] : /* istanbul ignore next */ []));
70
- _tooltipPosition = signal({ x: 0, y: 0 }, ...(ngDevMode ? [{ debugName: "_tooltipPosition" }] : /* istanbul ignore next */ []));
72
+ _tooltipVisible = signal(false, ...(ngDevMode ? [{ debugName: "_tooltipVisible" }] : []));
73
+ _tooltipPosition = signal({ x: 0, y: 0 }, ...(ngDevMode ? [{ debugName: "_tooltipPosition" }] : []));
71
74
  _tooltipData = signal({
72
75
  title: '',
73
76
  value: '0',
74
77
  percentage: '0%',
75
78
  color: '',
76
- }, ...(ngDevMode ? [{ debugName: "_tooltipData" }] : /* istanbul ignore next */ []));
79
+ }, ...(ngDevMode ? [{ debugName: "_tooltipData" }] : []));
77
80
  _tooltipRafId = null;
78
81
  _pendingTooltipCoords = null;
79
- _initialized = signal(false, ...(ngDevMode ? [{ debugName: "_initialized" }] : /* istanbul ignore next */ []));
80
- _rendered = signal(false, ...(ngDevMode ? [{ debugName: "_rendered" }] : /* istanbul ignore next */ []));
82
+ _initialized = signal(false, ...(ngDevMode ? [{ debugName: "_initialized" }] : []));
83
+ _rendered = signal(false, ...(ngDevMode ? [{ debugName: "_rendered" }] : []));
81
84
  hiddenSeries = new Set();
82
85
  _fullNormalizedData = [];
83
86
  tooltipVisible = this._tooltipVisible.asReadonly();
@@ -87,29 +90,11 @@ class AXLineChartComponent extends AXChartComponent {
87
90
  configToken = inject(AX_LINE_CHART_CONFIG);
88
91
  // Inject the chart colors
89
92
  chartColors = inject(AX_CHART_COLOR_PALETTE);
90
- effectiveOptions = computed(() => {
91
- return {
92
- ...this.configToken,
93
- ...this.options(),
94
- };
95
- }, ...(ngDevMode ? [{ debugName: "effectiveOptions" }] : /* istanbul ignore next */ []));
93
+ effectiveOptions = computed(() => mergeChartOptions(this.configToken, this.options()), ...(ngDevMode ? [{ debugName: "effectiveOptions" }] : []));
96
94
  // Messages with defaults
97
- effectiveMessages = computed(() => {
98
- const defaultMessages = {
99
- noData: 'No data available',
100
- noDataHelp: 'Please provide data to display the chart',
101
- allHidden: 'All series are hidden',
102
- allHiddenHelp: 'Click legend items to show series in the chart',
103
- noDataIcon: 'fa-light fa-chart-line',
104
- allHiddenIcon: 'fa-light fa-eye-slash',
105
- };
106
- return {
107
- ...defaultMessages,
108
- ...this.effectiveOptions().messages,
109
- };
110
- }, ...(ngDevMode ? [{ debugName: "effectiveMessages" }] : /* istanbul ignore next */ []));
95
+ effectiveMessages = computed(() => mergeChartMessages(this.configToken.messages, this.options()?.messages), ...(ngDevMode ? [{ debugName: "effectiveMessages" }] : []));
111
96
  // Layout & Dimensions
112
- MIN_DIMENSION = 100;
97
+ MIN_DIMENSION = 1;
113
98
  DEFAULT_MARGIN_TOP = 12;
114
99
  DEFAULT_MARGIN_RIGHT = 12;
115
100
  DEFAULT_MARGIN_BOTTOM = 8;
@@ -427,7 +412,7 @@ class AXLineChartComponent extends AXChartComponent {
427
412
  if (this._rendered()) {
428
413
  this.updateChart();
429
414
  }
430
- }, ...(ngDevMode ? [{ debugName: "#effect" }] : /* istanbul ignore next */ []));
415
+ }, ...(ngDevMode ? [{ debugName: "#effect" }] : []));
431
416
  ngAfterViewInit() {
432
417
  this._initialized.set(true);
433
418
  if (this.d3 && this.chartContainerEl()) {
@@ -488,7 +473,7 @@ class AXLineChartComponent extends AXChartComponent {
488
473
  targetPointsGroup
489
474
  .selectAll('circle.ax-line-chart-point')
490
475
  .attr('r', (this.effectiveOptions().pointRadius ?? this.DEFAULT_POINT_RADIUS) * this.POINT_HIGHLIGHT_MULTIPLIER)
491
- .classed('ax-chart-highlighted-path', true);
476
+ .classed('ax-chart-highlighted-point', true);
492
477
  }
493
478
  toggleSegment(id) {
494
479
  if (this.hiddenSeries.has(id)) {
@@ -520,7 +505,7 @@ class AXLineChartComponent extends AXChartComponent {
520
505
  // Clear previous SVG and any empty-state messages (preserve tooltip component)
521
506
  this.d3
522
507
  .select(containerElement)
523
- .selectAll('svg, .ax-line-chart-no-data-message, .ax-line-chart-all-hidden-message')
508
+ .selectAll('svg, .ax-chart-empty, .ax-line-chart-no-data-message, .ax-line-chart-all-hidden-message')
524
509
  .remove();
525
510
  if (allSeriesData.length === 0 || allSeriesData.every((series) => !series.data || series.data.length === 0)) {
526
511
  this.showNoDataMessage(containerElement);
@@ -558,7 +543,7 @@ class AXLineChartComponent extends AXChartComponent {
558
543
  if (this.svg) {
559
544
  this.d3
560
545
  ?.select(this.chartContainerEl()?.nativeElement)
561
- .selectAll('svg, .ax-line-chart-no-data-message, .ax-line-chart-all-hidden-message')
546
+ .selectAll('svg, .ax-chart-empty, .ax-line-chart-no-data-message, .ax-line-chart-all-hidden-message')
562
547
  .remove();
563
548
  this.svg = null;
564
549
  this.chart = null;
@@ -1233,72 +1218,20 @@ class AXLineChartComponent extends AXChartComponent {
1233
1218
  });
1234
1219
  }
1235
1220
  showNoDataMessage(containerElement) {
1236
- // Remove only chart SVG and previous empty-state messages to avoid removing tooltip
1237
- this.d3
1238
- .select(containerElement)
1239
- .selectAll('svg, .ax-line-chart-no-data-message, .ax-line-chart-all-hidden-message')
1240
- .remove();
1241
- const messageContainer = this.d3
1242
- .select(containerElement)
1243
- .append('div')
1244
- .attr('class', 'ax-line-chart-no-data-message')
1245
- .style('position', 'absolute')
1246
- .style('left', '50%')
1247
- .style('top', '50%')
1248
- .style('transform', 'translate(-50%, -50%)');
1249
- messageContainer
1250
- .append('div')
1251
- .attr('class', 'ax-line-chart-no-data-icon')
1252
- .style('opacity', '0.6')
1253
- .style('margin-bottom', '0.75rem')
1254
- .html(`<i class="${this.effectiveMessages().noDataIcon} fa-2x"></i>`);
1255
- messageContainer
1256
- .append('div')
1257
- .attr('class', 'ax-line-chart-no-data-text')
1258
- .style('font-size', '1rem')
1259
- .style('font-weight', '600')
1260
- .style('margin-bottom', '0.5rem')
1261
- .text(this.effectiveMessages().noData);
1262
- messageContainer
1263
- .append('div')
1264
- .attr('class', 'ax-line-chart-no-data-help')
1265
- .style('font-size', '0.8rem')
1266
- .style('opacity', '0.6')
1267
- .text(this.effectiveMessages().noDataHelp);
1221
+ const messages = this.effectiveMessages();
1222
+ renderChartEmptyMessage(this.d3, containerElement, {
1223
+ icon: messages.noDataIcon,
1224
+ title: messages.noData,
1225
+ help: messages.noDataHelp,
1226
+ });
1268
1227
  }
1269
1228
  showAllSeriesHiddenMessage(containerElement) {
1270
- // Remove only chart SVG and previous empty-state messages to avoid removing tooltip
1271
- this.d3
1272
- .select(containerElement)
1273
- .selectAll('svg, .ax-line-chart-no-data-message, .ax-line-chart-all-hidden-message')
1274
- .remove();
1275
- const messageContainer = this.d3
1276
- .select(containerElement)
1277
- .append('div')
1278
- .attr('class', 'ax-line-chart-all-hidden-message') // Different class
1279
- .style('position', 'absolute')
1280
- .style('left', '50%')
1281
- .style('top', '50%')
1282
- .style('transform', 'translate(-50%, -50%)');
1283
- messageContainer
1284
- .append('div')
1285
- .attr('class', 'ax-line-chart-all-hidden-icon')
1286
- .style('opacity', '0.6')
1287
- .style('margin-bottom', '0.75rem')
1288
- .html(`<i class="${this.effectiveMessages().allHiddenIcon} fa-2x"></i>`); // Different icon
1289
- messageContainer
1290
- .append('div')
1291
- .attr('class', 'ax-line-chart-all-hidden-text')
1292
- .style('font-size', '1rem')
1293
- .style('font-weight', '600')
1294
- .style('margin-bottom', '0.5rem')
1295
- .text(this.effectiveMessages().allHidden);
1296
- messageContainer
1297
- .append('div')
1298
- .attr('class', 'ax-line-chart-all-hidden-help')
1299
- .style('font-size', '0.8rem')
1300
- .style('opacity', '0.6')
1301
- .text(this.effectiveMessages().allHiddenHelp);
1229
+ const messages = this.effectiveMessages();
1230
+ renderChartEmptyMessage(this.d3, containerElement, {
1231
+ icon: messages.allHiddenIcon,
1232
+ title: messages.allHidden,
1233
+ help: messages.allHiddenHelp,
1234
+ });
1302
1235
  }
1303
1236
  handleOverlappingPointsHover(event, overlappingPoints) {
1304
1237
  if (this.effectiveOptions().showTooltip === false)
@@ -1315,13 +1248,13 @@ class AXLineChartComponent extends AXChartComponent {
1315
1248
  this.showCrosshairLines(overlappingPoints[0].point);
1316
1249
  }
1317
1250
  }
1318
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXLineChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1319
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: AXLineChartComponent, isStandalone: true, selector: "ax-line-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pointClick: "pointClick" }, viewQueries: [{ propertyName: "chartContainerEl", first: true, predicate: ["chartContainer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-line-chart\" #chartContainer>\n <!-- Shared tooltip component -->\n <ax-chart-tooltip\n [visible]=\"tooltipVisible()\"\n [position]=\"tooltipPosition()\"\n [data]=\"tooltipData()\"\n [showPercentage]=\"false\"\n ></ax-chart-tooltip>\n</div>\n", styles: ["ax-line-chart{display:block;width:100%;height:100%;min-height:0;box-sizing:border-box;--ax-comp-line-chart-labels-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-line-chart-axis-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-line-chart-grid-lines-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-line-chart-bg-color: 0, 0, 0, 0;--ax-comp-line-chart-text-color: var(--ax-sys-color-on-lightest-surface)}ax-line-chart .ax-line-chart{width:100%;height:100%;position:relative;box-sizing:border-box;padding:clamp(.25rem,.6vw,.5rem);border-radius:.5rem;overflow:hidden;contain:layout style;color:rgba(var(--ax-comp-line-chart-text-color));background-color:rgb(var(--ax-comp-line-chart-bg-color))}ax-line-chart .ax-line-chart svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%;overflow:hidden;flex-shrink:0}ax-line-chart .ax-line-chart svg g:has(text){font-family:inherit}ax-line-chart .ax-line-chart-no-data-message{text-align:center;background-color:rgb(var(--ax-comp-line-chart-bg-color));padding:1.5rem;border-radius:.5rem;border:1px solid rgba(var(--ax-sys-color-surface));width:80%;max-width:300px}ax-line-chart .ax-line-chart-no-data-message .ax-line-chart-no-data-icon{opacity:.6;margin-bottom:.75rem}ax-line-chart .ax-line-chart-no-data-message .ax-line-chart-no-data-text{font-size:1rem;font-weight:600;margin-bottom:.5rem}ax-line-chart .ax-line-chart-no-data-message .ax-line-chart-no-data-help{font-size:.8rem;opacity:.6}\n"], dependencies: [{ kind: "component", type: AXChartTooltipComponent, selector: "ax-chart-tooltip", inputs: ["data", "position", "visible", "showPercentage", "style"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1251
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXLineChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1252
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.3", type: AXLineChartComponent, isStandalone: true, selector: "ax-line-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pointClick: "pointClick" }, viewQueries: [{ propertyName: "chartContainerEl", first: true, predicate: ["chartContainer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-line-chart\" #chartContainer>\n <!-- Shared tooltip component -->\n <ax-chart-tooltip\n [visible]=\"tooltipVisible()\"\n [position]=\"tooltipPosition()\"\n [data]=\"tooltipData()\"\n [showPercentage]=\"false\"\n ></ax-chart-tooltip>\n</div>\n", styles: [".ax-chart-empty{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:1rem;pointer-events:none}.ax-chart-empty__card{text-align:center;padding:1.5rem;border-radius:.5rem;border:1px solid rgba(var(--ax-sys-color-surface));width:80%;max-width:300px;box-sizing:border-box}.ax-chart-empty__icon{opacity:.6;margin-bottom:.75rem}.ax-chart-empty__title{font-size:1rem;font-weight:600;margin-bottom:.5rem}.ax-chart-empty__help{font-size:.8rem;opacity:.6}ax-line-chart{display:block;width:100%;height:100%;min-height:clamp(220px,38vw,360px);box-sizing:border-box;--ax-comp-line-chart-labels-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-line-chart-axis-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-line-chart-grid-lines-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-line-chart-bg-color: 0, 0, 0, 0;--ax-comp-line-chart-text-color: var(--ax-sys-color-on-lightest-surface)}ax-line-chart .ax-line-chart{width:100%;height:100%;position:relative;min-height:0;box-sizing:border-box;padding:clamp(.25rem,.6vw,.5rem);border-radius:.5rem;overflow:hidden;contain:layout style;color:rgba(var(--ax-comp-line-chart-text-color));background-color:rgb(var(--ax-comp-line-chart-bg-color))}ax-line-chart .ax-line-chart svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%;overflow:hidden;flex-shrink:0}ax-line-chart .ax-line-chart svg g:has(text){font-family:inherit}\n"], dependencies: [{ kind: "component", type: AXChartTooltipComponent, selector: "ax-chart-tooltip", inputs: ["data", "position", "visible", "showPercentage", "style"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1320
1253
  }
1321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXLineChartComponent, decorators: [{
1254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXLineChartComponent, decorators: [{
1322
1255
  type: Component,
1323
- args: [{ selector: 'ax-line-chart', encapsulation: ViewEncapsulation.None, imports: [AXChartTooltipComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-line-chart\" #chartContainer>\n <!-- Shared tooltip component -->\n <ax-chart-tooltip\n [visible]=\"tooltipVisible()\"\n [position]=\"tooltipPosition()\"\n [data]=\"tooltipData()\"\n [showPercentage]=\"false\"\n ></ax-chart-tooltip>\n</div>\n", styles: ["ax-line-chart{display:block;width:100%;height:100%;min-height:0;box-sizing:border-box;--ax-comp-line-chart-labels-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-line-chart-axis-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-line-chart-grid-lines-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-line-chart-bg-color: 0, 0, 0, 0;--ax-comp-line-chart-text-color: var(--ax-sys-color-on-lightest-surface)}ax-line-chart .ax-line-chart{width:100%;height:100%;position:relative;box-sizing:border-box;padding:clamp(.25rem,.6vw,.5rem);border-radius:.5rem;overflow:hidden;contain:layout style;color:rgba(var(--ax-comp-line-chart-text-color));background-color:rgb(var(--ax-comp-line-chart-bg-color))}ax-line-chart .ax-line-chart svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%;overflow:hidden;flex-shrink:0}ax-line-chart .ax-line-chart svg g:has(text){font-family:inherit}ax-line-chart .ax-line-chart-no-data-message{text-align:center;background-color:rgb(var(--ax-comp-line-chart-bg-color));padding:1.5rem;border-radius:.5rem;border:1px solid rgba(var(--ax-sys-color-surface));width:80%;max-width:300px}ax-line-chart .ax-line-chart-no-data-message .ax-line-chart-no-data-icon{opacity:.6;margin-bottom:.75rem}ax-line-chart .ax-line-chart-no-data-message .ax-line-chart-no-data-text{font-size:1rem;font-weight:600;margin-bottom:.5rem}ax-line-chart .ax-line-chart-no-data-message .ax-line-chart-no-data-help{font-size:.8rem;opacity:.6}\n"] }]
1324
- }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], pointClick: [{ type: i0.Output, args: ["pointClick"] }], chartContainerEl: [{ type: i0.ViewChild, args: ['chartContainer', { isSignal: true }] }] } });
1256
+ args: [{ selector: 'ax-line-chart', encapsulation: ViewEncapsulation.None, imports: [AXChartTooltipComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-line-chart\" #chartContainer>\n <!-- Shared tooltip component -->\n <ax-chart-tooltip\n [visible]=\"tooltipVisible()\"\n [position]=\"tooltipPosition()\"\n [data]=\"tooltipData()\"\n [showPercentage]=\"false\"\n ></ax-chart-tooltip>\n</div>\n", styles: [".ax-chart-empty{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:1rem;pointer-events:none}.ax-chart-empty__card{text-align:center;padding:1.5rem;border-radius:.5rem;border:1px solid rgba(var(--ax-sys-color-surface));width:80%;max-width:300px;box-sizing:border-box}.ax-chart-empty__icon{opacity:.6;margin-bottom:.75rem}.ax-chart-empty__title{font-size:1rem;font-weight:600;margin-bottom:.5rem}.ax-chart-empty__help{font-size:.8rem;opacity:.6}ax-line-chart{display:block;width:100%;height:100%;min-height:clamp(220px,38vw,360px);box-sizing:border-box;--ax-comp-line-chart-labels-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-line-chart-axis-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-line-chart-grid-lines-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-line-chart-bg-color: 0, 0, 0, 0;--ax-comp-line-chart-text-color: var(--ax-sys-color-on-lightest-surface)}ax-line-chart .ax-line-chart{width:100%;height:100%;position:relative;min-height:0;box-sizing:border-box;padding:clamp(.25rem,.6vw,.5rem);border-radius:.5rem;overflow:hidden;contain:layout style;color:rgba(var(--ax-comp-line-chart-text-color));background-color:rgb(var(--ax-comp-line-chart-bg-color))}ax-line-chart .ax-line-chart svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%;overflow:hidden;flex-shrink:0}ax-line-chart .ax-line-chart svg g:has(text){font-family:inherit}\n"] }]
1257
+ }] });
1325
1258
 
1326
1259
  /**
1327
1260
  * Generated bundle index. Do not edit.