@praxisui/charts 9.0.36 → 9.0.38
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,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-08-
|
|
3
|
+
"generatedAt": "2026-08-30T02:26:55.462Z",
|
|
4
4
|
"packageName": "@praxisui/charts",
|
|
5
|
-
"packageVersion": "9.0.
|
|
5
|
+
"packageVersion": "9.0.38",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 3,
|
|
@@ -1870,6 +1870,7 @@ class PraxisChartComponent {
|
|
|
1870
1870
|
shellObserver = signal(null, ...(ngDevMode ? [{ debugName: "shellObserver" }] : /* istanbul ignore next */ []));
|
|
1871
1871
|
themeObserver = signal(null, ...(ngDevMode ? [{ debugName: "themeObserver" }] : /* istanbul ignore next */ []));
|
|
1872
1872
|
inheritedTheme = signal(null, ...(ngDevMode ? [{ debugName: "inheritedTheme" }] : /* istanbul ignore next */ []));
|
|
1873
|
+
inheritedHostTextColor = signal(undefined, ...(ngDevMode ? [{ debugName: "inheritedHostTextColor" }] : /* istanbul ignore next */ []));
|
|
1873
1874
|
currentLoadState = signal('idle', ...(ngDevMode ? [{ debugName: "currentLoadState" }] : /* istanbul ignore next */ []));
|
|
1874
1875
|
remoteResolvedData = signal(null, ...(ngDevMode ? [{ debugName: "remoteResolvedData" }] : /* istanbul ignore next */ []));
|
|
1875
1876
|
remoteRuntimeState = signal('idle', ...(ngDevMode ? [{ debugName: "remoteRuntimeState" }] : /* istanbul ignore next */ []));
|
|
@@ -1892,7 +1893,7 @@ class PraxisChartComponent {
|
|
|
1892
1893
|
remoteRequestSequence = 0;
|
|
1893
1894
|
previousSelectionScopeSignature = null;
|
|
1894
1895
|
effectiveConfig = computed(() => {
|
|
1895
|
-
const base = this.applyInheritedTheme(this.mappedRuntimeConfig() ?? this.config(), this.inheritedTheme());
|
|
1896
|
+
const base = this.applyInheritedTheme(this.mappedRuntimeConfig() ?? this.config(), this.inheritedTheme(), this.inheritedHostTextColor());
|
|
1896
1897
|
const runtimeQueryContext = normalizePraxisDataQueryContext(this.queryContext());
|
|
1897
1898
|
const runtimeFilters = resolvePraxisFilterCriteria(this.filterCriteria(), runtimeQueryContext);
|
|
1898
1899
|
if (!runtimeQueryContext
|
|
@@ -2401,8 +2402,6 @@ class PraxisChartComponent {
|
|
|
2401
2402
|
.sort(([left], [right]) => left.localeCompare(right));
|
|
2402
2403
|
return JSON.stringify({
|
|
2403
2404
|
chartId: config.id ?? event.chartId,
|
|
2404
|
-
seriesId: event.seriesId,
|
|
2405
|
-
seriesName: event.seriesName,
|
|
2406
2405
|
category: event.category,
|
|
2407
2406
|
sourceValues,
|
|
2408
2407
|
});
|
|
@@ -2596,6 +2595,7 @@ class PraxisChartComponent {
|
|
|
2596
2595
|
? this.cloneTheme(PRAXIS_CHART_THEME_VARIANTS[chartThemePresetId])
|
|
2597
2596
|
: {};
|
|
2598
2597
|
const hostTextColor = getComputedStyle(host).color.trim();
|
|
2598
|
+
this.inheritedHostTextColor.set(hostTextColor || undefined);
|
|
2599
2599
|
const theme = {
|
|
2600
2600
|
...preset,
|
|
2601
2601
|
textColor: preset.textColor || hostTextColor || undefined,
|
|
@@ -2613,17 +2613,22 @@ class PraxisChartComponent {
|
|
|
2613
2613
|
isThemeVariant(value) {
|
|
2614
2614
|
return Object.prototype.hasOwnProperty.call(PRAXIS_CHART_THEME_VARIANTS, value);
|
|
2615
2615
|
}
|
|
2616
|
-
applyInheritedTheme(config, inherited) {
|
|
2616
|
+
applyInheritedTheme(config, inherited, hostTextColor) {
|
|
2617
2617
|
if (!inherited) {
|
|
2618
2618
|
return config;
|
|
2619
2619
|
}
|
|
2620
2620
|
const explicit = config.theme;
|
|
2621
|
+
const explicitSurface = explicit?.surface;
|
|
2622
|
+
const usesHostSurface = explicitSurface?.mode === 'embedded'
|
|
2623
|
+
|| explicitSurface?.background?.trim().toLowerCase() === 'transparent';
|
|
2621
2624
|
return {
|
|
2622
2625
|
...config,
|
|
2623
2626
|
theme: {
|
|
2624
2627
|
palette: explicit?.palette ?? inherited.palette,
|
|
2625
|
-
backgroundColor: explicit?.backgroundColor
|
|
2626
|
-
|
|
2628
|
+
backgroundColor: explicit?.backgroundColor
|
|
2629
|
+
?? (usesHostSurface ? undefined : inherited.backgroundColor),
|
|
2630
|
+
textColor: explicit?.textColor
|
|
2631
|
+
?? (usesHostSurface ? hostTextColor : inherited.textColor),
|
|
2627
2632
|
borderRadius: explicit?.borderRadius ?? inherited.borderRadius,
|
|
2628
2633
|
legend: this.mergeOptionalThemeObject(inherited.legend, explicit?.legend),
|
|
2629
2634
|
tooltip: this.mergeOptionalThemeObject(inherited.tooltip, explicit?.tooltip),
|
|
@@ -5265,17 +5270,19 @@ class EChartsEngineAdapter {
|
|
|
5265
5270
|
});
|
|
5266
5271
|
const zrender = chart?.getZr?.();
|
|
5267
5272
|
this.zrenderClickHandler = (event) => {
|
|
5273
|
+
const occurredAt = Date.now();
|
|
5268
5274
|
window.setTimeout(() => {
|
|
5269
|
-
if (
|
|
5275
|
+
if (this.isSeriesFallbackDuplicate(occurredAt)) {
|
|
5270
5276
|
return;
|
|
5271
5277
|
}
|
|
5272
|
-
this.emitCategoryClickFromGrid(event, payload);
|
|
5278
|
+
this.emitCategoryClickFromGrid(event, payload, occurredAt);
|
|
5273
5279
|
}, 0);
|
|
5274
5280
|
};
|
|
5275
5281
|
zrender?.on?.('click', this.zrenderClickHandler);
|
|
5276
5282
|
this.domClickHandler = (event) => {
|
|
5283
|
+
const occurredAt = Date.now();
|
|
5277
5284
|
window.setTimeout(() => {
|
|
5278
|
-
if (
|
|
5285
|
+
if (this.isSeriesFallbackDuplicate(occurredAt)) {
|
|
5279
5286
|
return;
|
|
5280
5287
|
}
|
|
5281
5288
|
const rect = host.getBoundingClientRect();
|
|
@@ -5284,7 +5291,7 @@ class EChartsEngineAdapter {
|
|
|
5284
5291
|
this.emitCategoryClickFromGrid({
|
|
5285
5292
|
offsetX,
|
|
5286
5293
|
offsetY,
|
|
5287
|
-
}, payload);
|
|
5294
|
+
}, payload, occurredAt);
|
|
5288
5295
|
}, 0);
|
|
5289
5296
|
};
|
|
5290
5297
|
host.addEventListener('click', this.domClickHandler, true);
|
|
@@ -5340,7 +5347,7 @@ class EChartsEngineAdapter {
|
|
|
5340
5347
|
? undefined
|
|
5341
5348
|
: String(candidate);
|
|
5342
5349
|
}
|
|
5343
|
-
emitCategoryClickFromGrid(event, payload) {
|
|
5350
|
+
emitCategoryClickFromGrid(event, payload, occurredAt) {
|
|
5344
5351
|
const chart = this.chart;
|
|
5345
5352
|
if (!chart || typeof chart.containPixel !== 'function' || typeof chart.convertFromPixel !== 'function') {
|
|
5346
5353
|
return;
|
|
@@ -5375,7 +5382,7 @@ class EChartsEngineAdapter {
|
|
|
5375
5382
|
horizontal,
|
|
5376
5383
|
categoryIndex,
|
|
5377
5384
|
});
|
|
5378
|
-
if (this.isDuplicateGridClick(signature)) {
|
|
5385
|
+
if (this.isDuplicateGridClick(signature, occurredAt)) {
|
|
5379
5386
|
return;
|
|
5380
5387
|
}
|
|
5381
5388
|
const usesCanonicalStatsRows = payload.config.dataSource?.kind === 'remote'
|
|
@@ -5401,11 +5408,14 @@ class EChartsEngineAdapter {
|
|
|
5401
5408
|
data,
|
|
5402
5409
|
});
|
|
5403
5410
|
}
|
|
5404
|
-
|
|
5405
|
-
|
|
5411
|
+
isSeriesFallbackDuplicate(occurredAt) {
|
|
5412
|
+
return this.lastSeriesClickAt > 0
|
|
5413
|
+
&& Math.abs(occurredAt - this.lastSeriesClickAt) < 80;
|
|
5414
|
+
}
|
|
5415
|
+
isDuplicateGridClick(signature, occurredAt) {
|
|
5406
5416
|
const duplicate = this.lastGridClick?.signature === signature
|
|
5407
|
-
&&
|
|
5408
|
-
this.lastGridClick = { signature, at:
|
|
5417
|
+
&& Math.abs(occurredAt - this.lastGridClick.at) < 80;
|
|
5418
|
+
this.lastGridClick = { signature, at: occurredAt };
|
|
5409
5419
|
return duplicate;
|
|
5410
5420
|
}
|
|
5411
5421
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: EChartsEngineAdapter, deps: [{ token: EChartsOptionBuilderService }], target: i0.ɵɵFactoryTarget.Injectable });
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/charts",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.38",
|
|
4
4
|
"description": "Metadata-driven charts library for Praxis UI Angular with engine adapters and Apache ECharts as the initial renderer.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^21.0.0",
|
|
7
7
|
"@angular/core": "^21.0.0",
|
|
8
|
-
"@praxisui/core": "^9.0.
|
|
8
|
+
"@praxisui/core": "^9.0.38",
|
|
9
9
|
"@angular/forms": "^21.0.0",
|
|
10
10
|
"@angular/material": "^21.0.0",
|
|
11
|
-
"@praxisui/table": "^9.0.
|
|
11
|
+
"@praxisui/table": "^9.0.38",
|
|
12
12
|
"rxjs": "~7.8.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
@@ -583,6 +583,7 @@ declare class PraxisChartComponent {
|
|
|
583
583
|
private readonly shellObserver;
|
|
584
584
|
private readonly themeObserver;
|
|
585
585
|
private readonly inheritedTheme;
|
|
586
|
+
private readonly inheritedHostTextColor;
|
|
586
587
|
private readonly currentLoadState;
|
|
587
588
|
private readonly remoteResolvedData;
|
|
588
589
|
private readonly remoteRuntimeState;
|