@praxisui/charts 9.0.49 → 9.0.50
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-31T15:53:16.439Z",
|
|
4
4
|
"packageName": "@praxisui/charts",
|
|
5
|
-
"packageVersion": "9.0.
|
|
5
|
+
"packageVersion": "9.0.50",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 3,
|
|
@@ -1914,6 +1914,7 @@ class PraxisChartComponent {
|
|
|
1914
1914
|
mappedRuntimeConfig = signal(null, ...(ngDevMode ? [{ debugName: "mappedRuntimeConfig" }] : /* istanbul ignore next */ []));
|
|
1915
1915
|
chartDocumentMappingError = signal(null, ...(ngDevMode ? [{ debugName: "chartDocumentMappingError" }] : /* istanbul ignore next */ []));
|
|
1916
1916
|
activeSelectionSignature = signal(null, ...(ngDevMode ? [{ debugName: "activeSelectionSignature" }] : /* istanbul ignore next */ []));
|
|
1917
|
+
configEditorContextPending = signal(false, ...(ngDevMode ? [{ debugName: "configEditorContextPending" }] : /* istanbul ignore next */ []));
|
|
1917
1918
|
showAccessibleData = signal(false, ...(ngDevMode ? [{ debugName: "showAccessibleData" }] : /* istanbul ignore next */ []));
|
|
1918
1919
|
accessibilityPanelId = `praxis-chart-data-${++chartAccessibilityPanelSequence}`;
|
|
1919
1920
|
accessibilityPanelTitleId = `${this.accessibilityPanelId}-title`;
|
|
@@ -2307,51 +2308,57 @@ class PraxisChartComponent {
|
|
|
2307
2308
|
return this.enableCustomization() && !!this.settingsPanel && !!this.runtimeChartDocument();
|
|
2308
2309
|
}
|
|
2309
2310
|
async openConfigEditor() {
|
|
2310
|
-
if (!this.settingsPanel) {
|
|
2311
|
+
if (!this.settingsPanel || this.configEditorContextPending()) {
|
|
2311
2312
|
return;
|
|
2312
2313
|
}
|
|
2313
2314
|
const document = this.runtimeChartDocument();
|
|
2314
2315
|
if (!document) {
|
|
2315
2316
|
return;
|
|
2316
2317
|
}
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2318
|
+
this.configEditorContextPending.set(true);
|
|
2319
|
+
try {
|
|
2320
|
+
const resolvedContext = await this.resolveConfigEditorContext(document);
|
|
2321
|
+
const { PraxisChartConfigEditor } = await Promise.resolve().then(function () { return praxisChartConfigEditor; });
|
|
2322
|
+
this.clearEditorSessionSubscriptions();
|
|
2323
|
+
const ref = this.settingsPanel.open({
|
|
2324
|
+
id: `chart.${document.chartId || this.effectiveConfig().id || 'praxis-chart'}`,
|
|
2325
|
+
title: this.editChartLabel(),
|
|
2326
|
+
content: {
|
|
2327
|
+
component: PraxisChartConfigEditor,
|
|
2328
|
+
inputs: {
|
|
2329
|
+
chartDocument: document,
|
|
2330
|
+
document,
|
|
2331
|
+
mode: 'edit',
|
|
2332
|
+
readonly: false,
|
|
2333
|
+
availableResources: this.resolveEditorOptions(this.availableResources(), resolvedContext['availableResources']),
|
|
2334
|
+
availableFields: this.resolveEditorOptions(this.availableFields(), resolvedContext['availableFields']),
|
|
2335
|
+
availableTargets: this.resolveEditorOptions(this.availableTargets(), resolvedContext['availableTargets']),
|
|
2336
|
+
},
|
|
2333
2337
|
},
|
|
2334
|
-
}
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2338
|
+
});
|
|
2339
|
+
const appliedSubscription = ref.applied$
|
|
2340
|
+
.subscribe((nextDocument) => {
|
|
2341
|
+
if (!nextDocument) {
|
|
2342
|
+
return;
|
|
2343
|
+
}
|
|
2344
|
+
const clone = structuredClone(nextDocument);
|
|
2345
|
+
this.runtimeChartDocument.set(clone);
|
|
2346
|
+
this.chartDocumentApplied.emit(clone);
|
|
2347
|
+
});
|
|
2348
|
+
const savedSubscription = ref.saved$
|
|
2349
|
+
.subscribe((nextDocument) => {
|
|
2350
|
+
if (!nextDocument) {
|
|
2351
|
+
return;
|
|
2352
|
+
}
|
|
2353
|
+
const clone = structuredClone(nextDocument);
|
|
2354
|
+
this.runtimeChartDocument.set(clone);
|
|
2355
|
+
this.chartDocumentSaved.emit(clone);
|
|
2356
|
+
});
|
|
2357
|
+
this.editorSessionSubscriptions = [appliedSubscription, savedSubscription];
|
|
2358
|
+
}
|
|
2359
|
+
finally {
|
|
2360
|
+
this.configEditorContextPending.set(false);
|
|
2361
|
+
}
|
|
2355
2362
|
}
|
|
2356
2363
|
async resolveConfigEditorContext(document) {
|
|
2357
2364
|
const metadata = this.componentMetadataRegistry.get('praxis-chart');
|
|
@@ -2840,6 +2847,8 @@ class PraxisChartComponent {
|
|
|
2840
2847
|
size="compact"
|
|
2841
2848
|
appearance="filled"
|
|
2842
2849
|
type="button"
|
|
2850
|
+
[busy]="configEditorContextPending()"
|
|
2851
|
+
[disabled]="configEditorContextPending()"
|
|
2843
2852
|
[attr.aria-label]="editChartLabel()"
|
|
2844
2853
|
[matTooltip]="editChartLabel()"
|
|
2845
2854
|
(click)="openConfigEditor()"
|
|
@@ -2980,6 +2989,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
2980
2989
|
size="compact"
|
|
2981
2990
|
appearance="filled"
|
|
2982
2991
|
type="button"
|
|
2992
|
+
[busy]="configEditorContextPending()"
|
|
2993
|
+
[disabled]="configEditorContextPending()"
|
|
2983
2994
|
[attr.aria-label]="editChartLabel()"
|
|
2984
2995
|
[matTooltip]="editChartLabel()"
|
|
2985
2996
|
(click)="openConfigEditor()"
|
|
@@ -7076,7 +7087,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
7076
7087
|
}] });
|
|
7077
7088
|
|
|
7078
7089
|
class PraxisChartConfigEditorContextResolverService {
|
|
7079
|
-
static
|
|
7090
|
+
static CATALOG_REQUEST_TIMEOUT_MS = 30_000;
|
|
7091
|
+
static CAPABILITY_REQUEST_TIMEOUT_MS = 10_000;
|
|
7080
7092
|
discovery = inject(ResourceDiscoveryService);
|
|
7081
7093
|
capabilityAdapter = inject(ChartResourceCapabilityCatalogAdapter);
|
|
7082
7094
|
targetAdapter = inject(ChartCompositionTargetCatalogAdapter);
|
|
@@ -7249,7 +7261,7 @@ class PraxisChartConfigEditorContextResolverService {
|
|
|
7249
7261
|
return cached.promise;
|
|
7250
7262
|
}
|
|
7251
7263
|
let request;
|
|
7252
|
-
const promise = firstValueFrom(this.discovery.getSchemaCatalog().pipe(timeout(PraxisChartConfigEditorContextResolverService.
|
|
7264
|
+
const promise = firstValueFrom(this.discovery.getSchemaCatalog().pipe(timeout(PraxisChartConfigEditorContextResolverService.CATALOG_REQUEST_TIMEOUT_MS)))
|
|
7253
7265
|
.then((catalog) => this.projectCatalog(catalog))
|
|
7254
7266
|
.finally(() => {
|
|
7255
7267
|
if (this.catalogProjectionRequest === request) {
|
|
@@ -7348,7 +7360,7 @@ class PraxisChartConfigEditorContextResolverService {
|
|
|
7348
7360
|
return cached.promise;
|
|
7349
7361
|
}
|
|
7350
7362
|
let request;
|
|
7351
|
-
const promise = firstValueFrom(this.discovery.getCapabilitiesByUrl(candidate.capabilitiesHref).pipe(timeout(PraxisChartConfigEditorContextResolverService.
|
|
7363
|
+
const promise = firstValueFrom(this.discovery.getCapabilitiesByUrl(candidate.capabilitiesHref).pipe(timeout(PraxisChartConfigEditorContextResolverService.CAPABILITY_REQUEST_TIMEOUT_MS)))
|
|
7352
7364
|
.finally(() => {
|
|
7353
7365
|
if (this.capabilityRequests.get(key) === request) {
|
|
7354
7366
|
this.capabilityRequests.delete(key);
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/charts",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.50",
|
|
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.50",
|
|
9
9
|
"@angular/forms": "^21.0.0",
|
|
10
10
|
"@angular/material": "^21.0.0",
|
|
11
|
-
"@praxisui/table": "^9.0.
|
|
11
|
+
"@praxisui/table": "^9.0.50",
|
|
12
12
|
"rxjs": "~7.8.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
@@ -598,6 +598,7 @@ declare class PraxisChartComponent {
|
|
|
598
598
|
private readonly mappedRuntimeConfig;
|
|
599
599
|
private readonly chartDocumentMappingError;
|
|
600
600
|
private readonly activeSelectionSignature;
|
|
601
|
+
protected readonly configEditorContextPending: _angular_core.WritableSignal<boolean>;
|
|
601
602
|
readonly showAccessibleData: _angular_core.WritableSignal<boolean>;
|
|
602
603
|
readonly accessibilityPanelId: string;
|
|
603
604
|
readonly accessibilityPanelTitleId: string;
|