@acorex/charts 21.0.0-next.10 → 21.0.0-next.12

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.
@@ -1,4 +1,5 @@
1
- import { InjectionToken } from '@angular/core';
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, signal, afterNextRender, Directive } from '@angular/core';
2
3
 
3
4
  // Default color palette for charts
4
5
  const AX_CHART_COLOR_PALETTE = new InjectionToken('AX_CHART_COLOR_PALETTE', {
@@ -48,8 +49,42 @@ function getChartColor(index, palette) {
48
49
  }
49
50
 
50
51
  /**
51
- * Compute edge-aware tooltip position with right-first placement,
52
- * left fallback, vertical centering, and clamping within bounds.
52
+ * Base component class for all chart components
53
+ * Copied from @acorex/cdk/common NXComponent to remove external dependency
54
+ */
55
+ class AXChartComponent {
56
+ #elementRef = inject(ElementRef);
57
+ #isRendered = signal(false, ...(ngDevMode ? [{ debugName: "#isRendered" }] : []));
58
+ isRendered = this.#isRendered.asReadonly();
59
+ #afterNextRender = afterNextRender(() => {
60
+ if (!this.isRendered()) {
61
+ this.nativeElement['__axContext__'] = this;
62
+ this.#isRendered.set(true);
63
+ }
64
+ });
65
+ /**
66
+ * Gets the native HTML element of the component
67
+ */
68
+ get nativeElement() {
69
+ return this.#elementRef.nativeElement;
70
+ }
71
+ /**
72
+ * Gets the host HTML element of the component (alias for nativeElement)
73
+ * @returns T - The native DOM element associated with this component
74
+ */
75
+ getHostElement() {
76
+ return this.#elementRef.nativeElement;
77
+ }
78
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: AXChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
79
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: AXChartComponent, isStandalone: true, ngImport: i0 });
80
+ }
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: AXChartComponent, decorators: [{
82
+ type: Directive
83
+ }] });
84
+
85
+ /**
86
+ * Compute edge-aware tooltip position with intelligent placement,
87
+ * considering available space in all directions and preventing overflow.
53
88
  */
54
89
  function computeTooltipPosition(containerRect, tooltipRect, clientX, clientY, gap) {
55
90
  const cursorX = clientX - containerRect.left;
@@ -60,12 +95,41 @@ function computeTooltipPosition(containerRect, tooltipRect, clientX, clientY, ga
60
95
  y: Math.max(gap, Math.min(cursorY, containerRect.height - gap)),
61
96
  };
62
97
  }
63
- let x = cursorX + gap;
64
- if (x + tooltipRect.width > containerRect.width - gap) {
98
+ // Calculate available space in each direction
99
+ const spaceRight = containerRect.width - cursorX;
100
+ const spaceLeft = cursorX;
101
+ const spaceBelow = containerRect.height - cursorY;
102
+ const spaceAbove = cursorY;
103
+ // Determine best horizontal position
104
+ let x;
105
+ if (spaceRight >= tooltipRect.width + gap) {
106
+ // Position to the right of cursor
107
+ x = cursorX + gap;
108
+ }
109
+ else if (spaceLeft >= tooltipRect.width + gap) {
110
+ // Position to the left of cursor
65
111
  x = cursorX - tooltipRect.width - gap;
66
112
  }
113
+ else {
114
+ // Center horizontally if neither side has enough space
115
+ x = Math.max(gap, Math.min((containerRect.width - tooltipRect.width) / 2, containerRect.width - tooltipRect.width - gap));
116
+ }
117
+ // Determine best vertical position
118
+ let y;
119
+ if (spaceBelow >= tooltipRect.height + gap) {
120
+ // Position below cursor
121
+ y = cursorY + gap;
122
+ }
123
+ else if (spaceAbove >= tooltipRect.height + gap) {
124
+ // Position above cursor
125
+ y = cursorY - tooltipRect.height - gap;
126
+ }
127
+ else {
128
+ // Center vertically if neither direction has enough space
129
+ y = Math.max(gap, Math.min((containerRect.height - tooltipRect.height) / 2, containerRect.height - tooltipRect.height - gap));
130
+ }
131
+ // Ensure tooltip stays within container bounds
67
132
  x = Math.max(gap, Math.min(x, containerRect.width - tooltipRect.width - gap));
68
- let y = cursorY - tooltipRect.height / 2;
69
133
  y = Math.max(gap, Math.min(y, containerRect.height - tooltipRect.height - gap));
70
134
  return { x, y };
71
135
  }
@@ -108,5 +172,5 @@ const AX_CHARTS = 'ACOREX_CHARTS';
108
172
  * Generated bundle index. Do not edit.
109
173
  */
110
174
 
111
- export { AX_CHARTS, AX_CHART_COLOR_PALETTE, computeTooltipPosition, getChartColor, getEasingFunction, mapEasingName };
175
+ export { AXChartComponent, AX_CHARTS, AX_CHART_COLOR_PALETTE, computeTooltipPosition, getChartColor, getEasingFunction, mapEasingName };
112
176
  //# sourceMappingURL=acorex-charts.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-charts.mjs","sources":["../tmp-esm2022/lib/chart-colors.js","../tmp-esm2022/lib/chart-utils.js","../tmp-esm2022/index.js","../tmp-esm2022/acorex-charts.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n// Default color palette for charts\nexport const AX_CHART_COLOR_PALETTE = new InjectionToken('AX_CHART_COLOR_PALETTE', {\n providedIn: 'root',\n factory: () => [\n '#FF6B6B', // Vibrant Red\n '#4ECDC4', // Electric Teal\n '#45B7D1', // Bright Blue\n '#96CEB4', // Fresh Green\n '#FFEEAD', // Bright Yellow\n '#D4A5A5', // Rose Pink\n '#9B59B6', // Rich Purple\n '#3498DB', // Deep Blue\n '#E67E22', // Bright Orange\n '#2ECC71', // Emerald Green\n '#E74C3C', // Cherry Red\n '#1ABC9C', // Turquoise\n '#F1C40F', // Golden Yellow\n '#8E44AD', // Deep Purple\n '#16A085', // Dark Teal\n // --- Extended Colors (new) ---\n '#27AE60', // Forest Green\n '#2980B9', // Strong Blue\n '#F39C12', // Vivid Orange\n '#C0392B', // Dark Red\n '#7D3C98', // Plum Purple\n '#2C3E50', // Midnight Blue\n '#D35400', // Burnt Orange\n '#BDC3C7', // Soft Silver\n '#34495E', // Slate Gray\n '#1F618D', // Royal Blue\n '#58D68D', // Mint Green\n '#5DADE2', // Sky Blue\n '#F1948A', // Soft Coral\n '#A569BD', // Lavender Purple\n '#F8C471', // Warm Gold\n ],\n});\n/**\n * Helper function to get a color from the palette by index\n * @param index The index of the color to get\n * @param palette The color palette to use\n * @returns The color at the specified index\n */\nexport function getChartColor(index, palette) {\n return palette[index % palette.length];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2hhcnRzL3NyYy9saWIvY2hhcnQtY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsbUNBQW1DO0FBQ25DLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsRUFDeEI7SUFDRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixTQUFTLEVBQUUsY0FBYztRQUN6QixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsU0FBUyxFQUFFLFlBQVk7UUFDdkIsU0FBUyxFQUFFLGNBQWM7UUFDekIsU0FBUyxFQUFFLFlBQVk7UUFDdkIsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLFNBQVMsRUFBRSxhQUFhO1FBQ3hCLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsU0FBUyxFQUFFLGNBQWM7UUFDekIsU0FBUyxFQUFFLFlBQVk7UUFFdkIsZ0NBQWdDO1FBQ2hDLFNBQVMsRUFBRSxlQUFlO1FBQzFCLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLFNBQVMsRUFBRSxlQUFlO1FBQzFCLFNBQVMsRUFBRSxXQUFXO1FBQ3RCLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsU0FBUyxFQUFFLGVBQWU7UUFDMUIsU0FBUyxFQUFFLGNBQWM7UUFDekIsU0FBUyxFQUFFLGFBQWE7UUFDeEIsU0FBUyxFQUFFLGFBQWE7UUFDeEIsU0FBUyxFQUFFLGFBQWE7UUFDeEIsU0FBUyxFQUFFLFdBQVc7UUFDdEIsU0FBUyxFQUFFLGFBQWE7UUFDeEIsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixTQUFTLEVBQUUsWUFBWTtLQUN4QjtDQUNGLENBQ0YsQ0FBQztBQUdGOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUFhLEVBQUUsT0FBaUI7SUFDNUQsT0FBTyxPQUFPLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gRGVmYXVsdCBjb2xvciBwYWxldHRlIGZvciBjaGFydHNcbmV4cG9ydCBjb25zdCBBWF9DSEFSVF9DT0xPUl9QQUxFVFRFID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZ1tdPihcbiAgJ0FYX0NIQVJUX0NPTE9SX1BBTEVUVEUnLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IFtcbiAgICAgICcjRkY2QjZCJywgLy8gVmlicmFudCBSZWRcbiAgICAgICcjNEVDREM0JywgLy8gRWxlY3RyaWMgVGVhbFxuICAgICAgJyM0NUI3RDEnLCAvLyBCcmlnaHQgQmx1ZVxuICAgICAgJyM5NkNFQjQnLCAvLyBGcmVzaCBHcmVlblxuICAgICAgJyNGRkVFQUQnLCAvLyBCcmlnaHQgWWVsbG93XG4gICAgICAnI0Q0QTVBNScsIC8vIFJvc2UgUGlua1xuICAgICAgJyM5QjU5QjYnLCAvLyBSaWNoIFB1cnBsZVxuICAgICAgJyMzNDk4REInLCAvLyBEZWVwIEJsdWVcbiAgICAgICcjRTY3RTIyJywgLy8gQnJpZ2h0IE9yYW5nZVxuICAgICAgJyMyRUNDNzEnLCAvLyBFbWVyYWxkIEdyZWVuXG4gICAgICAnI0U3NEMzQycsIC8vIENoZXJyeSBSZWRcbiAgICAgICcjMUFCQzlDJywgLy8gVHVycXVvaXNlXG4gICAgICAnI0YxQzQwRicsIC8vIEdvbGRlbiBZZWxsb3dcbiAgICAgICcjOEU0NEFEJywgLy8gRGVlcCBQdXJwbGVcbiAgICAgICcjMTZBMDg1JywgLy8gRGFyayBUZWFsXG5cbiAgICAgIC8vIC0tLSBFeHRlbmRlZCBDb2xvcnMgKG5ldykgLS0tXG4gICAgICAnIzI3QUU2MCcsIC8vIEZvcmVzdCBHcmVlblxuICAgICAgJyMyOTgwQjknLCAvLyBTdHJvbmcgQmx1ZVxuICAgICAgJyNGMzlDMTInLCAvLyBWaXZpZCBPcmFuZ2VcbiAgICAgICcjQzAzOTJCJywgLy8gRGFyayBSZWRcbiAgICAgICcjN0QzQzk4JywgLy8gUGx1bSBQdXJwbGVcbiAgICAgICcjMkMzRTUwJywgLy8gTWlkbmlnaHQgQmx1ZVxuICAgICAgJyNEMzU0MDAnLCAvLyBCdXJudCBPcmFuZ2VcbiAgICAgICcjQkRDM0M3JywgLy8gU29mdCBTaWx2ZXJcbiAgICAgICcjMzQ0OTVFJywgLy8gU2xhdGUgR3JheVxuICAgICAgJyMxRjYxOEQnLCAvLyBSb3lhbCBCbHVlXG4gICAgICAnIzU4RDY4RCcsIC8vIE1pbnQgR3JlZW5cbiAgICAgICcjNURBREUyJywgLy8gU2t5IEJsdWVcbiAgICAgICcjRjE5NDhBJywgLy8gU29mdCBDb3JhbFxuICAgICAgJyNBNTY5QkQnLCAvLyBMYXZlbmRlciBQdXJwbGVcbiAgICAgICcjRjhDNDcxJywgLy8gV2FybSBHb2xkXG4gICAgXSxcbiAgfVxuKTtcblxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgYSBjb2xvciBmcm9tIHRoZSBwYWxldHRlIGJ5IGluZGV4XG4gKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBjb2xvciB0byBnZXRcbiAqIEBwYXJhbSBwYWxldHRlIFRoZSBjb2xvciBwYWxldHRlIHRvIHVzZVxuICogQHJldHVybnMgVGhlIGNvbG9yIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENoYXJ0Q29sb3IoaW5kZXg6IG51bWJlciwgcGFsZXR0ZTogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gcGFsZXR0ZVtpbmRleCAlIHBhbGV0dGUubGVuZ3RoXTtcbn1cbiJdfQ==","/**\n * Compute edge-aware tooltip position with right-first placement,\n * left fallback, vertical centering, and clamping within bounds.\n */\nexport function computeTooltipPosition(containerRect, tooltipRect, clientX, clientY, gap) {\n const cursorX = clientX - containerRect.left;\n const cursorY = clientY - containerRect.top;\n if (!tooltipRect) {\n return {\n x: Math.min(cursorX + gap, containerRect.width - gap),\n y: Math.max(gap, Math.min(cursorY, containerRect.height - gap)),\n };\n }\n let x = cursorX + gap;\n if (x + tooltipRect.width > containerRect.width - gap) {\n x = cursorX - tooltipRect.width - gap;\n }\n x = Math.max(gap, Math.min(x, containerRect.width - tooltipRect.width - gap));\n let y = cursorY - tooltipRect.height / 2;\n y = Math.max(gap, Math.min(y, containerRect.height - tooltipRect.height - gap));\n return { x, y };\n}\nexport function mapEasingName(option) {\n switch (option) {\n case 'linear':\n return 'easeLinear';\n case 'ease':\n return 'easePolyInOut';\n case 'ease-in':\n return 'easePolyIn';\n case 'ease-out':\n return 'easePolyOut';\n case 'ease-in-out':\n return 'easePolyInOut';\n case 'cubic':\n return 'easeCubic';\n case 'cubic-in':\n return 'easeCubicIn';\n case 'cubic-out':\n return 'easeCubicOut';\n case 'cubic-in-out':\n return 'easeCubicInOut';\n default:\n return 'easeCubicOut';\n }\n}\n/**\n * Returns a D3 easing function for the provided option.\n */\nexport function getEasingFunction(d3, option) {\n const name = mapEasingName(option);\n const easing = d3[name];\n return typeof easing === 'function' ? easing : d3.easeCubicOut;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jaGFydHMvc3JjL2xpYi9jaGFydC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLGFBQXNCLEVBQ3RCLFdBQTJCLEVBQzNCLE9BQWUsRUFDZixPQUFlLEVBQ2YsR0FBVztJQUVYLE1BQU0sT0FBTyxHQUFHLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQzdDLE1BQU0sT0FBTyxHQUFHLE9BQU8sR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDO0lBRTVDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixPQUFPO1lBQ0wsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxhQUFhLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNyRCxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztTQUNoRSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQyxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDdEIsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ3RELENBQUMsR0FBRyxPQUFPLEdBQUcsV0FBVyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDeEMsQ0FBQztJQUNELENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUU5RSxJQUFJLENBQUMsR0FBRyxPQUFPLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRWhGLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDbEIsQ0FBQztBQWdCRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQWU7SUFDM0MsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssUUFBUTtZQUNYLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLEtBQUssTUFBTTtZQUNULE9BQU8sZUFBZSxDQUFDO1FBQ3pCLEtBQUssU0FBUztZQUNaLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLEtBQUssVUFBVTtZQUNiLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLEtBQUssYUFBYTtZQUNoQixPQUFPLGVBQWUsQ0FBQztRQUN6QixLQUFLLE9BQU87WUFDVixPQUFPLFdBQVcsQ0FBQztRQUNyQixLQUFLLFVBQVU7WUFDYixPQUFPLGFBQWEsQ0FBQztRQUN2QixLQUFLLFdBQVc7WUFDZCxPQUFPLGNBQWMsQ0FBQztRQUN4QixLQUFLLGNBQWM7WUFDakIsT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQjtZQUNFLE9BQU8sY0FBYyxDQUFDO0lBQzFCLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBdUIsRUFBRSxNQUFlO0lBQ3hFLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxNQUFNLE1BQU0sR0FBSSxFQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsT0FBTyxPQUFPLE1BQU0sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUUsRUFBVSxDQUFDLFlBQVksQ0FBQztBQUMxRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVG9vbHRpcFBvc2l0aW9uID0geyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuXG4vKipcbiAqIENvbXB1dGUgZWRnZS1hd2FyZSB0b29sdGlwIHBvc2l0aW9uIHdpdGggcmlnaHQtZmlyc3QgcGxhY2VtZW50LFxuICogbGVmdCBmYWxsYmFjaywgdmVydGljYWwgY2VudGVyaW5nLCBhbmQgY2xhbXBpbmcgd2l0aGluIGJvdW5kcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVUb29sdGlwUG9zaXRpb24oXG4gIGNvbnRhaW5lclJlY3Q6IERPTVJlY3QsXG4gIHRvb2x0aXBSZWN0OiBET01SZWN0IHwgbnVsbCxcbiAgY2xpZW50WDogbnVtYmVyLFxuICBjbGllbnRZOiBudW1iZXIsXG4gIGdhcDogbnVtYmVyLFxuKTogVG9vbHRpcFBvc2l0aW9uIHtcbiAgY29uc3QgY3Vyc29yWCA9IGNsaWVudFggLSBjb250YWluZXJSZWN0LmxlZnQ7XG4gIGNvbnN0IGN1cnNvclkgPSBjbGllbnRZIC0gY29udGFpbmVyUmVjdC50b3A7XG5cbiAgaWYgKCF0b29sdGlwUmVjdCkge1xuICAgIHJldHVybiB7XG4gICAgICB4OiBNYXRoLm1pbihjdXJzb3JYICsgZ2FwLCBjb250YWluZXJSZWN0LndpZHRoIC0gZ2FwKSxcbiAgICAgIHk6IE1hdGgubWF4KGdhcCwgTWF0aC5taW4oY3Vyc29yWSwgY29udGFpbmVyUmVjdC5oZWlnaHQgLSBnYXApKSxcbiAgICB9O1xuICB9XG5cbiAgbGV0IHggPSBjdXJzb3JYICsgZ2FwO1xuICBpZiAoeCArIHRvb2x0aXBSZWN0LndpZHRoID4gY29udGFpbmVyUmVjdC53aWR0aCAtIGdhcCkge1xuICAgIHggPSBjdXJzb3JYIC0gdG9vbHRpcFJlY3Qud2lkdGggLSBnYXA7XG4gIH1cbiAgeCA9IE1hdGgubWF4KGdhcCwgTWF0aC5taW4oeCwgY29udGFpbmVyUmVjdC53aWR0aCAtIHRvb2x0aXBSZWN0LndpZHRoIC0gZ2FwKSk7XG5cbiAgbGV0IHkgPSBjdXJzb3JZIC0gdG9vbHRpcFJlY3QuaGVpZ2h0IC8gMjtcbiAgeSA9IE1hdGgubWF4KGdhcCwgTWF0aC5taW4oeSwgY29udGFpbmVyUmVjdC5oZWlnaHQgLSB0b29sdGlwUmVjdC5oZWlnaHQgLSBnYXApKTtcblxuICByZXR1cm4geyB4LCB5IH07XG59XG5cbi8qKlxuICogTWFwIGVhc2luZyBvcHRpb24gdG8gZDMgZWFzaW5nIGZ1bmN0aW9uIG5hbWUgdGhhdCBjYWxsZXJzIGNhbiBsb29rdXAgb24gZDMuXG4gKiBLZWVwcyBtYXBwaW5nIGNvbnNpc3RlbnQgYWNyb3NzIGNoYXJ0cy5cbiAqL1xuZXhwb3J0IHR5cGUgRDNFYXNpbmdOYW1lID1cbiAgfCAnZWFzZUxpbmVhcidcbiAgfCAnZWFzZVBvbHlJbk91dCdcbiAgfCAnZWFzZVBvbHlJbidcbiAgfCAnZWFzZVBvbHlPdXQnXG4gIHwgJ2Vhc2VDdWJpYydcbiAgfCAnZWFzZUN1YmljSW4nXG4gIHwgJ2Vhc2VDdWJpY091dCdcbiAgfCAnZWFzZUN1YmljSW5PdXQnO1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwRWFzaW5nTmFtZShvcHRpb24/OiBzdHJpbmcpOiBEM0Vhc2luZ05hbWUge1xuICBzd2l0Y2ggKG9wdGlvbikge1xuICAgIGNhc2UgJ2xpbmVhcic6XG4gICAgICByZXR1cm4gJ2Vhc2VMaW5lYXInO1xuICAgIGNhc2UgJ2Vhc2UnOlxuICAgICAgcmV0dXJuICdlYXNlUG9seUluT3V0JztcbiAgICBjYXNlICdlYXNlLWluJzpcbiAgICAgIHJldHVybiAnZWFzZVBvbHlJbic7XG4gICAgY2FzZSAnZWFzZS1vdXQnOlxuICAgICAgcmV0dXJuICdlYXNlUG9seU91dCc7XG4gICAgY2FzZSAnZWFzZS1pbi1vdXQnOlxuICAgICAgcmV0dXJuICdlYXNlUG9seUluT3V0JztcbiAgICBjYXNlICdjdWJpYyc6XG4gICAgICByZXR1cm4gJ2Vhc2VDdWJpYyc7XG4gICAgY2FzZSAnY3ViaWMtaW4nOlxuICAgICAgcmV0dXJuICdlYXNlQ3ViaWNJbic7XG4gICAgY2FzZSAnY3ViaWMtb3V0JzpcbiAgICAgIHJldHVybiAnZWFzZUN1YmljT3V0JztcbiAgICBjYXNlICdjdWJpYy1pbi1vdXQnOlxuICAgICAgcmV0dXJuICdlYXNlQ3ViaWNJbk91dCc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnZWFzZUN1YmljT3V0JztcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgYSBEMyBlYXNpbmcgZnVuY3Rpb24gZm9yIHRoZSBwcm92aWRlZCBvcHRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFYXNpbmdGdW5jdGlvbihkMzogdHlwZW9mIGltcG9ydCgnZDMnKSwgb3B0aW9uPzogc3RyaW5nKTogKHQ6IG51bWJlcikgPT4gbnVtYmVyIHtcbiAgY29uc3QgbmFtZSA9IG1hcEVhc2luZ05hbWUob3B0aW9uKTtcbiAgY29uc3QgZWFzaW5nID0gKGQzIGFzIGFueSlbbmFtZV07XG4gIHJldHVybiB0eXBlb2YgZWFzaW5nID09PSAnZnVuY3Rpb24nID8gZWFzaW5nIDogKGQzIGFzIGFueSkuZWFzZUN1YmljT3V0O1xufVxuIl19","export const AX_CHARTS = 'ACOREX_CHARTS';\nexport * from './lib/chart-base.interface';\nexport * from './lib/chart-colors';\nexport * from './lib/chart-utils';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jaGFydHMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUM7QUFDekMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQVhfQ0hBUlRTID0gJ0FDT1JFWF9DSEFSVFMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2hhcnQtYmFzZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2hhcnQtY29sb3JzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoYXJ0LXV0aWxzJztcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNoYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NoYXJ0cy9zcmMvYWNvcmV4LWNoYXJ0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-charts.mjs","sources":["../tmp-esm2022/lib/chart-colors.js","../tmp-esm2022/lib/chart-component-base.js","../tmp-esm2022/lib/chart-utils.js","../tmp-esm2022/index.js","../tmp-esm2022/acorex-charts.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n// Default color palette for charts\nexport const AX_CHART_COLOR_PALETTE = new InjectionToken('AX_CHART_COLOR_PALETTE', {\n providedIn: 'root',\n factory: () => [\n '#FF6B6B', // Vibrant Red\n '#4ECDC4', // Electric Teal\n '#45B7D1', // Bright Blue\n '#96CEB4', // Fresh Green\n '#FFEEAD', // Bright Yellow\n '#D4A5A5', // Rose Pink\n '#9B59B6', // Rich Purple\n '#3498DB', // Deep Blue\n '#E67E22', // Bright Orange\n '#2ECC71', // Emerald Green\n '#E74C3C', // Cherry Red\n '#1ABC9C', // Turquoise\n '#F1C40F', // Golden Yellow\n '#8E44AD', // Deep Purple\n '#16A085', // Dark Teal\n // --- Extended Colors (new) ---\n '#27AE60', // Forest Green\n '#2980B9', // Strong Blue\n '#F39C12', // Vivid Orange\n '#C0392B', // Dark Red\n '#7D3C98', // Plum Purple\n '#2C3E50', // Midnight Blue\n '#D35400', // Burnt Orange\n '#BDC3C7', // Soft Silver\n '#34495E', // Slate Gray\n '#1F618D', // Royal Blue\n '#58D68D', // Mint Green\n '#5DADE2', // Sky Blue\n '#F1948A', // Soft Coral\n '#A569BD', // Lavender Purple\n '#F8C471', // Warm Gold\n ],\n});\n/**\n * Helper function to get a color from the palette by index\n * @param index The index of the color to get\n * @param palette The color palette to use\n * @returns The color at the specified index\n */\nexport function getChartColor(index, palette) {\n return palette[index % palette.length];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2hhcnRzL3NyYy9saWIvY2hhcnQtY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsbUNBQW1DO0FBQ25DLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsRUFDeEI7SUFDRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixTQUFTLEVBQUUsY0FBYztRQUN6QixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsU0FBUyxFQUFFLFlBQVk7UUFDdkIsU0FBUyxFQUFFLGNBQWM7UUFDekIsU0FBUyxFQUFFLFlBQVk7UUFDdkIsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLFNBQVMsRUFBRSxhQUFhO1FBQ3hCLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsU0FBUyxFQUFFLGNBQWM7UUFDekIsU0FBUyxFQUFFLFlBQVk7UUFFdkIsZ0NBQWdDO1FBQ2hDLFNBQVMsRUFBRSxlQUFlO1FBQzFCLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLFNBQVMsRUFBRSxlQUFlO1FBQzFCLFNBQVMsRUFBRSxXQUFXO1FBQ3RCLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsU0FBUyxFQUFFLGVBQWU7UUFDMUIsU0FBUyxFQUFFLGNBQWM7UUFDekIsU0FBUyxFQUFFLGFBQWE7UUFDeEIsU0FBUyxFQUFFLGFBQWE7UUFDeEIsU0FBUyxFQUFFLGFBQWE7UUFDeEIsU0FBUyxFQUFFLFdBQVc7UUFDdEIsU0FBUyxFQUFFLGFBQWE7UUFDeEIsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixTQUFTLEVBQUUsWUFBWTtLQUN4QjtDQUNGLENBQ0YsQ0FBQztBQUdGOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUFhLEVBQUUsT0FBaUI7SUFDNUQsT0FBTyxPQUFPLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gRGVmYXVsdCBjb2xvciBwYWxldHRlIGZvciBjaGFydHNcbmV4cG9ydCBjb25zdCBBWF9DSEFSVF9DT0xPUl9QQUxFVFRFID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZ1tdPihcbiAgJ0FYX0NIQVJUX0NPTE9SX1BBTEVUVEUnLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IFtcbiAgICAgICcjRkY2QjZCJywgLy8gVmlicmFudCBSZWRcbiAgICAgICcjNEVDREM0JywgLy8gRWxlY3RyaWMgVGVhbFxuICAgICAgJyM0NUI3RDEnLCAvLyBCcmlnaHQgQmx1ZVxuICAgICAgJyM5NkNFQjQnLCAvLyBGcmVzaCBHcmVlblxuICAgICAgJyNGRkVFQUQnLCAvLyBCcmlnaHQgWWVsbG93XG4gICAgICAnI0Q0QTVBNScsIC8vIFJvc2UgUGlua1xuICAgICAgJyM5QjU5QjYnLCAvLyBSaWNoIFB1cnBsZVxuICAgICAgJyMzNDk4REInLCAvLyBEZWVwIEJsdWVcbiAgICAgICcjRTY3RTIyJywgLy8gQnJpZ2h0IE9yYW5nZVxuICAgICAgJyMyRUNDNzEnLCAvLyBFbWVyYWxkIEdyZWVuXG4gICAgICAnI0U3NEMzQycsIC8vIENoZXJyeSBSZWRcbiAgICAgICcjMUFCQzlDJywgLy8gVHVycXVvaXNlXG4gICAgICAnI0YxQzQwRicsIC8vIEdvbGRlbiBZZWxsb3dcbiAgICAgICcjOEU0NEFEJywgLy8gRGVlcCBQdXJwbGVcbiAgICAgICcjMTZBMDg1JywgLy8gRGFyayBUZWFsXG5cbiAgICAgIC8vIC0tLSBFeHRlbmRlZCBDb2xvcnMgKG5ldykgLS0tXG4gICAgICAnIzI3QUU2MCcsIC8vIEZvcmVzdCBHcmVlblxuICAgICAgJyMyOTgwQjknLCAvLyBTdHJvbmcgQmx1ZVxuICAgICAgJyNGMzlDMTInLCAvLyBWaXZpZCBPcmFuZ2VcbiAgICAgICcjQzAzOTJCJywgLy8gRGFyayBSZWRcbiAgICAgICcjN0QzQzk4JywgLy8gUGx1bSBQdXJwbGVcbiAgICAgICcjMkMzRTUwJywgLy8gTWlkbmlnaHQgQmx1ZVxuICAgICAgJyNEMzU0MDAnLCAvLyBCdXJudCBPcmFuZ2VcbiAgICAgICcjQkRDM0M3JywgLy8gU29mdCBTaWx2ZXJcbiAgICAgICcjMzQ0OTVFJywgLy8gU2xhdGUgR3JheVxuICAgICAgJyMxRjYxOEQnLCAvLyBSb3lhbCBCbHVlXG4gICAgICAnIzU4RDY4RCcsIC8vIE1pbnQgR3JlZW5cbiAgICAgICcjNURBREUyJywgLy8gU2t5IEJsdWVcbiAgICAgICcjRjE5NDhBJywgLy8gU29mdCBDb3JhbFxuICAgICAgJyNBNTY5QkQnLCAvLyBMYXZlbmRlciBQdXJwbGVcbiAgICAgICcjRjhDNDcxJywgLy8gV2FybSBHb2xkXG4gICAgXSxcbiAgfVxuKTtcblxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgYSBjb2xvciBmcm9tIHRoZSBwYWxldHRlIGJ5IGluZGV4XG4gKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBjb2xvciB0byBnZXRcbiAqIEBwYXJhbSBwYWxldHRlIFRoZSBjb2xvciBwYWxldHRlIHRvIHVzZVxuICogQHJldHVybnMgVGhlIGNvbG9yIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENoYXJ0Q29sb3IoaW5kZXg6IG51bWJlciwgcGFsZXR0ZTogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gcGFsZXR0ZVtpbmRleCAlIHBhbGV0dGUubGVuZ3RoXTtcbn1cbiJdfQ==","import { afterNextRender, Directive, ElementRef, inject, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Base component class for all chart components\n * Copied from @acorex/cdk/common NXComponent to remove external dependency\n */\nexport class AXChartComponent {\n #elementRef = inject(ElementRef);\n #isRendered = signal(false, ...(ngDevMode ? [{ debugName: \"#isRendered\" }] : []));\n isRendered = this.#isRendered.asReadonly();\n #afterNextRender = afterNextRender(() => {\n if (!this.isRendered()) {\n this.nativeElement['__axContext__'] = this;\n this.#isRendered.set(true);\n }\n });\n /**\n * Gets the native HTML element of the component\n */\n get nativeElement() {\n return this.#elementRef.nativeElement;\n }\n /**\n * Gets the host HTML element of the component (alias for nativeElement)\n * @returns T - The native DOM element associated with this component\n */\n getHostElement() {\n return this.#elementRef.nativeElement;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.6\", type: AXChartComponent, isStandalone: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXChartComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtY29tcG9uZW50LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jaGFydHMvc3JjL2xpYi9jaGFydC1jb21wb25lbnQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFdkY7OztHQUdHO0FBRUgsTUFBTSxPQUFnQixnQkFBZ0I7SUFDcEMsV0FBVyxHQUE0QixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLHVEQUFDLENBQUM7SUFFbEIsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFckQsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRTtRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUg7O09BRUc7SUFDSCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBa0IsQ0FBQztJQUM3QyxDQUFDO3VHQTFCbUIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRHJDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBCYXNlIGNvbXBvbmVudCBjbGFzcyBmb3IgYWxsIGNoYXJ0IGNvbXBvbmVudHNcbiAqIENvcGllZCBmcm9tIEBhY29yZXgvY2RrL2NvbW1vbiBOWENvbXBvbmVudCB0byByZW1vdmUgZXh0ZXJuYWwgZGVwZW5kZW5jeVxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWENoYXJ0Q29tcG9uZW50IHtcbiAgI2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAjaXNSZW5kZXJlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIGlzUmVuZGVyZWQgPSB0aGlzLiNpc1JlbmRlcmVkLmFzUmVhZG9ubHkoKTtcblxuICAjYWZ0ZXJOZXh0UmVuZGVyID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICBpZiAoIXRoaXMuaXNSZW5kZXJlZCgpKSB7XG4gICAgICB0aGlzLm5hdGl2ZUVsZW1lbnRbJ19fYXhDb250ZXh0X18nXSA9IHRoaXM7XG4gICAgICB0aGlzLiNpc1JlbmRlcmVkLnNldCh0cnVlKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBuYXRpdmUgSFRNTCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnRcbiAgICovXG4gIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBob3N0IEhUTUwgZWxlbWVudCBvZiB0aGUgY29tcG9uZW50IChhbGlhcyBmb3IgbmF0aXZlRWxlbWVudClcbiAgICogQHJldHVybnMgVCAtIFRoZSBuYXRpdmUgRE9NIGVsZW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29tcG9uZW50XG4gICAqL1xuICBwdWJsaWMgZ2V0SG9zdEVsZW1lbnQ8VCA9IEhUTUxFbGVtZW50PigpOiBUIHtcbiAgICByZXR1cm4gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIFQ7XG4gIH1cbn1cbiJdfQ==","/**\n * Compute edge-aware tooltip position with intelligent placement,\n * considering available space in all directions and preventing overflow.\n */\nexport function computeTooltipPosition(containerRect, tooltipRect, clientX, clientY, gap) {\n const cursorX = clientX - containerRect.left;\n const cursorY = clientY - containerRect.top;\n if (!tooltipRect) {\n return {\n x: Math.min(cursorX + gap, containerRect.width - gap),\n y: Math.max(gap, Math.min(cursorY, containerRect.height - gap)),\n };\n }\n // Calculate available space in each direction\n const spaceRight = containerRect.width - cursorX;\n const spaceLeft = cursorX;\n const spaceBelow = containerRect.height - cursorY;\n const spaceAbove = cursorY;\n // Determine best horizontal position\n let x;\n if (spaceRight >= tooltipRect.width + gap) {\n // Position to the right of cursor\n x = cursorX + gap;\n }\n else if (spaceLeft >= tooltipRect.width + gap) {\n // Position to the left of cursor\n x = cursorX - tooltipRect.width - gap;\n }\n else {\n // Center horizontally if neither side has enough space\n x = Math.max(gap, Math.min((containerRect.width - tooltipRect.width) / 2, containerRect.width - tooltipRect.width - gap));\n }\n // Determine best vertical position\n let y;\n if (spaceBelow >= tooltipRect.height + gap) {\n // Position below cursor\n y = cursorY + gap;\n }\n else if (spaceAbove >= tooltipRect.height + gap) {\n // Position above cursor\n y = cursorY - tooltipRect.height - gap;\n }\n else {\n // Center vertically if neither direction has enough space\n y = Math.max(gap, Math.min((containerRect.height - tooltipRect.height) / 2, containerRect.height - tooltipRect.height - gap));\n }\n // Ensure tooltip stays within container bounds\n x = Math.max(gap, Math.min(x, containerRect.width - tooltipRect.width - gap));\n y = Math.max(gap, Math.min(y, containerRect.height - tooltipRect.height - gap));\n return { x, y };\n}\nexport function mapEasingName(option) {\n switch (option) {\n case 'linear':\n return 'easeLinear';\n case 'ease':\n return 'easePolyInOut';\n case 'ease-in':\n return 'easePolyIn';\n case 'ease-out':\n return 'easePolyOut';\n case 'ease-in-out':\n return 'easePolyInOut';\n case 'cubic':\n return 'easeCubic';\n case 'cubic-in':\n return 'easeCubicIn';\n case 'cubic-out':\n return 'easeCubicOut';\n case 'cubic-in-out':\n return 'easeCubicInOut';\n default:\n return 'easeCubicOut';\n }\n}\n/**\n * Returns a D3 easing function for the provided option.\n */\nexport function getEasingFunction(d3, option) {\n const name = mapEasingName(option);\n const easing = d3[name];\n return typeof easing === 'function' ? easing : d3.easeCubicOut;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jaGFydHMvc3JjL2xpYi9jaGFydC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLGFBQXNCLEVBQ3RCLFdBQTJCLEVBQzNCLE9BQWUsRUFDZixPQUFlLEVBQ2YsR0FBVztJQUVYLE1BQU0sT0FBTyxHQUFHLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQzdDLE1BQU0sT0FBTyxHQUFHLE9BQU8sR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDO0lBRTVDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixPQUFPO1lBQ0wsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxhQUFhLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNyRCxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztTQUNoRSxDQUFDO0lBQ0osQ0FBQztJQUVELDhDQUE4QztJQUM5QyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztJQUNqRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUM7SUFDMUIsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDbEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDO0lBRTNCLHFDQUFxQztJQUNyQyxJQUFJLENBQVMsQ0FBQztJQUNkLElBQUksVUFBVSxJQUFJLFdBQVcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDMUMsa0NBQWtDO1FBQ2xDLENBQUMsR0FBRyxPQUFPLEdBQUcsR0FB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QU8sTUFBTSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBRSxFQUFVLENBQUMsWUFBWSxDQUFDO0FBQzFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBUb29sdGlwUG9zaXRpb24gPSB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG5cbi8qKlxuICogQ29tcHV0ZSBlZGdlLWF3YXJlIHRvb2x0aXAgcG9zaXRpb24gd2l0aCBpbnRlbGxpZ2VudCBwbGFjZW1lbnQsXG4gKiBjb25zaWRlcmluZyBhdmFpbGFibGUgc3BhY2UgaW4gYWxsIGRpcmVjdGlvbnMgYW5kIHByZXZlbnRpbmcgb3ZlcmZsb3cuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlVG9vbHRpcFBvc2l0aW9uKFxuICBjb250YWluZXJSZWN0OiBET01SZWN0LFxuICB0b29sdGlwUmVjdDogRE9NUmVjdCB8IG51bGwsXG4gIGNsaWVudFg6IG51bWJlcixcbiAgY2xpZW50WTogbnVtYmVyLFxuICBnYXA6IG51bWJlcixcbik6IFRvb2x0aXBQb3NpdGlvbiB7XG4gIGNvbnN0IGN1cnNvclggPSBjbGllbnRYIC0gY29udGFpbmVyUmVjdC5sZWZ0O1xuICBjb25zdCBjdXJzb3JZID0gY2xpZW50WSAtIGNvbnRhaW5lclJlY3QudG9wO1xuXG4gIGlmICghdG9vbHRpcFJlY3QpIHtcbiAgICByZXR1cm4ge1xuICAgICAgeDogTWF0aC5taW4oY3Vyc29yWCArIGdhcCwgY29udGFpbmVyUmVjdC53aWR0aCAtIGdhcCksXG4gICAgICB5OiBNYXRoLm1heChnYXAsIE1hdGgubWluKGN1cnNvclksIGNvbnRhaW5lclJlY3QuaGVpZ2h0IC0gZ2FwKSksXG4gICAgfTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSBhdmFpbGFibGUgc3BhY2UgaW4gZWFjaCBkaXJlY3Rpb25cbiAgY29uc3Qgc3BhY2VSaWdodCA9IGNvbnRhaW5lclJlY3Qud2lkdGggLSBjdXJzb3JYO1xuICBjb25zdCBzcGFjZUxlZnQgPSBjdXJzb3JYO1xuICBjb25zdCBzcGFjZUJlbG93ID0gY29udGFpbmVyUmVjdC5oZWlnaHQgLSBjdXJzb3JZO1xuICBjb25zdCBzcGFjZUFib3ZlID0gY3Vyc29yWTtcblxuICAvLyBEZXRlcm1pbmUgYmVzdCBob3Jpem9udGFsIHBvc2l0aW9uXG4gIGxldCB4OiBudW1iZXI7XG4gIGlmIChzcGFjZVJpZ2h0ID49IHRvb2x0aXBSZWN0LndpZHRoICsgZ2FwKSB7XG4gICAgLy8gUG9zaXRpb24gdG8gdGhlIHJpZ2h0IG9mIGN1cnNvclxuICAgIHggPSBjdXJzb3JYICsgZ2FwO1xuICB9IGVsc2UgaWYgKHNwYWNlTGVmdCA+PSB0b29sdGlwUmVjdC53aWR0aCArIGdhcCkge1xuICAgIC8vIFBvc2l0aW9uIHRvIHRoZSBsZWZ0IG9mIGN1cnNvclxuICAgIHggPSBjdXJzb3JYIC0gdG9vbHRpcFJlY3Qud2lkdGggLSBnYXA7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ2VudGVyIGhvcml6b250YWxseSBpZiBuZWl0aGVyIHNpZGUgaGFzIGVub3VnaCBzcGFjZVxuICAgIHggPSBNYXRoLm1heChcbiAgICAgIGdhcCxcbiAgICAgIE1hdGgubWluKChjb250YWluZXJSZWN0LndpZHRoIC0gdG9vbHRpcFJlY3Qud2lkdGgpIC8gMiwgY29udGFpbmVyUmVjdC53aWR0aCAtIHRvb2x0aXBSZWN0LndpZHRoIC0gZ2FwKSxcbiAgICApO1xuICB9XG5cbiAgLy8gRGV0ZXJtaW5lIGJlc3QgdmVydGljYWwgcG9zaXRpb25cbiAgbGV0IHk6IG51bWJlcjtcbiAgaWYgKHNwYWNlQmVsb3cgPj0gdG9vbHRpcFJlY3QuaGVpZ2h0ICsgZ2FwKSB7XG4gICAgLy8gUG9zaXRpb24gYmVsb3cgY3Vyc29yXG4gICAgeSA9IGN1cnNvclkgKyBnYXA7XG4gIH0gZWxzZSBpZiAoc3BhY2VBYm92ZSA+PSB0b29sdGlwUmVjdC5oZWlnaHQgKyBnYXApIHtcbiAgICAvLyBQb3NpdGlvbiBhYm92ZSBjdXJzb3JcbiAgICB5ID0gY3Vyc29yWSAtIHRvb2x0aXBSZWN0LmhlaWdodCAtIGdhcDtcbiAgfSBlbHNlIHtcbiAgICAvLyBDZW50ZXIgdmVydGljYWxseSBpZiBuZWl0aGVyIGRpcmVjdGlvbiBoYXMgZW5vdWdoIHNwYWNlXG4gICAgeSA9IE1hdGgubWF4KFxuICAgICAgZ2FwLFxuICAgICAgTWF0aC5taW4oKGNvbnRhaW5lclJlY3QuaGVpZ2h0IC0gdG9vbHRpcFJlY3QuaGVpZ2h0KSAvIDIsIGNvbnRhaW5lclJlY3QuaGVpZ2h0IC0gdG9vbHRpcFJlY3QuaGVpZ2h0IC0gZ2FwKSxcbiAgICApO1xuICB9XG5cbiAgLy8gRW5zdXJlIHRvb2x0aXAgc3RheXMgd2l0aGluIGNvbnRhaW5lciBib3VuZHNcbiAgeCA9IE1hdGgubWF4KGdhcCwgTWF0aC5taW4oeCwgY29udGFpbmVyUmVjdC53aWR0aCAtIHRvb2x0aXBSZWN0LndpZHRoIC0gZ2FwKSk7XG4gIHkgPSBNYXRoLm1heChnYXAsIE1hdGgubWluKHksIGNvbnRhaW5lclJlY3QuaGVpZ2h0IC0gdG9vbHRpcFJlY3QuaGVpZ2h0IC0gZ2FwKSk7XG5cbiAgcmV0dXJuIHsgeCwgeSB9O1xufVxuXG4vKipcbiAqIE1hcCBlYXNpbmcgb3B0aW9uIHRvIGQzIGVhc2luZyBmdW5jdGlvbiBuYW1lIHRoYXQgY2FsbGVycyBjYW4gbG9va3VwIG9uIGQzLlxuICogS2VlcHMgbWFwcGluZyBjb25zaXN0ZW50IGFjcm9zcyBjaGFydHMuXG4gKi9cbmV4cG9ydCB0eXBlIEQzRWFzaW5nTmFtZSA9XG4gIHwgJ2Vhc2VMaW5lYXInXG4gIHwgJ2Vhc2VQb2x5SW5PdXQnXG4gIHwgJ2Vhc2VQb2x5SW4nXG4gIHwgJ2Vhc2VQb2x5T3V0J1xuICB8ICdlYXNlQ3ViaWMnXG4gIHwgJ2Vhc2VDdWJpY0luJ1xuICB8ICdlYXNlQ3ViaWNPdXQnXG4gIHwgJ2Vhc2VDdWJpY0luT3V0JztcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcEVhc2luZ05hbWUob3B0aW9uPzogc3RyaW5nKTogRDNFYXNpbmdOYW1lIHtcbiAgc3dpdGNoIChvcHRpb24pIHtcbiAgICBjYXNlICdsaW5lYXInOlxuICAgICAgcmV0dXJuICdlYXNlTGluZWFyJztcbiAgICBjYXNlICdlYXNlJzpcbiAgICAgIHJldHVybiAnZWFzZVBvbHlJbk91dCc7XG4gICAgY2FzZSAnZWFzZS1pbic6XG4gICAgICByZXR1cm4gJ2Vhc2VQb2x5SW4nO1xuICAgIGNhc2UgJ2Vhc2Utb3V0JzpcbiAgICAgIHJldHVybiAnZWFzZVBvbHlPdXQnO1xuICAgIGNhc2UgJ2Vhc2UtaW4tb3V0JzpcbiAgICAgIHJldHVybiAnZWFzZVBvbHlJbk91dCc7XG4gICAgY2FzZSAnY3ViaWMnOlxuICAgICAgcmV0dXJuICdlYXNlQ3ViaWMnO1xuICAgIGNhc2UgJ2N1YmljLWluJzpcbiAgICAgIHJldHVybiAnZWFzZUN1YmljSW4nO1xuICAgIGNhc2UgJ2N1YmljLW91dCc6XG4gICAgICByZXR1cm4gJ2Vhc2VDdWJpY091dCc7XG4gICAgY2FzZSAnY3ViaWMtaW4tb3V0JzpcbiAgICAgIHJldHVybiAnZWFzZUN1YmljSW5PdXQnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ2Vhc2VDdWJpY091dCc7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgRDMgZWFzaW5nIGZ1bmN0aW9uIGZvciB0aGUgcHJvdmlkZWQgb3B0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWFzaW5nRnVuY3Rpb24oZDM6IHR5cGVvZiBpbXBvcnQoJ2QzJyksIG9wdGlvbj86IHN0cmluZyk6ICh0OiBudW1iZXIpID0+IG51bWJlciB7XG4gIGNvbnN0IG5hbWUgPSBtYXBFYXNpbmdOYW1lKG9wdGlvbik7XG4gIGNvbnN0IGVhc2luZyA9IChkMyBhcyBhbnkpW25hbWVdO1xuICByZXR1cm4gdHlwZW9mIGVhc2luZyA9PT0gJ2Z1bmN0aW9uJyA/IGVhc2luZyA6IChkMyBhcyBhbnkpLmVhc2VDdWJpY091dDtcbn1cbiJdfQ==","export const AX_CHARTS = 'ACOREX_CHARTS';\nexport * from './lib/chart-base.interface';\nexport * from './lib/chart-colors';\nexport * from './lib/chart-component-base';\nexport * from './lib/chart-types';\nexport * from './lib/chart-utils';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jaGFydHMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUM7QUFDekMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFYX0NIQVJUUyA9ICdBQ09SRVhfQ0hBUlRTJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoYXJ0LWJhc2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoYXJ0LWNvbG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jaGFydC1jb21wb25lbnQtYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jaGFydC10eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jaGFydC11dGlscyc7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNoYXJ0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NoYXJ0cy9zcmMvYWNvcmV4LWNoYXJ0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;AACA;AACY,MAAC,sBAAsB,GAAG,IAAI,cAAc,CAAC,wBAAwB,EAAE;AACnF,IAAI,UAAU,EAAE,MAAM;AACtB,IAAI,OAAO,EAAE,MAAM;AACnB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB;AACA,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,QAAQ,SAAS;AACjB,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE;AAC9C,IAAI,OAAO,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;AAC1C;;AC5CA;AACA;AACA;AACA;AACO,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrF,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;AAC9C,IAAI,gBAAgB,GAAG,eAAe,CAAC,MAAM;AAC7C,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AAChC,YAAY,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI;AACtD,YAAY,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AACtC,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA;AACA;AACA,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa;AAC7C,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa;AAC7C,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC1K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAChJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;AClCb;AACA;AACA;AACA;AACO,SAAS,sBAAsB,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE;AAC1F,IAAI,MAAM,OAAO,GAAG,OAAO,GAAG,aAAa,CAAC,IAAI;AAChD,IAAI,MAAM,OAAO,GAAG,OAAO,GAAG,aAAa,CAAC,GAAG;AAC/C,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,QAAQ,OAAO;AACf,YAAY,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC;AACjE,YAAY,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;AAC3E,SAAS;AACT,IAAI;AACJ;AACA,IAAI,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,GAAG,OAAO;AACpD,IAAI,MAAM,SAAS,GAAG,OAAO;AAC7B,IAAI,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,GAAG,OAAO;AACrD,IAAI,MAAM,UAAU,GAAG,OAAO;AAC9B;AACA,IAAI,IAAI,CAAC;AACT,IAAI,IAAI,UAAU,IAAI,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE;AAC/C;AACA,QAAQ,CAAC,GAAG,OAAO,GAAG,GAAG;AACzB,IAAI;AACJ,SAAS,IAAI,SAAS,IAAI,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE;AACnD;AACA,QAAQ,CAAC,GAAG,OAAO,GAAG,WAAW,CAAC,KAAK,GAAG,GAAG;AAC7C,IAAI;AACJ,SAAS;AACT;AACA,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,CAAC,EAAE,aAAa,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AACjI,IAAI;AACJ;AACA,IAAI,IAAI,CAAC;AACT,IAAI,IAAI,UAAU,IAAI,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE;AAChD;AACA,QAAQ,CAAC,GAAG,OAAO,GAAG,GAAG;AACzB,IAAI;AACJ,SAAS,IAAI,UAAU,IAAI,WAAW,CAAC,MAAM,GAAG,GAAG,EAAE;AACrD;AACA,QAAQ,CAAC,GAAG,OAAO,GAAG,WAAW,CAAC,MAAM,GAAG,GAAG;AAC9C,IAAI;AACJ,SAAS;AACT;AACA,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;AACrI,IAAI;AACJ;AACA,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AACjF,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;AACnF,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE;AACnB;AACO,SAAS,aAAa,CAAC,MAAM,EAAE;AACtC,IAAI,QAAQ,MAAM;AAClB,QAAQ,KAAK,QAAQ;AACrB,YAAY,OAAO,YAAY;AAC/B,QAAQ,KAAK,MAAM;AACnB,YAAY,OAAO,eAAe;AAClC,QAAQ,KAAK,SAAS;AACtB,YAAY,OAAO,YAAY;AAC/B,QAAQ,KAAK,UAAU;AACvB,YAAY,OAAO,aAAa;AAChC,QAAQ,KAAK,aAAa;AAC1B,YAAY,OAAO,eAAe;AAClC,QAAQ,KAAK,OAAO;AACpB,YAAY,OAAO,WAAW;AAC9B,QAAQ,KAAK,UAAU;AACvB,YAAY,OAAO,aAAa;AAChC,QAAQ,KAAK,WAAW;AACxB,YAAY,OAAO,cAAc;AACjC,QAAQ,KAAK,cAAc;AAC3B,YAAY,OAAO,gBAAgB;AACnC,QAAQ;AACR,YAAY,OAAO,cAAc;AACjC;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE;AAC9C,IAAI,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC;AACtC,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;AAC3B,IAAI,OAAO,OAAO,MAAM,KAAK,UAAU,GAAG,MAAM,GAAG,EAAE,CAAC,YAAY;AAClE;;AClFY,MAAC,SAAS,GAAG;;ACAzB;AACA;AACA;;;;"}
@@ -1,9 +1,8 @@
1
- import * as _acorex_cdk_common from '@acorex/cdk/common';
2
- import { AXAnimationEasing } from '@acorex/cdk/common';
1
+ import * as _acorex_charts from '@acorex/charts';
2
+ import { AXAnimationEasing, AXChartComponent, AXChartComponentBase } from '@acorex/charts';
3
3
  import * as d3 from 'd3';
4
4
  import * as _angular_core from '@angular/core';
5
5
  import { OnDestroy, InjectionToken } from '@angular/core';
6
- import { AXChartComponentBase } from '@acorex/charts';
7
6
  import { AXChartTooltipData } from '@acorex/charts/chart-tooltip';
8
7
 
9
8
  /**
@@ -91,7 +90,7 @@ type AXGaugeChartValue = number;
91
90
  * Gauge Chart Component
92
91
  * Renders a semi-circular gauge chart with animated needle and thresholds
93
92
  */
94
- declare class AXGaugeChartComponent implements OnDestroy, AXChartComponentBase {
93
+ declare class AXGaugeChartComponent extends AXChartComponent implements OnDestroy, AXChartComponentBase {
95
94
  private cdr;
96
95
  /** Chart value input */
97
96
  value: _angular_core.InputSignal<number>;
@@ -130,7 +129,7 @@ declare class AXGaugeChartComponent implements OnDestroy, AXChartComponentBase {
130
129
  }[];
131
130
  label?: string;
132
131
  animationDuration?: number;
133
- animationEasing?: _acorex_cdk_common.AXAnimationEasing;
132
+ animationEasing?: _acorex_charts.AXAnimationEasing;
134
133
  messages?: AXGaugeChartMessages;
135
134
  }>;
136
135
  private readonly TOOLTIP_GAP;
@@ -151,7 +150,7 @@ declare class AXGaugeChartComponent implements OnDestroy, AXChartComponentBase {
151
150
  /**
152
151
  * Updates only the value display and dial position without recreating the chart
153
152
  */
154
- protected updateValueAndDial(value: number): void;
153
+ updateValueAndDial(value: number): void;
155
154
  /**
156
155
  * Draw the background arc
157
156
  */
@@ -170,6 +169,7 @@ declare class AXGaugeChartComponent implements OnDestroy, AXChartComponentBase {
170
169
  private showSingleRangeTooltip;
171
170
  /**
172
171
  * Updates the tooltip position based on the mouse event
172
+ * For gauge charts, we need simpler coordinate handling since D3 events are already in container coordinates
173
173
  */
174
174
  private updateTooltipPosition;
175
175
  /**
@@ -1,8 +1,7 @@
1
- import * as _acorex_cdk_common from '@acorex/cdk/common';
2
- import { AXAnimationEasing, NXNativeEvent, NXComponent } from '@acorex/cdk/common';
1
+ import * as _acorex_charts from '@acorex/charts';
2
+ import { AXAnimationEasing, NXNativeEvent, AXChartComponent, AXChartComponentBase } from '@acorex/charts';
3
3
  import * as _angular_core from '@angular/core';
4
4
  import { TemplateRef, InjectionToken } from '@angular/core';
5
- import { AXChartComponentBase } from '@acorex/charts';
6
5
 
7
6
  /**
8
7
  * Represents a node in the hierarchy chart.
@@ -286,7 +285,7 @@ interface AXHierarchyChartToggleEvent {
286
285
  *
287
286
  * Supports both default node styling and custom node templates.
288
287
  */
289
- declare class AXHierarchyChartComponent extends NXComponent implements AXChartComponentBase {
288
+ declare class AXHierarchyChartComponent extends AXChartComponent implements AXChartComponentBase {
290
289
  private chartContainer;
291
290
  customNodeTemplate: _angular_core.Signal<TemplateRef<AXHierarchyChartNodeContext>>;
292
291
  private ngZone;
@@ -324,7 +323,7 @@ declare class AXHierarchyChartComponent extends NXComponent implements AXChartCo
324
323
  expandAll?: boolean;
325
324
  className?: string;
326
325
  animationDuration?: number;
327
- animationEasing?: _acorex_cdk_common.AXAnimationEasing;
326
+ animationEasing?: _acorex_charts.AXAnimationEasing;
328
327
  messages?: AXHierarchyChartMessages;
329
328
  }>;
330
329
  protected effectiveMessages: _angular_core.Signal<{
package/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import * as i0 from '@angular/core';
1
2
  import { InjectionToken } from '@angular/core';
2
3
  import * as d3 from 'd3';
3
4
 
@@ -16,13 +17,47 @@ declare const AX_CHART_COLOR_PALETTE: InjectionToken<string[]>;
16
17
  */
17
18
  declare function getChartColor(index: number, palette: string[]): string;
18
19
 
20
+ /**
21
+ * Base component class for all chart components
22
+ * Copied from @acorex/cdk/common NXComponent to remove external dependency
23
+ */
24
+ declare abstract class AXChartComponent {
25
+ #private;
26
+ protected isRendered: i0.Signal<boolean>;
27
+ /**
28
+ * Gets the native HTML element of the component
29
+ */
30
+ get nativeElement(): HTMLElement;
31
+ /**
32
+ * Gets the host HTML element of the component (alias for nativeElement)
33
+ * @returns T - The native DOM element associated with this component
34
+ */
35
+ getHostElement<T = HTMLElement>(): T;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXChartComponent, never>;
37
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXChartComponent, never, never, {}, {}, never, never, true, never>;
38
+ }
39
+
40
+ /**
41
+ * Animation easing options for charts
42
+ * Copied from @acorex/cdk/common to remove external dependency
43
+ */
44
+ type AXAnimationEasing = 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'cubic' | 'cubic-in' | 'cubic-out' | 'cubic-in-out';
45
+ /**
46
+ * Native event wrapper
47
+ * Copied from @acorex/cdk/common to remove external dependency
48
+ */
49
+ interface NXNativeEvent {
50
+ nativeEvent: MouseEvent | TouchEvent;
51
+ sender: any;
52
+ }
53
+
19
54
  type TooltipPosition = {
20
55
  x: number;
21
56
  y: number;
22
57
  };
23
58
  /**
24
- * Compute edge-aware tooltip position with right-first placement,
25
- * left fallback, vertical centering, and clamping within bounds.
59
+ * Compute edge-aware tooltip position with intelligent placement,
60
+ * considering available space in all directions and preventing overflow.
26
61
  */
27
62
  declare function computeTooltipPosition(containerRect: DOMRect, tooltipRect: DOMRect | null, clientX: number, clientY: number, gap: number): TooltipPosition;
28
63
  /**
@@ -38,5 +73,5 @@ declare function getEasingFunction(d3: typeof d3, option?: string): (t: number)
38
73
 
39
74
  declare const AX_CHARTS = "ACOREX_CHARTS";
40
75
 
41
- export { AX_CHARTS, AX_CHART_COLOR_PALETTE, computeTooltipPosition, getChartColor, getEasingFunction, mapEasingName };
42
- export type { AXChartComponentBase, D3EasingName, TooltipPosition };
76
+ export { AXChartComponent, AX_CHARTS, AX_CHART_COLOR_PALETTE, computeTooltipPosition, getChartColor, getEasingFunction, mapEasingName };
77
+ export type { AXAnimationEasing, AXChartComponentBase, D3EasingName, NXNativeEvent, TooltipPosition };
@@ -1,9 +1,8 @@
1
- import * as _acorex_cdk_common from '@acorex/cdk/common';
2
- import { AXAnimationEasing, NXNativeEvent, NXComponent } from '@acorex/cdk/common';
1
+ import * as _acorex_charts from '@acorex/charts';
2
+ import { AXAnimationEasing, NXNativeEvent, AXChartComponent, AXChartComponentBase } from '@acorex/charts';
3
3
  import * as d3 from 'd3';
4
4
  import * as _angular_core from '@angular/core';
5
5
  import { OnInit, AfterViewInit, OnDestroy, InjectionToken } from '@angular/core';
6
- import { AXChartComponentBase } from '@acorex/charts';
7
6
  import { AXChartLegendCompatible, AXChartLegendItem } from '@acorex/charts/chart-legend';
8
7
  import { AXChartTooltipData } from '@acorex/charts/chart-tooltip';
9
8
 
@@ -103,7 +102,7 @@ type AXLineChartValue = AXLineChartData[] | AXLineChartData;
103
102
  /**
104
103
  * Line Chart Component for rendering data as lines with interactive hover effects and animations
105
104
  */
106
- declare class AXLineChartComponent extends NXComponent implements OnInit, AfterViewInit, OnDestroy, AXChartLegendCompatible, AXChartComponentBase {
105
+ declare class AXLineChartComponent extends AXChartComponent implements OnInit, AfterViewInit, OnDestroy, AXChartLegendCompatible, AXChartComponentBase {
107
106
  #private;
108
107
  data: _angular_core.InputSignal<AXLineChartValue>;
109
108
  options: _angular_core.InputSignal<AXLineChartOption>;
@@ -134,7 +133,6 @@ declare class AXLineChartComponent extends NXComponent implements OnInit, AfterV
134
133
  protected tooltipData: _angular_core.Signal<AXChartTooltipData>;
135
134
  private configToken;
136
135
  private chartColors;
137
- private platform;
138
136
  protected effectiveOptions: _angular_core.Signal<{
139
137
  width?: number;
140
138
  height?: number;
@@ -161,7 +159,7 @@ declare class AXLineChartComponent extends NXComponent implements OnInit, AfterV
161
159
  fillOpacity?: number;
162
160
  showCrosshair?: boolean;
163
161
  animationDuration?: number;
164
- animationEasing?: _acorex_cdk_common.AXAnimationEasing;
162
+ animationEasing?: _acorex_charts.AXAnimationEasing;
165
163
  messages?: AXLineChartMessages;
166
164
  }>;
167
165
  protected effectiveMessages: _angular_core.Signal<{
package/package.json CHANGED
@@ -1,9 +1,7 @@
1
1
  {
2
2
  "name": "@acorex/charts",
3
- "version": "21.0.0-next.10",
3
+ "version": "21.0.0-next.12",
4
4
  "peerDependencies": {
5
- "@acorex/cdk": "21.0.0-next.10",
6
- "@acorex/core": "21.0.0-next.10",
7
5
  "@angular/common": "^20.0.0",
8
6
  "@angular/core": "^20.0.0",
9
7
  "d3": "^7.9.0"