@praxisui/charts 9.0.0-beta.8 → 9.0.0-beta.80
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.
- package/README.md +97 -4
- package/ai/component-registry.json +2490 -0
- package/fesm2022/praxisui-charts.mjs +4746 -1490
- package/package.json +8 -4
- package/types/praxisui-charts.d.ts +604 -89
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as _praxisui_charts from '@praxisui/charts';
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
|
-
import { InjectionToken, Provider,
|
|
3
|
+
import { InjectionToken, Provider, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
|
|
4
4
|
import * as _praxisui_core from '@praxisui/core';
|
|
5
|
-
import { PraxisTextValue, WidgetDefinition, WidgetShellConfig, WidgetInstance,
|
|
5
|
+
import { PraxisAnalyticsComparisonStatsRequest, PraxisDataQueryContext, PraxisTextValue, PraxisPresentationVisualizationConfig, PraxisPresentationVisualizationPoint, PraxisPresentationVisualizationSegment, PraxisPresentationVisualizationThreshold, WidgetDefinition, WidgetShellConfig, WidgetInstance, PraxisI18nService, ApiUrlConfig, PraxisAnalyticsProjection, AnalyticsSchemaContractService, AnalyticsPresentationResolver, WidgetPageDefinition, SettingsValueProvider, ComponentConfigEditorContextResult, ResourceCapabilitySnapshot, PraxisI18nDictionary, PraxisI18nConfig, PraxisI18nMessageDescriptor, ComponentAuthoringManifest, ComponentDocMeta } from '@praxisui/core';
|
|
6
6
|
import { Observable, BehaviorSubject } from 'rxjs';
|
|
7
|
-
import { EChartsCoreOption } from 'echarts';
|
|
8
7
|
import { HttpClient } from '@angular/common/http';
|
|
9
8
|
|
|
10
9
|
type PraxisChartAxisType = 'category' | 'value' | 'time';
|
|
@@ -31,7 +30,7 @@ interface PraxisChartQueryMetricConfig {
|
|
|
31
30
|
aggregation?: 'sum' | 'count' | 'distinct-count' | 'avg' | 'min' | 'max';
|
|
32
31
|
alias?: string;
|
|
33
32
|
}
|
|
34
|
-
type PraxisChartStatsOperation = 'group-by' | 'timeseries' | 'distribution';
|
|
33
|
+
type PraxisChartStatsOperation = 'group-by' | 'timeseries' | 'distribution' | 'comparison';
|
|
35
34
|
type PraxisChartStatsDistributionMode = 'terms' | 'histogram';
|
|
36
35
|
type PraxisChartStatsOrderBy = 'key-asc' | 'key-desc' | 'value-asc' | 'value-desc';
|
|
37
36
|
type PraxisChartStatsGranularity = 'day' | 'week' | 'month';
|
|
@@ -69,7 +68,7 @@ interface PraxisChartDistributionStatsRequest {
|
|
|
69
68
|
limit?: number;
|
|
70
69
|
orderBy?: 'KEY_ASC' | 'KEY_DESC' | 'VALUE_ASC' | 'VALUE_DESC';
|
|
71
70
|
}
|
|
72
|
-
type PraxisChartStatsRequest = PraxisChartGroupByStatsRequest | PraxisChartTimeSeriesStatsRequest | PraxisChartDistributionStatsRequest;
|
|
71
|
+
type PraxisChartStatsRequest = PraxisChartGroupByStatsRequest | PraxisChartTimeSeriesStatsRequest | PraxisChartDistributionStatsRequest | PraxisAnalyticsComparisonStatsRequest;
|
|
73
72
|
interface PraxisChartQueryConfig {
|
|
74
73
|
sourceKind?: 'praxis.stats';
|
|
75
74
|
statsOperation?: PraxisChartStatsOperation;
|
|
@@ -99,16 +98,7 @@ interface PraxisChartRemoteDataSource {
|
|
|
99
98
|
}
|
|
100
99
|
type PraxisChartDataSource = PraxisChartLocalDataSource | PraxisChartRemoteDataSource;
|
|
101
100
|
|
|
102
|
-
|
|
103
|
-
filters?: Record<string, unknown> | null;
|
|
104
|
-
sort?: string[] | null;
|
|
105
|
-
limit?: number | null;
|
|
106
|
-
page?: {
|
|
107
|
-
index?: number | null;
|
|
108
|
-
size?: number | null;
|
|
109
|
-
} | null;
|
|
110
|
-
meta?: Record<string, unknown> | null;
|
|
111
|
-
}
|
|
101
|
+
type PraxisChartQueryContext = PraxisDataQueryContext;
|
|
112
102
|
type PraxisChartLoadState = 'idle' | 'loading' | 'ready' | 'empty' | 'error';
|
|
113
103
|
interface PraxisChartInteractionConfig {
|
|
114
104
|
pointClick?: boolean;
|
|
@@ -130,8 +120,17 @@ interface PraxisChartDeclarativeEventAction {
|
|
|
130
120
|
target?: string;
|
|
131
121
|
mapping?: Record<string, string>;
|
|
132
122
|
}
|
|
123
|
+
interface PraxisChartPointActionEvent {
|
|
124
|
+
chartId?: string;
|
|
125
|
+
event: 'pointClick';
|
|
126
|
+
point: PraxisChartPointEvent;
|
|
127
|
+
filters: Record<string, unknown>;
|
|
128
|
+
target?: string;
|
|
129
|
+
action: PraxisChartDeclarativeEventAction;
|
|
130
|
+
}
|
|
133
131
|
interface PraxisChartSelectionEvent extends PraxisChartPointEvent {
|
|
134
132
|
selected: boolean;
|
|
133
|
+
mode: 'single';
|
|
135
134
|
filters: Record<string, unknown>;
|
|
136
135
|
action?: PraxisChartDeclarativeEventAction;
|
|
137
136
|
}
|
|
@@ -142,6 +141,14 @@ interface PraxisChartCrossFilterEvent {
|
|
|
142
141
|
action?: PraxisChartDeclarativeEventAction;
|
|
143
142
|
source: PraxisChartSelectionEvent;
|
|
144
143
|
}
|
|
144
|
+
interface PraxisChartDrillDownEvent {
|
|
145
|
+
chartId?: string;
|
|
146
|
+
filters: Record<string, unknown>;
|
|
147
|
+
target?: string;
|
|
148
|
+
action: PraxisChartDeclarativeEventAction;
|
|
149
|
+
source: PraxisChartSelectionEvent;
|
|
150
|
+
point: PraxisChartPointEvent;
|
|
151
|
+
}
|
|
145
152
|
interface PraxisChartQueryRequestEvent {
|
|
146
153
|
chartId?: string;
|
|
147
154
|
dataSource: Extract<PraxisChartDataSource, {
|
|
@@ -266,6 +273,7 @@ interface PraxisChartConfig {
|
|
|
266
273
|
preferredLoadState?: Extract<PraxisChartLoadState, 'idle' | 'loading' | 'ready' | 'empty' | 'error'>;
|
|
267
274
|
}
|
|
268
275
|
|
|
276
|
+
declare const PRAXIS_X_UI_CHART_AUTHORABLE_VERSION: "0.1.0";
|
|
269
277
|
type PraxisXUiChartKind = 'bar' | 'combo' | 'horizontal-bar' | 'line' | 'pie' | 'donut' | 'area' | 'stacked-bar' | 'stacked-area' | 'scatter';
|
|
270
278
|
type PraxisXUiChartPreset = 'kpi-trend' | 'comparison' | 'distribution' | 'ranking' | 'composition' | 'hierarchical-drill-down';
|
|
271
279
|
type PraxisXUiChartTextValue = string | {
|
|
@@ -273,9 +281,11 @@ type PraxisXUiChartTextValue = string | {
|
|
|
273
281
|
fallback?: string;
|
|
274
282
|
};
|
|
275
283
|
type PraxisXUiChartSourceKind = 'praxis.stats' | 'derived';
|
|
276
|
-
type PraxisXUiChartStatsOperation = 'group-by' | 'timeseries' | 'distribution';
|
|
284
|
+
type PraxisXUiChartStatsOperation = 'group-by' | 'timeseries' | 'distribution' | 'comparison';
|
|
277
285
|
type PraxisXUiChartStatsDistributionMode = 'terms' | 'histogram';
|
|
278
286
|
type PraxisXUiChartStatsOrderBy = 'key-asc' | 'key-desc' | 'value-asc' | 'value-desc';
|
|
287
|
+
type PraxisXUiChartComparisonPeriodPreset = 'TODAY' | 'YESTERDAY' | 'LAST_7_DAYS' | 'LAST_30_DAYS' | 'THIS_MONTH' | 'LAST_MONTH' | 'THIS_QUARTER' | 'THIS_YEAR';
|
|
288
|
+
type PraxisXUiChartComparisonPeriodMode = 'PREVIOUS_ALIGNED' | 'PREVIOUS_CALENDAR_PERIOD';
|
|
279
289
|
type PraxisXUiChartAggregation = 'sum' | 'avg' | 'min' | 'max' | 'count' | 'distinct-count';
|
|
280
290
|
interface PraxisXUiChartFilter {
|
|
281
291
|
field: string;
|
|
@@ -307,6 +317,12 @@ interface PraxisXUiChartAggregationConfig {
|
|
|
307
317
|
operation: PraxisXUiChartAggregation;
|
|
308
318
|
as?: string;
|
|
309
319
|
}
|
|
320
|
+
interface PraxisXUiChartComparisonPeriod {
|
|
321
|
+
field: string;
|
|
322
|
+
timezone: string;
|
|
323
|
+
preset: PraxisXUiChartComparisonPeriodPreset;
|
|
324
|
+
mode: PraxisXUiChartComparisonPeriodMode;
|
|
325
|
+
}
|
|
310
326
|
interface PraxisXUiChartStatsSourceOptions {
|
|
311
327
|
granularity?: 'day' | 'week' | 'month';
|
|
312
328
|
fillGaps?: boolean;
|
|
@@ -315,6 +331,7 @@ interface PraxisXUiChartStatsSourceOptions {
|
|
|
315
331
|
bucketCount?: number;
|
|
316
332
|
orderBy?: PraxisXUiChartStatsOrderBy;
|
|
317
333
|
limit?: number;
|
|
334
|
+
comparisonPeriod?: PraxisXUiChartComparisonPeriod;
|
|
318
335
|
}
|
|
319
336
|
interface PraxisXUiChartRefresh {
|
|
320
337
|
strategy?: 'manual' | 'interval' | 'on-context-change';
|
|
@@ -324,6 +341,7 @@ interface PraxisXUiChartRefresh {
|
|
|
324
341
|
}
|
|
325
342
|
interface PraxisXUiChartSource {
|
|
326
343
|
kind: PraxisXUiChartSourceKind;
|
|
344
|
+
/** Canonical operational resource path. Resource keys are discovery identities and must be resolved before persistence. */
|
|
327
345
|
resource?: string;
|
|
328
346
|
operation?: PraxisXUiChartStatsOperation;
|
|
329
347
|
options?: PraxisXUiChartStatsSourceOptions;
|
|
@@ -414,6 +432,7 @@ interface ChartEditorResourceOption {
|
|
|
414
432
|
label: string;
|
|
415
433
|
path: string;
|
|
416
434
|
description?: string;
|
|
435
|
+
operations?: PraxisXUiChartStatsOperation[];
|
|
417
436
|
}
|
|
418
437
|
interface ChartEditorFieldOption {
|
|
419
438
|
field: string;
|
|
@@ -422,36 +441,42 @@ interface ChartEditorFieldOption {
|
|
|
422
441
|
aggregable?: boolean;
|
|
423
442
|
filterable?: boolean;
|
|
424
443
|
roles?: Array<'dimension' | 'metric' | 'time'>;
|
|
444
|
+
resourceIds?: string[];
|
|
445
|
+
resourcePaths?: string[];
|
|
446
|
+
operations?: PraxisXUiChartStatsOperation[];
|
|
447
|
+
distributionModes?: PraxisXUiChartStatsDistributionMode[];
|
|
448
|
+
aggregations?: PraxisXUiChartAggregation[];
|
|
425
449
|
}
|
|
450
|
+
type ChartEditorEventKey = 'pointClick' | 'selectionChange' | 'drillDown' | 'crossFilter';
|
|
426
451
|
interface ChartEditorTargetOption {
|
|
427
452
|
id: string;
|
|
428
453
|
label: string;
|
|
429
454
|
kind?: 'widget' | 'route' | 'panel' | 'event';
|
|
455
|
+
actions?: Array<PraxisXUiChartEventAction['action']>;
|
|
456
|
+
/**
|
|
457
|
+
* Canonical chart events whose exact composition links govern this target.
|
|
458
|
+
*
|
|
459
|
+
* Omission is reserved for legacy/manual host catalogs. Context-resolved
|
|
460
|
+
* catalogs always declare at least one event and therefore fail closed.
|
|
461
|
+
*/
|
|
462
|
+
events?: ChartEditorEventKey[];
|
|
430
463
|
}
|
|
431
464
|
|
|
432
|
-
type PraxisDataQueryContextBridge = {
|
|
433
|
-
filters?: Record<string, unknown> | null;
|
|
434
|
-
sort?: string[] | null;
|
|
435
|
-
limit?: number | null;
|
|
436
|
-
page?: {
|
|
437
|
-
index?: number | null;
|
|
438
|
-
size?: number | null;
|
|
439
|
-
} | null;
|
|
440
|
-
meta?: Record<string, unknown> | null;
|
|
441
|
-
};
|
|
442
465
|
declare class PraxisChartComponent {
|
|
443
466
|
readonly config: _angular_core.InputSignal<PraxisChartConfig>;
|
|
444
467
|
readonly data: _angular_core.InputSignal<PraxisChartDataRow[] | null>;
|
|
445
468
|
readonly chartDocument: _angular_core.InputSignal<PraxisXUiChartContract | null>;
|
|
446
469
|
readonly filterCriteria: _angular_core.InputSignal<Record<string, unknown> | null>;
|
|
447
|
-
readonly queryContext: _angular_core.InputSignal<
|
|
470
|
+
readonly queryContext: _angular_core.InputSignal<PraxisDataQueryContext | null>;
|
|
448
471
|
readonly remoteDataResolver: _angular_core.InputSignal<PraxisChartRemoteDataResolver | null>;
|
|
449
472
|
readonly enableCustomization: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
450
473
|
readonly availableResources: _angular_core.InputSignal<readonly ChartEditorResourceOption[]>;
|
|
451
474
|
readonly availableFields: _angular_core.InputSignal<readonly ChartEditorFieldOption[]>;
|
|
452
475
|
readonly availableTargets: _angular_core.InputSignal<readonly ChartEditorTargetOption[]>;
|
|
453
476
|
readonly pointClick: _angular_core.OutputEmitterRef<PraxisChartPointEvent>;
|
|
477
|
+
readonly pointAction: _angular_core.OutputEmitterRef<PraxisChartPointActionEvent>;
|
|
454
478
|
readonly selectionChange: _angular_core.OutputEmitterRef<PraxisChartSelectionEvent>;
|
|
479
|
+
readonly drillDown: _angular_core.OutputEmitterRef<PraxisChartDrillDownEvent>;
|
|
455
480
|
readonly crossFilter: _angular_core.OutputEmitterRef<PraxisChartCrossFilterEvent>;
|
|
456
481
|
readonly queryRequest: _angular_core.OutputEmitterRef<PraxisChartQueryRequestEvent>;
|
|
457
482
|
readonly loadStateChange: _angular_core.OutputEmitterRef<PraxisChartLoadState>;
|
|
@@ -468,7 +493,10 @@ declare class PraxisChartComponent {
|
|
|
468
493
|
private readonly settingsPanel;
|
|
469
494
|
private readonly destroyRef;
|
|
470
495
|
private readonly resizeObserver;
|
|
496
|
+
private resizeObserverHost;
|
|
471
497
|
private readonly shellObserver;
|
|
498
|
+
private readonly themeObserver;
|
|
499
|
+
private readonly inheritedTheme;
|
|
472
500
|
private readonly currentLoadState;
|
|
473
501
|
private readonly remoteResolvedData;
|
|
474
502
|
private readonly remoteRuntimeState;
|
|
@@ -484,7 +512,10 @@ declare class PraxisChartComponent {
|
|
|
484
512
|
private previousRemoteSignature;
|
|
485
513
|
private previousRemoteDataResolver;
|
|
486
514
|
private previousDocumentSignature;
|
|
515
|
+
private inheritedThemeSignature;
|
|
487
516
|
private editorSessionSubscriptions;
|
|
517
|
+
private remoteRequestSubscription;
|
|
518
|
+
private remoteRequestSequence;
|
|
488
519
|
readonly effectiveConfig: _angular_core.Signal<PraxisChartConfig>;
|
|
489
520
|
readonly resolvedData: _angular_core.Signal<PraxisChartDataRow[]>;
|
|
490
521
|
readonly resolvedHeight: _angular_core.Signal<string>;
|
|
@@ -515,12 +546,20 @@ declare class PraxisChartComponent {
|
|
|
515
546
|
private extractPointMetricValue;
|
|
516
547
|
private executeRemoteDataRequest;
|
|
517
548
|
private ensureResizeObserver;
|
|
549
|
+
private destroyResizeObserver;
|
|
518
550
|
private hasRenderableSize;
|
|
519
551
|
private toCssSize;
|
|
520
552
|
private toCssAspectRatio;
|
|
521
553
|
private buildRemoteSignature;
|
|
554
|
+
private cancelRemoteDataRequest;
|
|
522
555
|
private clearEditorSessionSubscriptions;
|
|
523
556
|
private observeShellSizingContext;
|
|
557
|
+
private observeThemeContext;
|
|
558
|
+
private syncInheritedTheme;
|
|
559
|
+
private isThemeVariant;
|
|
560
|
+
private applyInheritedTheme;
|
|
561
|
+
private cloneTheme;
|
|
562
|
+
private mergeOptionalThemeObject;
|
|
524
563
|
private shouldFillShellContainer;
|
|
525
564
|
private scheduleResizeAfterShellModeChange;
|
|
526
565
|
private scheduleEngineResize;
|
|
@@ -528,7 +567,69 @@ declare class PraxisChartComponent {
|
|
|
528
567
|
private cancelScheduledRender;
|
|
529
568
|
private cancelScheduledResize;
|
|
530
569
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartComponent, never>;
|
|
531
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisChartComponent, "praxis-chart", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "chartDocument": { "alias": "chartDocument"; "required": false; "isSignal": true; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; "isSignal": true; }; "queryContext": { "alias": "queryContext"; "required": false; "isSignal": true; }; "remoteDataResolver": { "alias": "remoteDataResolver"; "required": false; "isSignal": true; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; "isSignal": true; }; "availableResources": { "alias": "availableResources"; "required": false; "isSignal": true; }; "availableFields": { "alias": "availableFields"; "required": false; "isSignal": true; }; "availableTargets": { "alias": "availableTargets"; "required": false; "isSignal": true; }; }, { "pointClick": "pointClick"; "selectionChange": "selectionChange"; "crossFilter": "crossFilter"; "queryRequest": "queryRequest"; "loadStateChange": "loadStateChange"; "chartDocumentApplied": "chartDocumentApplied"; "chartDocumentSaved": "chartDocumentSaved"; }, never, never, true, never>;
|
|
570
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisChartComponent, "praxis-chart", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "chartDocument": { "alias": "chartDocument"; "required": false; "isSignal": true; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; "isSignal": true; }; "queryContext": { "alias": "queryContext"; "required": false; "isSignal": true; }; "remoteDataResolver": { "alias": "remoteDataResolver"; "required": false; "isSignal": true; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; "isSignal": true; }; "availableResources": { "alias": "availableResources"; "required": false; "isSignal": true; }; "availableFields": { "alias": "availableFields"; "required": false; "isSignal": true; }; "availableTargets": { "alias": "availableTargets"; "required": false; "isSignal": true; }; }, { "pointClick": "pointClick"; "pointAction": "pointAction"; "selectionChange": "selectionChange"; "drillDown": "drillDown"; "crossFilter": "crossFilter"; "queryRequest": "queryRequest"; "loadStateChange": "loadStateChange"; "chartDocumentApplied": "chartDocumentApplied"; "chartDocumentSaved": "chartDocumentSaved"; }, never, never, true, never>;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
interface BulletBand {
|
|
574
|
+
label?: string;
|
|
575
|
+
tone?: PraxisPresentationVisualizationThreshold['tone'];
|
|
576
|
+
left: number;
|
|
577
|
+
width: number;
|
|
578
|
+
}
|
|
579
|
+
declare class PraxisMicroVisualizationComponent {
|
|
580
|
+
visualizationInput: _angular_core.InputSignal<PraxisPresentationVisualizationConfig | null>;
|
|
581
|
+
fallbackInput: _angular_core.InputSignal<string>;
|
|
582
|
+
readonly visualization: _angular_core.Signal<PraxisPresentationVisualizationConfig | null>;
|
|
583
|
+
readonly fallbackText: _angular_core.Signal<string>;
|
|
584
|
+
readonly kind: _angular_core.Signal<_praxisui_core.PraxisPresentationVisualizationKind | "fallback">;
|
|
585
|
+
readonly surface: _angular_core.Signal<_praxisui_core.PraxisPresentationVisualizationSurface | null>;
|
|
586
|
+
readonly size: _angular_core.Signal<_praxisui_core.PraxisPresentationVisualizationSize | null>;
|
|
587
|
+
readonly isTableCell: _angular_core.Signal<boolean>;
|
|
588
|
+
readonly ariaLabel: _angular_core.Signal<string | null>;
|
|
589
|
+
readonly comparisonItems: _angular_core.Signal<PraxisPresentationVisualizationPoint[]>;
|
|
590
|
+
readonly stackedSegments: _angular_core.Signal<PraxisPresentationVisualizationSegment[]>;
|
|
591
|
+
readonly bulletThresholds: _angular_core.Signal<PraxisPresentationVisualizationThreshold[]>;
|
|
592
|
+
readonly bulletBands: _angular_core.Signal<BulletBand[]>;
|
|
593
|
+
readonly deltaValue: _angular_core.Signal<number>;
|
|
594
|
+
readonly deltaText: _angular_core.Signal<string>;
|
|
595
|
+
readonly deltaIcon: _angular_core.Signal<"" | "+" | "-">;
|
|
596
|
+
itemPercent(value: PraxisPresentationVisualizationPoint['value']): number;
|
|
597
|
+
segmentPercent(value: PraxisPresentationVisualizationSegment['value']): number;
|
|
598
|
+
valuePercent(value: unknown): number;
|
|
599
|
+
formatNumber(value: unknown): string;
|
|
600
|
+
readonly radialPercent: _angular_core.Signal<number>;
|
|
601
|
+
readonly radialDashArray: _angular_core.Signal<string>;
|
|
602
|
+
readonly radialText: _angular_core.Signal<string>;
|
|
603
|
+
readonly harveyPercent: _angular_core.Signal<number>;
|
|
604
|
+
readonly harveyDashArray: _angular_core.Signal<string>;
|
|
605
|
+
readonly harveyText: _angular_core.Signal<string>;
|
|
606
|
+
readonly firstPoint: _angular_core.Signal<PraxisPresentationVisualizationPoint | null>;
|
|
607
|
+
readonly lastPoint: _angular_core.Signal<PraxisPresentationVisualizationPoint | null>;
|
|
608
|
+
readonly minPointIndex: _angular_core.Signal<number>;
|
|
609
|
+
readonly maxPointIndex: _angular_core.Signal<number>;
|
|
610
|
+
readonly trendMarkers: _angular_core.Signal<{
|
|
611
|
+
x: number;
|
|
612
|
+
y: number;
|
|
613
|
+
tone?: string;
|
|
614
|
+
label?: string;
|
|
615
|
+
}[]>;
|
|
616
|
+
readonly trendCoords: _angular_core.Signal<{
|
|
617
|
+
x: number;
|
|
618
|
+
y: number;
|
|
619
|
+
}[]>;
|
|
620
|
+
readonly trendPathD: _angular_core.Signal<string>;
|
|
621
|
+
readonly trendAreaD: _angular_core.Signal<string>;
|
|
622
|
+
readonly trendColumns: _angular_core.Signal<{
|
|
623
|
+
x: string;
|
|
624
|
+
y: string;
|
|
625
|
+
width: string;
|
|
626
|
+
height: string;
|
|
627
|
+
tone: _praxisui_core.PraxisPresentationVisualizationTone;
|
|
628
|
+
}[]>;
|
|
629
|
+
readonly processSteps: _angular_core.Signal<_praxisui_core.PraxisPresentationVisualizationItem[]>;
|
|
630
|
+
private resolveBulletMax;
|
|
631
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisMicroVisualizationComponent, never>;
|
|
632
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisMicroVisualizationComponent, "praxis-micro-visualization", never, { "visualizationInput": { "alias": "visualization"; "required": false; "isSignal": true; }; "fallbackInput": { "alias": "fallbackText"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
532
633
|
}
|
|
533
634
|
|
|
534
635
|
declare class PraxisChartDrilldownPanelComponent {
|
|
@@ -650,8 +751,13 @@ interface PraxisChartEngineAdapter {
|
|
|
650
751
|
}
|
|
651
752
|
|
|
652
753
|
declare const PRAXIS_CHART_ENGINE: InjectionToken<PraxisChartEngineAdapter>;
|
|
754
|
+
type PraxisChartEngineFactory = () => PraxisChartEngineAdapter;
|
|
755
|
+
declare const PRAXIS_CHART_ENGINE_FACTORY: InjectionToken<PraxisChartEngineFactory>;
|
|
653
756
|
|
|
654
|
-
|
|
757
|
+
interface PraxisChartsProviderOptions {
|
|
758
|
+
engineFactory?: PraxisChartEngineFactory;
|
|
759
|
+
}
|
|
760
|
+
declare function providePraxisCharts(options?: PraxisChartsProviderOptions): Provider[];
|
|
655
761
|
|
|
656
762
|
declare class ChartContractNormalizerService {
|
|
657
763
|
normalize(input: PraxisXUiChartContract): PraxisXUiChartContract;
|
|
@@ -682,11 +788,14 @@ interface ChartContractValidationResult {
|
|
|
682
788
|
|
|
683
789
|
declare class ChartContractValidationService {
|
|
684
790
|
validate(document: PraxisXUiChartContract): ChartContractValidationResult;
|
|
791
|
+
private validateVersion;
|
|
685
792
|
private validateSource;
|
|
686
793
|
private validateTheme;
|
|
687
794
|
private validateMetrics;
|
|
795
|
+
private validateComparison;
|
|
688
796
|
private validateSizing;
|
|
689
797
|
private validateKinds;
|
|
798
|
+
private validateDistribution;
|
|
690
799
|
private validateEvents;
|
|
691
800
|
private validateEventAction;
|
|
692
801
|
private error;
|
|
@@ -701,7 +810,8 @@ declare class ChartContractValidationService {
|
|
|
701
810
|
declare class PraxisChartCanonicalContractMapperService {
|
|
702
811
|
private readonly normalizer;
|
|
703
812
|
private readonly validator;
|
|
704
|
-
|
|
813
|
+
private readonly i18n?;
|
|
814
|
+
constructor(normalizer?: ChartContractNormalizerService, validator?: ChartContractValidationService, i18n?: PraxisI18nService | undefined);
|
|
705
815
|
toPraxisChartConfig(contract: PraxisXUiChartContract): PraxisChartConfig;
|
|
706
816
|
private buildAxes;
|
|
707
817
|
private buildSeries;
|
|
@@ -732,7 +842,9 @@ declare class PraxisChartCanonicalContractMapperService {
|
|
|
732
842
|
private mapStatsGranularityToBackend;
|
|
733
843
|
private mapDistributionModeToBackend;
|
|
734
844
|
private mapStatsMetricOperation;
|
|
735
|
-
|
|
845
|
+
private comparisonMetricField;
|
|
846
|
+
private comparisonPeriodLabel;
|
|
847
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartCanonicalContractMapperService, [null, null, { optional: true; }]>;
|
|
736
848
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PraxisChartCanonicalContractMapperService>;
|
|
737
849
|
}
|
|
738
850
|
|
|
@@ -767,6 +879,13 @@ declare class PraxisChartDataTransformerService {
|
|
|
767
879
|
private transformCartesian;
|
|
768
880
|
private transformPie;
|
|
769
881
|
private buildCartesianSeries;
|
|
882
|
+
private buildCategoryBuckets;
|
|
883
|
+
private resolveCategoryIdentity;
|
|
884
|
+
private resolveCanonicalTimeCoordinate;
|
|
885
|
+
private usesCanonicalTimeCoordinates;
|
|
886
|
+
private extractTimeCoordinate;
|
|
887
|
+
private resolveTimePresentationLabel;
|
|
888
|
+
private typedIdentity;
|
|
770
889
|
private buildPointData;
|
|
771
890
|
private hasPointValue;
|
|
772
891
|
private resolveCartesianSeriesType;
|
|
@@ -780,45 +899,9 @@ declare class PraxisChartDataTransformerService {
|
|
|
780
899
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PraxisChartDataTransformerService>;
|
|
781
900
|
}
|
|
782
901
|
|
|
783
|
-
declare class PraxisChartOptionBuilderService {
|
|
784
|
-
private readonly transformer;
|
|
785
|
-
constructor(transformer: PraxisChartDataTransformerService);
|
|
786
|
-
build(config: PraxisChartConfig, rows: PraxisChartDataRow[]): EChartsCoreOption;
|
|
787
|
-
private resolveText;
|
|
788
|
-
private resolveTextColor;
|
|
789
|
-
private hasText;
|
|
790
|
-
private buildTitle;
|
|
791
|
-
private buildLegend;
|
|
792
|
-
private buildGrid;
|
|
793
|
-
private buildCartesianYAxis;
|
|
794
|
-
private primaryValueFormat;
|
|
795
|
-
private seriesLabelFormat;
|
|
796
|
-
private axisLabelFormatter;
|
|
797
|
-
private formatValue;
|
|
798
|
-
private formatDateValue;
|
|
799
|
-
private isDateFormat;
|
|
800
|
-
private readDateParts;
|
|
801
|
-
private parseCurrencyFormat;
|
|
802
|
-
private normalizeCurrencyDisplay;
|
|
803
|
-
private parseNumberFormat;
|
|
804
|
-
private clampDecimals;
|
|
805
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartOptionBuilderService, never>;
|
|
806
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PraxisChartOptionBuilderService>;
|
|
807
|
-
}
|
|
808
|
-
|
|
809
|
-
declare class PraxisChartMetadataRegistrationService {
|
|
810
|
-
private readonly registry;
|
|
811
|
-
private registered;
|
|
812
|
-
constructor(registry: ComponentMetadataRegistry);
|
|
813
|
-
ensureRegistered(): void;
|
|
814
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartMetadataRegistrationService, never>;
|
|
815
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PraxisChartMetadataRegistrationService>;
|
|
816
|
-
}
|
|
817
|
-
|
|
818
902
|
declare class PraxisChartSchemaMapperService {
|
|
819
|
-
private readonly metadataRegistration;
|
|
820
903
|
private readonly canonicalContractMapper;
|
|
821
|
-
constructor(
|
|
904
|
+
constructor(canonicalContractMapper: PraxisChartCanonicalContractMapperService);
|
|
822
905
|
resolve(input: PraxisChartWidgetLike, defaults?: {
|
|
823
906
|
key?: string;
|
|
824
907
|
canvasItem?: PraxisChartCanvasItem;
|
|
@@ -863,6 +946,7 @@ declare class PraxisChartStatsApiService {
|
|
|
863
946
|
private resolveCategoryField;
|
|
864
947
|
private resolveMetricBindings;
|
|
865
948
|
private projectMetricValues;
|
|
949
|
+
private projectComparisonMetricValues;
|
|
866
950
|
private buildStatsUrl;
|
|
867
951
|
private buildDefaultApiBase;
|
|
868
952
|
private normalizePath;
|
|
@@ -879,7 +963,9 @@ interface AnalyticsChartConfigAdapterOptions {
|
|
|
879
963
|
height?: number | string;
|
|
880
964
|
}
|
|
881
965
|
declare class AnalyticsChartConfigAdapterService {
|
|
966
|
+
private readonly i18n?;
|
|
882
967
|
private readonly statsBuilder;
|
|
968
|
+
constructor(i18n?: PraxisI18nService | undefined);
|
|
883
969
|
toPraxisChartConfig(projection: PraxisAnalyticsProjection, options?: AnalyticsChartConfigAdapterOptions): PraxisChartConfig;
|
|
884
970
|
private buildAxes;
|
|
885
971
|
private buildSeries;
|
|
@@ -888,7 +974,9 @@ declare class AnalyticsChartConfigAdapterService {
|
|
|
888
974
|
private mapAggregation;
|
|
889
975
|
private mapExecutionMetrics;
|
|
890
976
|
private getDisplayMetrics;
|
|
891
|
-
|
|
977
|
+
private comparisonMetricField;
|
|
978
|
+
private comparisonPeriodLabel;
|
|
979
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AnalyticsChartConfigAdapterService, [{ optional: true; }]>;
|
|
892
980
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AnalyticsChartConfigAdapterService>;
|
|
893
981
|
}
|
|
894
982
|
|
|
@@ -966,9 +1054,9 @@ declare class PraxisChartCompositionShowcaseComponent {
|
|
|
966
1054
|
protected readonly widgetPage: _angular_core.Signal<{
|
|
967
1055
|
composition?: _praxisui_core.WidgetPageCompositionDefinition | undefined;
|
|
968
1056
|
state?: _praxisui_core.WidgetPageStateInput | undefined;
|
|
969
|
-
canvas?: _praxisui_core.WidgetPageCanvasLayout | undefined;
|
|
970
|
-
context?: Record<string, any> | undefined;
|
|
971
1057
|
widgets: _praxisui_core.WidgetInstance[];
|
|
1058
|
+
context?: Record<string, any> | undefined;
|
|
1059
|
+
canvas?: _praxisui_core.WidgetPageCanvasLayout | undefined;
|
|
972
1060
|
layout?: _praxisui_core.WidgetPageLayout | undefined;
|
|
973
1061
|
layoutPreset?: string | undefined;
|
|
974
1062
|
layoutPresetOptions?: Record<string, any> | undefined;
|
|
@@ -980,9 +1068,9 @@ declare class PraxisChartCompositionShowcaseComponent {
|
|
|
980
1068
|
protected readonly canvasPage: _angular_core.Signal<({
|
|
981
1069
|
composition?: _praxisui_core.WidgetPageCompositionDefinition | undefined;
|
|
982
1070
|
state?: _praxisui_core.WidgetPageStateInput | undefined;
|
|
983
|
-
canvas?: _praxisui_core.WidgetPageCanvasLayout | undefined;
|
|
984
|
-
context?: Record<string, any> | undefined;
|
|
985
1071
|
widgets: _praxisui_core.WidgetInstance[];
|
|
1072
|
+
context?: Record<string, any> | undefined;
|
|
1073
|
+
canvas?: _praxisui_core.WidgetPageCanvasLayout | undefined;
|
|
986
1074
|
layout?: _praxisui_core.WidgetPageLayout | undefined;
|
|
987
1075
|
layoutPreset?: string | undefined;
|
|
988
1076
|
layoutPresetOptions?: Record<string, any> | undefined;
|
|
@@ -1025,9 +1113,9 @@ declare class PraxisChartCompositionShowcaseComponent {
|
|
|
1025
1113
|
protected readonly resolvedPage: _angular_core.Signal<{
|
|
1026
1114
|
composition?: _praxisui_core.WidgetPageCompositionDefinition | undefined;
|
|
1027
1115
|
state?: _praxisui_core.WidgetPageStateInput | undefined;
|
|
1028
|
-
canvas?: _praxisui_core.WidgetPageCanvasLayout | undefined;
|
|
1029
|
-
context?: Record<string, any> | undefined;
|
|
1030
1116
|
widgets: _praxisui_core.WidgetInstance[];
|
|
1117
|
+
context?: Record<string, any> | undefined;
|
|
1118
|
+
canvas?: _praxisui_core.WidgetPageCanvasLayout | undefined;
|
|
1031
1119
|
layout?: _praxisui_core.WidgetPageLayout | undefined;
|
|
1032
1120
|
layoutPreset?: string | undefined;
|
|
1033
1121
|
layoutPresetOptions?: Record<string, any> | undefined;
|
|
@@ -1084,14 +1172,15 @@ interface ChartConfigEditorResetEvent {
|
|
|
1084
1172
|
type ChartEditorSection = 'general' | 'data' | 'analytics' | 'appearance' | 'motion' | 'events' | 'preview';
|
|
1085
1173
|
type ChartFeatureKey = 'legend' | 'labels' | 'tooltip';
|
|
1086
1174
|
type ChartStateKey = 'empty' | 'loading' | 'error';
|
|
1087
|
-
type ChartEventKey =
|
|
1175
|
+
type ChartEventKey = ChartEditorEventKey;
|
|
1176
|
+
type ChartFieldRole = 'dimension' | 'metric' | 'time';
|
|
1088
1177
|
declare class PraxisChartConfigEditor implements SettingsValueProvider {
|
|
1089
1178
|
readonly documentInput: _angular_core.InputSignal<PraxisXUiChartContract | null>;
|
|
1090
1179
|
readonly modeInput: _angular_core.InputSignal<"create" | "edit">;
|
|
1091
1180
|
readonly readonlyInput: _angular_core.InputSignal<boolean>;
|
|
1092
|
-
readonly availableResourcesInput: _angular_core.InputSignal<ChartEditorResourceOption[]>;
|
|
1093
|
-
readonly availableFieldsInput: _angular_core.InputSignal<ChartEditorFieldOption[]>;
|
|
1094
|
-
readonly availableTargetsInput: _angular_core.InputSignal<ChartEditorTargetOption[]>;
|
|
1181
|
+
readonly availableResourcesInput: _angular_core.InputSignal<ChartEditorResourceOption[] | null>;
|
|
1182
|
+
readonly availableFieldsInput: _angular_core.InputSignal<ChartEditorFieldOption[] | null>;
|
|
1183
|
+
readonly availableTargetsInput: _angular_core.InputSignal<ChartEditorTargetOption[] | null>;
|
|
1095
1184
|
readonly apply: _angular_core.OutputEmitterRef<ChartConfigEditorApplyEvent>;
|
|
1096
1185
|
readonly save: _angular_core.OutputEmitterRef<ChartConfigEditorSaveEvent>;
|
|
1097
1186
|
readonly resetChange: _angular_core.OutputEmitterRef<ChartConfigEditorResetEvent>;
|
|
@@ -1109,6 +1198,8 @@ declare class PraxisChartConfigEditor implements SettingsValueProvider {
|
|
|
1109
1198
|
readonly operations: PraxisXUiChartStatsOperation[];
|
|
1110
1199
|
readonly timeGranularities: readonly ["day", "week", "month"];
|
|
1111
1200
|
readonly distributionModes: PraxisXUiChartStatsDistributionMode[];
|
|
1201
|
+
readonly comparisonPeriodPresets: PraxisXUiChartComparisonPeriodPreset[];
|
|
1202
|
+
readonly comparisonPeriodModes: PraxisXUiChartComparisonPeriodMode[];
|
|
1112
1203
|
readonly dimensionRoles: NonNullable<PraxisXUiChartDimension['role']>[];
|
|
1113
1204
|
readonly metricAggregations: PraxisXUiChartAggregation[];
|
|
1114
1205
|
readonly metricAxes: Array<NonNullable<PraxisXUiChartMetric['axis']>>;
|
|
@@ -1126,13 +1217,25 @@ declare class PraxisChartConfigEditor implements SettingsValueProvider {
|
|
|
1126
1217
|
private readonly normalizer;
|
|
1127
1218
|
private readonly validator;
|
|
1128
1219
|
private readonly previewMapper;
|
|
1220
|
+
private readonly contextResolver;
|
|
1129
1221
|
private readonly i18n;
|
|
1130
1222
|
private readonly currentDocument;
|
|
1131
1223
|
private readonly initialDocument;
|
|
1224
|
+
private readonly resolvedResources;
|
|
1225
|
+
private readonly resolvedFields;
|
|
1226
|
+
private readonly catalogResolutionDiagnostics;
|
|
1132
1227
|
private lastExternalSignature;
|
|
1228
|
+
private lastCatalogInputSignature;
|
|
1229
|
+
private catalogResolutionRequestId;
|
|
1230
|
+
private readonly baseAvailableResources;
|
|
1231
|
+
private readonly baseAvailableFields;
|
|
1133
1232
|
readonly normalizedDocument: _angular_core.Signal<PraxisXUiChartContract>;
|
|
1134
|
-
readonly validation: _angular_core.Signal<
|
|
1233
|
+
readonly validation: _angular_core.Signal<{
|
|
1234
|
+
valid: boolean;
|
|
1235
|
+
issues: ChartContractValidationIssue[];
|
|
1236
|
+
}>;
|
|
1135
1237
|
readonly issues: _angular_core.Signal<ChartContractValidationIssue[]>;
|
|
1238
|
+
readonly catalogIssues: _angular_core.Signal<ChartContractValidationIssue[]>;
|
|
1136
1239
|
readonly availableResources: _angular_core.Signal<ChartEditorResourceOption[]>;
|
|
1137
1240
|
readonly availableFields: _angular_core.Signal<ChartEditorFieldOption[]>;
|
|
1138
1241
|
readonly availableTargets: _angular_core.Signal<ChartEditorTargetOption[]>;
|
|
@@ -1162,6 +1265,10 @@ declare class PraxisChartConfigEditor implements SettingsValueProvider {
|
|
|
1162
1265
|
setDistributionMode(value: PraxisXUiChartStatsDistributionMode): void;
|
|
1163
1266
|
setBucketSize(value: string): void;
|
|
1164
1267
|
setBucketCount(value: string): void;
|
|
1268
|
+
setComparisonPeriodField(field: string): void;
|
|
1269
|
+
setComparisonPeriodTimezone(timezone: string): void;
|
|
1270
|
+
setComparisonPeriodPreset(preset: PraxisXUiChartComparisonPeriodPreset): void;
|
|
1271
|
+
setComparisonPeriodMode(mode: PraxisXUiChartComparisonPeriodMode): void;
|
|
1165
1272
|
addDimension(): void;
|
|
1166
1273
|
removeDimension(index: number): void;
|
|
1167
1274
|
setDimensionField(index: number, field: string): void;
|
|
@@ -1191,11 +1298,19 @@ declare class PraxisChartConfigEditor implements SettingsValueProvider {
|
|
|
1191
1298
|
subtitleValue(): string;
|
|
1192
1299
|
resourceValue(): string;
|
|
1193
1300
|
resourceOptions(): ChartEditorResourceOption[];
|
|
1301
|
+
selectedResourceOption(): ChartEditorResourceOption | undefined;
|
|
1302
|
+
operationOptions(): PraxisXUiChartStatsOperation[];
|
|
1303
|
+
resourceCatalogUnavailable(): boolean;
|
|
1304
|
+
operationCatalogUnavailable(): boolean;
|
|
1194
1305
|
granularityValue(): typeof this.timeGranularities[number];
|
|
1195
1306
|
fillGapsValue(): boolean;
|
|
1196
1307
|
distributionModeValue(): PraxisXUiChartStatsDistributionMode;
|
|
1197
1308
|
bucketSizeValue(): string;
|
|
1198
1309
|
bucketCountValue(): string;
|
|
1310
|
+
comparisonPeriodFieldValue(): string;
|
|
1311
|
+
comparisonPeriodTimezoneValue(): string;
|
|
1312
|
+
comparisonPeriodPresetValue(): PraxisXUiChartComparisonPeriodPreset;
|
|
1313
|
+
comparisonPeriodModeValue(): PraxisXUiChartComparisonPeriodMode;
|
|
1199
1314
|
heightValue(): string;
|
|
1200
1315
|
sizingModeValue(): PraxisXUiChartSizingMode;
|
|
1201
1316
|
sizingMinHeightValue(): string;
|
|
@@ -1211,15 +1326,19 @@ declare class PraxisChartConfigEditor implements SettingsValueProvider {
|
|
|
1211
1326
|
stateDescription(stateKey: ChartStateKey): string;
|
|
1212
1327
|
eventAction(eventKey: ChartEventKey): PraxisXUiChartEventAction['action'] | '';
|
|
1213
1328
|
eventTarget(eventKey: ChartEventKey): string;
|
|
1214
|
-
targetOptions(): ChartEditorTargetOption[];
|
|
1329
|
+
targetOptions(action?: PraxisXUiChartEventAction['action'] | '', eventKey?: ChartEventKey): ChartEditorTargetOption[];
|
|
1330
|
+
targetCatalogUnavailable(action?: PraxisXUiChartEventAction['action'] | '', eventKey?: ChartEventKey): boolean;
|
|
1215
1331
|
eventMappingText(eventKey: ChartEventKey): string;
|
|
1216
1332
|
dimensions(): PraxisXUiChartDimension[];
|
|
1217
1333
|
metrics(): PraxisXUiChartMetric[];
|
|
1218
|
-
fieldOptions(role:
|
|
1334
|
+
fieldOptions(role: ChartFieldRole): ChartEditorFieldOption[];
|
|
1335
|
+
metricAggregationOptions(fieldName: string | undefined): PraxisXUiChartAggregation[];
|
|
1336
|
+
fieldOptionLabel(field: ChartEditorFieldOption): string;
|
|
1219
1337
|
showMetricAxisControls(): boolean;
|
|
1220
1338
|
showMetricSeriesKindControls(): boolean;
|
|
1221
1339
|
showTimeseriesControls(): boolean;
|
|
1222
1340
|
showDistributionControls(): boolean;
|
|
1341
|
+
showComparisonControls(): boolean;
|
|
1223
1342
|
showComboPanel(): boolean;
|
|
1224
1343
|
showPieDonutPanel(): boolean;
|
|
1225
1344
|
showScatterPanel(): boolean;
|
|
@@ -1229,6 +1348,20 @@ declare class PraxisChartConfigEditor implements SettingsValueProvider {
|
|
|
1229
1348
|
private patchStateDescriptor;
|
|
1230
1349
|
private patchEvent;
|
|
1231
1350
|
private parseMappingText;
|
|
1351
|
+
private validateCatalogContext;
|
|
1352
|
+
private fieldMatchesSelectedResource;
|
|
1353
|
+
private fieldMatchesResourceOption;
|
|
1354
|
+
private resolveSelectedResource;
|
|
1355
|
+
private resourceIdentityMatches;
|
|
1356
|
+
private normalizeResourcePath;
|
|
1357
|
+
private toCatalogIssue;
|
|
1358
|
+
private catalogDiagnosticMessage;
|
|
1359
|
+
private fieldMatchesOperation;
|
|
1360
|
+
private fieldMatchesDistributionMode;
|
|
1361
|
+
private fieldMatchesRole;
|
|
1362
|
+
private updateComparisonPeriod;
|
|
1363
|
+
private defaultComparisonPeriodField;
|
|
1364
|
+
private catalogError;
|
|
1232
1365
|
private normalizeSizingSizeInput;
|
|
1233
1366
|
private mergeTheme;
|
|
1234
1367
|
private createApplyPayload;
|
|
@@ -1247,40 +1380,407 @@ interface PraxisChartWidgetEditorInputs {
|
|
|
1247
1380
|
availableTargets?: ChartEditorTargetOption[];
|
|
1248
1381
|
[key: string]: unknown;
|
|
1249
1382
|
}
|
|
1383
|
+
interface PraxisChartWidgetEditorContext {
|
|
1384
|
+
availableResources?: ChartEditorResourceOption[];
|
|
1385
|
+
availableFields?: ChartEditorFieldOption[];
|
|
1386
|
+
availableTargets?: ChartEditorTargetOption[];
|
|
1387
|
+
[key: string]: unknown;
|
|
1388
|
+
}
|
|
1250
1389
|
interface PraxisChartWidgetEditorValue {
|
|
1251
1390
|
inputs: PraxisChartWidgetEditorInputs;
|
|
1252
1391
|
}
|
|
1253
|
-
|
|
1392
|
+
type ChartWidgetContextDiagnostic = NonNullable<ComponentConfigEditorContextResult['diagnostics']>[number];
|
|
1393
|
+
declare class PraxisChartWidgetConfigEditor implements SettingsValueProvider, OnChanges, OnDestroy {
|
|
1394
|
+
private readonly i18n;
|
|
1254
1395
|
inputs: PraxisChartWidgetEditorInputs | null;
|
|
1255
|
-
|
|
1396
|
+
context: PraxisChartWidgetEditorContext | null;
|
|
1397
|
+
contextDiagnostics: ChartWidgetContextDiagnostic[];
|
|
1398
|
+
private activeChartEditor?;
|
|
1399
|
+
private chartEditorSubscription;
|
|
1400
|
+
set chartEditor(value: PraxisChartConfigEditor | undefined);
|
|
1401
|
+
get chartEditor(): PraxisChartConfigEditor | undefined;
|
|
1256
1402
|
readonly isDirty$: BehaviorSubject<boolean>;
|
|
1257
1403
|
readonly isValid$: BehaviorSubject<boolean>;
|
|
1258
1404
|
readonly isBusy$: BehaviorSubject<boolean>;
|
|
1259
|
-
private
|
|
1405
|
+
private chartEditorDirty;
|
|
1260
1406
|
private chartEditorValid;
|
|
1261
1407
|
private queryContextDirty;
|
|
1408
|
+
private baselineQueryContextText;
|
|
1262
1409
|
queryContextText: string;
|
|
1263
1410
|
queryContextError: string;
|
|
1264
1411
|
get chartDocument(): PraxisXUiChartContract | null;
|
|
1265
1412
|
get availableResources(): ChartEditorResourceOption[];
|
|
1266
1413
|
get availableFields(): ChartEditorFieldOption[];
|
|
1267
1414
|
get availableTargets(): ChartEditorTargetOption[];
|
|
1268
|
-
ngAfterViewInit(): void;
|
|
1269
1415
|
ngOnChanges(changes: SimpleChanges): void;
|
|
1270
1416
|
ngOnDestroy(): void;
|
|
1271
1417
|
setQueryContextText(value: string): void;
|
|
1272
1418
|
getSettingsValue(): PraxisChartWidgetEditorValue;
|
|
1273
1419
|
onSave(): PraxisChartWidgetEditorValue;
|
|
1274
1420
|
reset(): void;
|
|
1421
|
+
t(key: string, fallback: string): string;
|
|
1422
|
+
contextDiagnosticText(diagnostic: ChartWidgetContextDiagnostic): string;
|
|
1275
1423
|
private buildValue;
|
|
1424
|
+
private bindChartEditor;
|
|
1425
|
+
private getChartDocumentForApply;
|
|
1426
|
+
private getChartDocumentForSave;
|
|
1427
|
+
private rebaseQueryContext;
|
|
1428
|
+
private updateDirty;
|
|
1276
1429
|
private updateValidity;
|
|
1277
1430
|
private formatQueryContext;
|
|
1278
1431
|
private validateQueryContextText;
|
|
1279
1432
|
private parseQueryContextText;
|
|
1280
1433
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartWidgetConfigEditor, never>;
|
|
1281
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisChartWidgetConfigEditor, "praxis-chart-widget-config-editor", never, { "inputs": { "alias": "inputs"; "required": false; }; }, {}, never, never, true, never>;
|
|
1434
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisChartWidgetConfigEditor, "praxis-chart-widget-config-editor", never, { "inputs": { "alias": "inputs"; "required": false; }; "context": { "alias": "context"; "required": false; }; "contextDiagnostics": { "alias": "contextDiagnostics"; "required": false; }; }, {}, never, never, true, never>;
|
|
1282
1435
|
}
|
|
1283
1436
|
|
|
1437
|
+
type PraxisChartAuthoringCoverageMode = 'visual-editable' | 'preserved-only' | 'ai-authorable' | 'advanced-structured' | 'derived-readonly' | 'unsupported';
|
|
1438
|
+
type PraxisChartAuthoringCoverageOwner = 'chart-config-editor' | 'chart-widget-config-editor' | 'chart-contract-normalizer' | 'chart-runtime-mapper' | 'chart-ai-manifest' | 'settings-panel-host' | 'backend-capabilities';
|
|
1439
|
+
interface PraxisChartAuthoringCoverageRow {
|
|
1440
|
+
path: string;
|
|
1441
|
+
mode: PraxisChartAuthoringCoverageMode;
|
|
1442
|
+
owner: PraxisChartAuthoringCoverageOwner;
|
|
1443
|
+
rationale: string;
|
|
1444
|
+
proof: string[];
|
|
1445
|
+
}
|
|
1446
|
+
declare const PRAXIS_CHART_AUTHORING_COVERAGE: readonly [{
|
|
1447
|
+
readonly path: "chartDocument";
|
|
1448
|
+
readonly mode: "advanced-structured";
|
|
1449
|
+
readonly owner: "chart-ai-manifest";
|
|
1450
|
+
readonly rationale: "Whole-document authoring is allowed for AI and structured import, but the visual editor must not become a raw JSON primary path.";
|
|
1451
|
+
readonly proof: ["praxis-charts-authoring-manifest.spec.ts", "praxis-chart-config-editor.spec.ts"];
|
|
1452
|
+
}, {
|
|
1453
|
+
readonly path: "chartDocument.version";
|
|
1454
|
+
readonly mode: "derived-readonly";
|
|
1455
|
+
readonly owner: "chart-contract-normalizer";
|
|
1456
|
+
readonly rationale: "Version is canonical schema governance and is normalized to the authorable x-ui.chart version.";
|
|
1457
|
+
readonly proof: ["chart-authoring-coverage.matrix.spec.ts", "praxis-charts-authoring-manifest.spec.ts"];
|
|
1458
|
+
}, {
|
|
1459
|
+
readonly path: "chartDocument.kind";
|
|
1460
|
+
readonly mode: "visual-editable";
|
|
1461
|
+
readonly owner: "chart-config-editor";
|
|
1462
|
+
readonly rationale: "Chart kind is a first-class visual decision with runtime mapper and AI manifest parity.";
|
|
1463
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-charts-authoring-manifest.spec.ts"];
|
|
1464
|
+
}, {
|
|
1465
|
+
readonly path: "chartDocument.preset";
|
|
1466
|
+
readonly mode: "preserved-only";
|
|
1467
|
+
readonly owner: "chart-contract-normalizer";
|
|
1468
|
+
readonly rationale: "Preset is semantic starter intent; the current editor preserves it instead of presenting it as a misleading post-hoc visual control.";
|
|
1469
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1470
|
+
}, {
|
|
1471
|
+
readonly path: "chartDocument.chartId";
|
|
1472
|
+
readonly mode: "visual-editable";
|
|
1473
|
+
readonly owner: "chart-config-editor";
|
|
1474
|
+
readonly rationale: "Stable chart identity is editable for host/runtime diagnostics and event correlation.";
|
|
1475
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1476
|
+
}, {
|
|
1477
|
+
readonly path: "chartDocument.orientation";
|
|
1478
|
+
readonly mode: "ai-authorable";
|
|
1479
|
+
readonly owner: "chart-ai-manifest";
|
|
1480
|
+
readonly rationale: "Orientation is compiled by chart type and axis decisions; the visual editor currently preserves it without a separate control.";
|
|
1481
|
+
readonly proof: ["praxis-charts-authoring-manifest.spec.ts", "praxis-chart-config-editor.spec.ts"];
|
|
1482
|
+
}, {
|
|
1483
|
+
readonly path: "chartDocument.title";
|
|
1484
|
+
readonly mode: "visual-editable";
|
|
1485
|
+
readonly owner: "chart-config-editor";
|
|
1486
|
+
readonly rationale: "Title is primary presentation copy in the editor and runtime preview.";
|
|
1487
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1488
|
+
}, {
|
|
1489
|
+
readonly path: "chartDocument.subtitle";
|
|
1490
|
+
readonly mode: "visual-editable";
|
|
1491
|
+
readonly owner: "chart-config-editor";
|
|
1492
|
+
readonly rationale: "Subtitle is presentation copy edited alongside title.";
|
|
1493
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1494
|
+
}, {
|
|
1495
|
+
readonly path: "chartDocument.sizing";
|
|
1496
|
+
readonly mode: "visual-editable";
|
|
1497
|
+
readonly owner: "chart-config-editor";
|
|
1498
|
+
readonly rationale: "Sizing controls are canonical runtime layout decisions; deprecated height is normalized into sizing.height.";
|
|
1499
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1500
|
+
}, {
|
|
1501
|
+
readonly path: "chartDocument.height";
|
|
1502
|
+
readonly mode: "derived-readonly";
|
|
1503
|
+
readonly owner: "chart-contract-normalizer";
|
|
1504
|
+
readonly rationale: "Deprecated compatibility input is consumed and cleared in favor of chartDocument.sizing.height.";
|
|
1505
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1506
|
+
}, {
|
|
1507
|
+
readonly path: "chartDocument.source.kind";
|
|
1508
|
+
readonly mode: "visual-editable";
|
|
1509
|
+
readonly owner: "chart-config-editor";
|
|
1510
|
+
readonly rationale: "Source kind selects local derived data versus governed praxis.stats binding.";
|
|
1511
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-chart-widget-config-editor.spec.ts"];
|
|
1512
|
+
}, {
|
|
1513
|
+
readonly path: "chartDocument.source.resource";
|
|
1514
|
+
readonly mode: "visual-editable";
|
|
1515
|
+
readonly owner: "chart-config-editor";
|
|
1516
|
+
readonly rationale: "Resource selection is governed by catalog options and fails closed when unavailable.";
|
|
1517
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-charts-settings-panel.smoke.playwright.spec.ts"];
|
|
1518
|
+
}, {
|
|
1519
|
+
readonly path: "chartDocument.source.operation";
|
|
1520
|
+
readonly mode: "visual-editable";
|
|
1521
|
+
readonly owner: "chart-config-editor";
|
|
1522
|
+
readonly rationale: "Stats operation drives field compatibility, runtime request semantics and specialized options.";
|
|
1523
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-charts-settings-panel.smoke.playwright.spec.ts"];
|
|
1524
|
+
}, {
|
|
1525
|
+
readonly path: "chartDocument.source.options.granularity";
|
|
1526
|
+
readonly mode: "visual-editable";
|
|
1527
|
+
readonly owner: "chart-config-editor";
|
|
1528
|
+
readonly rationale: "Timeseries granularity is visually edited with backend-supported values only.";
|
|
1529
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-charts-settings-panel.smoke.playwright.spec.ts"];
|
|
1530
|
+
}, {
|
|
1531
|
+
readonly path: "chartDocument.source.options.fillGaps";
|
|
1532
|
+
readonly mode: "visual-editable";
|
|
1533
|
+
readonly owner: "chart-config-editor";
|
|
1534
|
+
readonly rationale: "Timeseries gap filling is a supported runtime option surfaced in the editor.";
|
|
1535
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1536
|
+
}, {
|
|
1537
|
+
readonly path: "chartDocument.source.options.mode";
|
|
1538
|
+
readonly mode: "visual-editable";
|
|
1539
|
+
readonly owner: "chart-config-editor";
|
|
1540
|
+
readonly rationale: "Distribution mode is visually edited for terms versus histogram materialization.";
|
|
1541
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1542
|
+
}, {
|
|
1543
|
+
readonly path: "chartDocument.source.options.bucketSize";
|
|
1544
|
+
readonly mode: "visual-editable";
|
|
1545
|
+
readonly owner: "chart-config-editor";
|
|
1546
|
+
readonly rationale: "Histogram bucket size is a supported distribution option.";
|
|
1547
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1548
|
+
}, {
|
|
1549
|
+
readonly path: "chartDocument.source.options.bucketCount";
|
|
1550
|
+
readonly mode: "visual-editable";
|
|
1551
|
+
readonly owner: "chart-config-editor";
|
|
1552
|
+
readonly rationale: "Histogram bucket count is a supported distribution option.";
|
|
1553
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1554
|
+
}, {
|
|
1555
|
+
readonly path: "chartDocument.source.options.comparisonPeriod";
|
|
1556
|
+
readonly mode: "visual-editable";
|
|
1557
|
+
readonly owner: "chart-config-editor";
|
|
1558
|
+
readonly rationale: "Comparison period is a canonical operation binding edited as one governed group instead of independent endpoint calls.";
|
|
1559
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "chart-canonical-contract-mapper.service.spec.ts"];
|
|
1560
|
+
}, {
|
|
1561
|
+
readonly path: "chartDocument.source.options.comparisonPeriod.field";
|
|
1562
|
+
readonly mode: "visual-editable";
|
|
1563
|
+
readonly owner: "chart-config-editor";
|
|
1564
|
+
readonly rationale: "The comparison period field is selected only from time-series eligible capability-backed fields.";
|
|
1565
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "chart-resource-capability-catalog.adapter.spec.ts"];
|
|
1566
|
+
}, {
|
|
1567
|
+
readonly path: "chartDocument.source.options.comparisonPeriod.timezone";
|
|
1568
|
+
readonly mode: "visual-editable";
|
|
1569
|
+
readonly owner: "chart-config-editor";
|
|
1570
|
+
readonly rationale: "Timezone is an explicit canonical input required for deterministic period resolution by the backend.";
|
|
1571
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "chart-contract-validation.service.spec.ts"];
|
|
1572
|
+
}, {
|
|
1573
|
+
readonly path: "chartDocument.source.options.comparisonPeriod.preset";
|
|
1574
|
+
readonly mode: "visual-editable";
|
|
1575
|
+
readonly owner: "chart-config-editor";
|
|
1576
|
+
readonly rationale: "The period preset is constrained to the canonical backend vocabulary and persisted without local date arithmetic.";
|
|
1577
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "chart-contract-validation.service.spec.ts"];
|
|
1578
|
+
}, {
|
|
1579
|
+
readonly path: "chartDocument.source.options.comparisonPeriod.mode";
|
|
1580
|
+
readonly mode: "visual-editable";
|
|
1581
|
+
readonly owner: "chart-config-editor";
|
|
1582
|
+
readonly rationale: "Comparison mode is selected from the canonical aligned or calendar-period semantics resolved by the backend.";
|
|
1583
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "chart-contract-validation.service.spec.ts"];
|
|
1584
|
+
}, {
|
|
1585
|
+
readonly path: "chartDocument.source.options.orderBy";
|
|
1586
|
+
readonly mode: "preserved-only";
|
|
1587
|
+
readonly owner: "chart-contract-normalizer";
|
|
1588
|
+
readonly rationale: "Ordering is runtime-supported but not yet exposed as a primary visual control; preserving avoids silent loss.";
|
|
1589
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1590
|
+
}, {
|
|
1591
|
+
readonly path: "chartDocument.source.options.limit";
|
|
1592
|
+
readonly mode: "preserved-only";
|
|
1593
|
+
readonly owner: "chart-contract-normalizer";
|
|
1594
|
+
readonly rationale: "Source-level result limit remains governed by document/runtime semantics until a ranked visual control exists.";
|
|
1595
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1596
|
+
}, {
|
|
1597
|
+
readonly path: "chartDocument.source.refresh";
|
|
1598
|
+
readonly mode: "preserved-only";
|
|
1599
|
+
readonly owner: "chart-contract-normalizer";
|
|
1600
|
+
readonly rationale: "Refresh policy belongs to runtime/backend cadence governance; current editor preserves it.";
|
|
1601
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1602
|
+
}, {
|
|
1603
|
+
readonly path: "chartDocument.dimensions[]";
|
|
1604
|
+
readonly mode: "visual-editable";
|
|
1605
|
+
readonly owner: "chart-config-editor";
|
|
1606
|
+
readonly rationale: "Dimension field and role are visually editable with catalog compatibility checks.";
|
|
1607
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-charts-authoring-manifest.spec.ts"];
|
|
1608
|
+
}, {
|
|
1609
|
+
readonly path: "chartDocument.dimensions[].label";
|
|
1610
|
+
readonly mode: "preserved-only";
|
|
1611
|
+
readonly owner: "chart-contract-normalizer";
|
|
1612
|
+
readonly rationale: "Dimension labels can be authored by AI/imported contracts and must survive visual edits until a governed label control exists.";
|
|
1613
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1614
|
+
}, {
|
|
1615
|
+
readonly path: "chartDocument.dimensions[].format";
|
|
1616
|
+
readonly mode: "preserved-only";
|
|
1617
|
+
readonly owner: "chart-contract-normalizer";
|
|
1618
|
+
readonly rationale: "Dimension formatting is runtime metadata and is preserved while not yet visually edited.";
|
|
1619
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1620
|
+
}, {
|
|
1621
|
+
readonly path: "chartDocument.metrics[]";
|
|
1622
|
+
readonly mode: "visual-editable";
|
|
1623
|
+
readonly owner: "chart-config-editor";
|
|
1624
|
+
readonly rationale: "Metric field, label, aggregation, axis and series kind are core visual analytics controls.";
|
|
1625
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-charts-authoring-manifest.spec.ts"];
|
|
1626
|
+
}, {
|
|
1627
|
+
readonly path: "chartDocument.metrics[].color";
|
|
1628
|
+
readonly mode: "preserved-only";
|
|
1629
|
+
readonly owner: "chart-contract-normalizer";
|
|
1630
|
+
readonly rationale: "Series color is renderer-neutral config but not yet a governed swatch control in the editor.";
|
|
1631
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1632
|
+
}, {
|
|
1633
|
+
readonly path: "chartDocument.metrics[].format";
|
|
1634
|
+
readonly mode: "preserved-only";
|
|
1635
|
+
readonly owner: "chart-contract-normalizer";
|
|
1636
|
+
readonly rationale: "Metric formatting is preserved as runtime presentation metadata until visual format presets are introduced.";
|
|
1637
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1638
|
+
}, {
|
|
1639
|
+
readonly path: "chartDocument.aggregations[]";
|
|
1640
|
+
readonly mode: "ai-authorable";
|
|
1641
|
+
readonly owner: "chart-ai-manifest";
|
|
1642
|
+
readonly rationale: "Aggregation config is a structured analytics contract; visual authoring currently edits metric aggregation instead.";
|
|
1643
|
+
readonly proof: ["chart-authoring-coverage.matrix.spec.ts", "praxis-chart-config-editor.spec.ts"];
|
|
1644
|
+
}, {
|
|
1645
|
+
readonly path: "chartDocument.groupBy[]";
|
|
1646
|
+
readonly mode: "ai-authorable";
|
|
1647
|
+
readonly owner: "chart-ai-manifest";
|
|
1648
|
+
readonly rationale: "Grouping is derivable from dimensions for current visual flows and remains preserved for structured authoring.";
|
|
1649
|
+
readonly proof: ["chart-authoring-coverage.matrix.spec.ts", "praxis-chart-config-editor.spec.ts"];
|
|
1650
|
+
}, {
|
|
1651
|
+
readonly path: "chartDocument.sort[]";
|
|
1652
|
+
readonly mode: "preserved-only";
|
|
1653
|
+
readonly owner: "chart-contract-normalizer";
|
|
1654
|
+
readonly rationale: "Document-level sort is runtime-supported but lacks a governed visual ordering editor.";
|
|
1655
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1656
|
+
}, {
|
|
1657
|
+
readonly path: "chartDocument.filters[]";
|
|
1658
|
+
readonly mode: "preserved-only";
|
|
1659
|
+
readonly owner: "chart-contract-normalizer";
|
|
1660
|
+
readonly rationale: "Static document filters are preserved; dynamic authoring should prefer queryContext and backend capabilities.";
|
|
1661
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1662
|
+
}, {
|
|
1663
|
+
readonly path: "chartDocument.limit";
|
|
1664
|
+
readonly mode: "preserved-only";
|
|
1665
|
+
readonly owner: "chart-contract-normalizer";
|
|
1666
|
+
readonly rationale: "Document-level limit remains a structured runtime constraint until a governed visual control is added.";
|
|
1667
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1668
|
+
}, {
|
|
1669
|
+
readonly path: "chartDocument.legend";
|
|
1670
|
+
readonly mode: "visual-editable";
|
|
1671
|
+
readonly owner: "chart-config-editor";
|
|
1672
|
+
readonly rationale: "Legend visibility is a visual feature toggle and AI manifest operation.";
|
|
1673
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-charts-authoring-manifest.spec.ts"];
|
|
1674
|
+
}, {
|
|
1675
|
+
readonly path: "chartDocument.labels";
|
|
1676
|
+
readonly mode: "visual-editable";
|
|
1677
|
+
readonly owner: "chart-config-editor";
|
|
1678
|
+
readonly rationale: "Data labels are a visual feature toggle in the appearance section.";
|
|
1679
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1680
|
+
}, {
|
|
1681
|
+
readonly path: "chartDocument.tooltip";
|
|
1682
|
+
readonly mode: "visual-editable";
|
|
1683
|
+
readonly owner: "chart-config-editor";
|
|
1684
|
+
readonly rationale: "Tooltip visibility is a visual feature toggle and AI manifest operation.";
|
|
1685
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-charts-authoring-manifest.spec.ts"];
|
|
1686
|
+
}, {
|
|
1687
|
+
readonly path: "chartDocument.theme.palette";
|
|
1688
|
+
readonly mode: "visual-editable";
|
|
1689
|
+
readonly owner: "chart-config-editor";
|
|
1690
|
+
readonly rationale: "Palette token/custom values are visually edited and preserved as renderer-neutral theme contract.";
|
|
1691
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1692
|
+
}, {
|
|
1693
|
+
readonly path: "chartDocument.theme.variant";
|
|
1694
|
+
readonly mode: "visual-editable";
|
|
1695
|
+
readonly owner: "chart-config-editor";
|
|
1696
|
+
readonly rationale: "Theme variant is a visual editor control and runtime presentation decision.";
|
|
1697
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-charts-settings-panel.smoke.playwright.spec.ts"];
|
|
1698
|
+
}, {
|
|
1699
|
+
readonly path: "chartDocument.theme.surface.mode";
|
|
1700
|
+
readonly mode: "visual-editable";
|
|
1701
|
+
readonly owner: "chart-config-editor";
|
|
1702
|
+
readonly rationale: "Surface mode is visually edited to align chart containment with host context.";
|
|
1703
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1704
|
+
}, {
|
|
1705
|
+
readonly path: "chartDocument.theme.surface.background";
|
|
1706
|
+
readonly mode: "preserved-only";
|
|
1707
|
+
readonly owner: "chart-contract-normalizer";
|
|
1708
|
+
readonly rationale: "Surface color details are contract-supported but not yet governed by tokenized visual controls.";
|
|
1709
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1710
|
+
}, {
|
|
1711
|
+
readonly path: "chartDocument.theme.surface.borderColor";
|
|
1712
|
+
readonly mode: "preserved-only";
|
|
1713
|
+
readonly owner: "chart-contract-normalizer";
|
|
1714
|
+
readonly rationale: "Surface border color is preserved until a token-aware border editor exists.";
|
|
1715
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1716
|
+
}, {
|
|
1717
|
+
readonly path: "chartDocument.theme.surface.borderWidth";
|
|
1718
|
+
readonly mode: "preserved-only";
|
|
1719
|
+
readonly owner: "chart-contract-normalizer";
|
|
1720
|
+
readonly rationale: "Surface border width is preserved to avoid dropping host-authored surface detail.";
|
|
1721
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1722
|
+
}, {
|
|
1723
|
+
readonly path: "chartDocument.theme.surface.borderRadius";
|
|
1724
|
+
readonly mode: "preserved-only";
|
|
1725
|
+
readonly owner: "chart-contract-normalizer";
|
|
1726
|
+
readonly rationale: "Surface border radius is preserved to avoid dropping host-authored surface detail.";
|
|
1727
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1728
|
+
}, {
|
|
1729
|
+
readonly path: "chartDocument.state.empty";
|
|
1730
|
+
readonly mode: "visual-editable";
|
|
1731
|
+
readonly owner: "chart-config-editor";
|
|
1732
|
+
readonly rationale: "Empty-state title/description are visible runtime presentation copy.";
|
|
1733
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1734
|
+
}, {
|
|
1735
|
+
readonly path: "chartDocument.state.loading";
|
|
1736
|
+
readonly mode: "visual-editable";
|
|
1737
|
+
readonly owner: "chart-config-editor";
|
|
1738
|
+
readonly rationale: "Loading-state title/description are visible runtime presentation copy.";
|
|
1739
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1740
|
+
}, {
|
|
1741
|
+
readonly path: "chartDocument.state.error";
|
|
1742
|
+
readonly mode: "visual-editable";
|
|
1743
|
+
readonly owner: "chart-config-editor";
|
|
1744
|
+
readonly rationale: "Error-state title/description are visible runtime presentation copy.";
|
|
1745
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1746
|
+
}, {
|
|
1747
|
+
readonly path: "chartDocument.events.pointClick";
|
|
1748
|
+
readonly mode: "visual-editable";
|
|
1749
|
+
readonly owner: "chart-config-editor";
|
|
1750
|
+
readonly rationale: "Point click action is configured visually while raw point evidence remains a separate output.";
|
|
1751
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-charts-authoring-manifest.spec.ts"];
|
|
1752
|
+
}, {
|
|
1753
|
+
readonly path: "chartDocument.events.selectionChange";
|
|
1754
|
+
readonly mode: "visual-editable";
|
|
1755
|
+
readonly owner: "chart-config-editor";
|
|
1756
|
+
readonly rationale: "Selection change supports the governed single-selection event contract.";
|
|
1757
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-charts-authoring-manifest.spec.ts"];
|
|
1758
|
+
}, {
|
|
1759
|
+
readonly path: "chartDocument.events.drillDown";
|
|
1760
|
+
readonly mode: "visual-editable";
|
|
1761
|
+
readonly owner: "chart-config-editor";
|
|
1762
|
+
readonly rationale: "Drilldown target and mapping are visually authorable with governed target catalogs.";
|
|
1763
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-charts-authoring-manifest.spec.ts"];
|
|
1764
|
+
}, {
|
|
1765
|
+
readonly path: "chartDocument.events.crossFilter";
|
|
1766
|
+
readonly mode: "visual-editable";
|
|
1767
|
+
readonly owner: "chart-config-editor";
|
|
1768
|
+
readonly rationale: "Cross-filter target and mapping are visually authorable with governed target catalogs.";
|
|
1769
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts", "praxis-charts-authoring-manifest.spec.ts"];
|
|
1770
|
+
}, {
|
|
1771
|
+
readonly path: "chartDocument.motion";
|
|
1772
|
+
readonly mode: "visual-editable";
|
|
1773
|
+
readonly owner: "chart-config-editor";
|
|
1774
|
+
readonly rationale: "Motion enablement and preset are visual runtime behavior controls.";
|
|
1775
|
+
readonly proof: ["praxis-chart-config-editor.spec.ts"];
|
|
1776
|
+
}, {
|
|
1777
|
+
readonly path: "queryContext";
|
|
1778
|
+
readonly mode: "advanced-structured";
|
|
1779
|
+
readonly owner: "chart-widget-config-editor";
|
|
1780
|
+
readonly rationale: "Query context is a structured widget runtime input edited as an advanced JSON fallback and validated as object-only.";
|
|
1781
|
+
readonly proof: ["praxis-chart-widget-config-editor.spec.ts", "praxis-charts-authoring-manifest.spec.ts"];
|
|
1782
|
+
}];
|
|
1783
|
+
|
|
1284
1784
|
interface PraxisChartConfigEditorData {
|
|
1285
1785
|
chartDocument?: PraxisXUiChartContract;
|
|
1286
1786
|
document?: PraxisXUiChartContract;
|
|
@@ -1312,6 +1812,21 @@ declare class ChartEditorPreviewMapperService {
|
|
|
1312
1812
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ChartEditorPreviewMapperService>;
|
|
1313
1813
|
}
|
|
1314
1814
|
|
|
1815
|
+
declare class ChartResourceCapabilityCatalogAdapter {
|
|
1816
|
+
toResourceOperations(capabilities: ResourceCapabilitySnapshot | null | undefined): PraxisXUiChartStatsOperation[];
|
|
1817
|
+
toFieldOptions(capabilities: ResourceCapabilitySnapshot | null | undefined, operation?: PraxisXUiChartStatsOperation | null): ChartEditorFieldOption[];
|
|
1818
|
+
private toFieldOptionsForRoles;
|
|
1819
|
+
private resolveDimensionOperations;
|
|
1820
|
+
private resolveAggregations;
|
|
1821
|
+
private resolveDistributionModes;
|
|
1822
|
+
private resolveResourceOperations;
|
|
1823
|
+
private mapMetric;
|
|
1824
|
+
private mapType;
|
|
1825
|
+
private toCountOption;
|
|
1826
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartResourceCapabilityCatalogAdapter, never>;
|
|
1827
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ChartResourceCapabilityCatalogAdapter>;
|
|
1828
|
+
}
|
|
1829
|
+
|
|
1315
1830
|
type PraxisChartsText = PraxisTextValue;
|
|
1316
1831
|
interface PraxisChartsI18nOptions {
|
|
1317
1832
|
locale?: string;
|
|
@@ -1334,5 +1849,5 @@ declare function providePraxisChartDrilldownPanelMetadata(): Provider;
|
|
|
1334
1849
|
declare const PRAXIS_CHART_STATE_PROBE_COMPONENT_METADATA: ComponentDocMeta;
|
|
1335
1850
|
declare function providePraxisChartStateProbeMetadata(): Provider;
|
|
1336
1851
|
|
|
1337
|
-
export { AnalyticsChartConfigAdapterService, AnalyticsChartContractService, ChartContractNormalizerService, ChartContractValidationService, ChartEditorDefaultsService, ChartEditorPreviewMapperService, PRAXIS_CHARTS_AUTHORING_MANIFEST, PRAXIS_CHARTS_I18N, PRAXIS_CHART_BACKEND_MOCK_BAR, PRAXIS_CHART_BACKEND_MOCK_COMBO, PRAXIS_CHART_BACKEND_MOCK_DONUT, PRAXIS_CHART_BACKEND_MOCK_HORIZONTAL_BAR, PRAXIS_CHART_BACKEND_MOCK_MULTI_METRIC_BAR, PRAXIS_CHART_BACKEND_MOCK_SCATTER, PRAXIS_CHART_BACKEND_MOCK_STACKED_AREA, PRAXIS_CHART_BACKEND_MOCK_TIMESERIES, PRAXIS_CHART_COMPONENT_METADATA, PRAXIS_CHART_DRILLDOWN_DATA_BY_MONTH, PRAXIS_CHART_DRILLDOWN_PANEL_METADATA, PRAXIS_CHART_ENGINE, PRAXIS_CHART_PALETTE_TOKENS, PRAXIS_CHART_STATE_PROBE_COMPONENT_METADATA, PRAXIS_CHART_THEME_VARIANTS, PraxisChartBackendPayloadAdapterService, PraxisChartCanonicalContractMapperService, PraxisChartComponent, PraxisChartCompositionShowcaseComponent, PraxisChartConfigEditor, PraxisChartDataTransformerService, PraxisChartDrilldownPanelComponent,
|
|
1338
|
-
export type { AnalyticsChartConfigAdapterOptions, AnalyticsChartContractDefinition, AnalyticsChartContractLoadOptions, AnalyticsChartContractLoadResult, AnalyticsChartContractSource, ChartConfigEditorApplyEvent, ChartConfigEditorResetEvent, ChartConfigEditorSaveEvent, ChartContractIssueSeverity, ChartContractValidationIssue, ChartContractValidationResult, ChartEditorFieldOption, ChartEditorPreviewPayload, ChartEditorResourceOption, ChartEditorTargetOption, PraxisChartAggregation, PraxisChartAxisConfig, PraxisChartAxisLabelConfig, PraxisChartAxisPosition, PraxisChartAxisType, PraxisChartBackendPayload, PraxisChartBackendWidgetPayload, PraxisChartCanvasItem, PraxisChartCartesianSeries, PraxisChartConfig, PraxisChartConfigEditorData, PraxisChartCrossFilterEvent, PraxisChartDataRow, PraxisChartDataSource, PraxisChartDeclarativeEventAction, PraxisChartDistributionStatsRequest, PraxisChartEmptyStateConfig, PraxisChartEngineAdapter, PraxisChartEngineRenderPayload, PraxisChartErrorStateConfig, PraxisChartGroupByStatsRequest, PraxisChartInteractionConfig, PraxisChartLegendConfig, PraxisChartLoadState, PraxisChartLocalDataSource, PraxisChartMetricConfig, PraxisChartMotionConfig, PraxisChartMotionPreset, PraxisChartPaletteToken, PraxisChartPieSlice, PraxisChartPointEvent, PraxisChartPrimitive, PraxisChartQueryConfig, PraxisChartQueryContext, PraxisChartQueryMetricConfig, PraxisChartQueryRequestEvent, PraxisChartRemoteDataResolver, PraxisChartRemoteDataResolverResult, PraxisChartRemoteDataSource, PraxisChartSchemaMeta, PraxisChartSelectionEvent, PraxisChartSeriesConfig, PraxisChartSeriesLabelConfig, PraxisChartSizingConfig, PraxisChartSizingMode, PraxisChartStateConfig, PraxisChartStatsDistributionMode, PraxisChartStatsGranularity, PraxisChartStatsMetricOperation, PraxisChartStatsMetricRequest, PraxisChartStatsOperation, PraxisChartStatsOrderBy, PraxisChartStatsRequest, PraxisChartSurfaceConfig, PraxisChartSurfaceMode, PraxisChartThemeConfig, PraxisChartThemeVariant, PraxisChartTimeSeriesStatsRequest, PraxisChartTooltipConfig, PraxisChartTransformedData, PraxisChartType, PraxisChartWidgetEditorInputs, PraxisChartWidgetEditorValue, PraxisChartWidgetInstance, PraxisChartWidgetLike, PraxisChartWidgetResolution, PraxisChartWidgetSchema, PraxisChartsI18nOptions, PraxisChartsText, PraxisXUiChartAggregation, PraxisXUiChartAggregationConfig, PraxisXUiChartContract, PraxisXUiChartDimension, PraxisXUiChartEventAction, PraxisXUiChartEvents, PraxisXUiChartFilter, PraxisXUiChartKind, PraxisXUiChartMetric, PraxisXUiChartMotion, PraxisXUiChartMotionPreset, PraxisXUiChartPreset, PraxisXUiChartRefresh, PraxisXUiChartRuntimeHints, PraxisXUiChartSizing, PraxisXUiChartSizingMode, PraxisXUiChartSort, PraxisXUiChartSource, PraxisXUiChartSourceKind, PraxisXUiChartState, PraxisXUiChartStateDescriptor, PraxisXUiChartStatsDistributionMode, PraxisXUiChartStatsOperation, PraxisXUiChartStatsOrderBy, PraxisXUiChartStatsSourceOptions, PraxisXUiChartSurface, PraxisXUiChartSurfaceMode, PraxisXUiChartTextValue, PraxisXUiChartTheme, PraxisXUiChartToggleableFeature };
|
|
1852
|
+
export { AnalyticsChartConfigAdapterService, AnalyticsChartContractService, ChartContractNormalizerService, ChartContractValidationService, ChartEditorDefaultsService, ChartEditorPreviewMapperService, ChartResourceCapabilityCatalogAdapter, PRAXIS_CHARTS_AUTHORING_MANIFEST, PRAXIS_CHARTS_I18N, PRAXIS_CHART_AUTHORING_COVERAGE, PRAXIS_CHART_BACKEND_MOCK_BAR, PRAXIS_CHART_BACKEND_MOCK_COMBO, PRAXIS_CHART_BACKEND_MOCK_DONUT, PRAXIS_CHART_BACKEND_MOCK_HORIZONTAL_BAR, PRAXIS_CHART_BACKEND_MOCK_MULTI_METRIC_BAR, PRAXIS_CHART_BACKEND_MOCK_SCATTER, PRAXIS_CHART_BACKEND_MOCK_STACKED_AREA, PRAXIS_CHART_BACKEND_MOCK_TIMESERIES, PRAXIS_CHART_COMPONENT_METADATA, PRAXIS_CHART_DRILLDOWN_DATA_BY_MONTH, PRAXIS_CHART_DRILLDOWN_PANEL_METADATA, PRAXIS_CHART_ENGINE, PRAXIS_CHART_ENGINE_FACTORY, PRAXIS_CHART_PALETTE_TOKENS, PRAXIS_CHART_STATE_PROBE_COMPONENT_METADATA, PRAXIS_CHART_THEME_VARIANTS, PRAXIS_X_UI_CHART_AUTHORABLE_VERSION, PraxisChartBackendPayloadAdapterService, PraxisChartCanonicalContractMapperService, PraxisChartComponent, PraxisChartCompositionShowcaseComponent, PraxisChartConfigEditor, PraxisChartDataTransformerService, PraxisChartDrilldownPanelComponent, PraxisChartSchemaMapperService, PraxisChartStateProbeComponent, PraxisChartStatsApiService, PraxisChartWidgetConfigEditor, PraxisMicroVisualizationComponent, buildPraxisChartInteractiveCanvasPage, buildPraxisChartInteractiveWidgetPage, buildPraxisChartMockCanvasPage, buildPraxisChartMockWidgetPage, createPraxisChartsI18nConfig, isPraxisChartPaletteToken, providePraxisChartDrilldownPanelMetadata, providePraxisChartStateProbeMetadata, providePraxisCharts, providePraxisChartsI18n, providePraxisChartsMetadata, resolvePraxisChartPaletteToken, resolvePraxisChartsText };
|
|
1853
|
+
export type { AnalyticsChartConfigAdapterOptions, AnalyticsChartContractDefinition, AnalyticsChartContractLoadOptions, AnalyticsChartContractLoadResult, AnalyticsChartContractSource, ChartConfigEditorApplyEvent, ChartConfigEditorResetEvent, ChartConfigEditorSaveEvent, ChartContractIssueSeverity, ChartContractValidationIssue, ChartContractValidationResult, ChartEditorEventKey, ChartEditorFieldOption, ChartEditorPreviewPayload, ChartEditorResourceOption, ChartEditorTargetOption, PraxisChartAggregation, PraxisChartAuthoringCoverageMode, PraxisChartAuthoringCoverageOwner, PraxisChartAuthoringCoverageRow, PraxisChartAxisConfig, PraxisChartAxisLabelConfig, PraxisChartAxisPosition, PraxisChartAxisType, PraxisChartBackendPayload, PraxisChartBackendWidgetPayload, PraxisChartCanvasItem, PraxisChartCartesianSeries, PraxisChartConfig, PraxisChartConfigEditorData, PraxisChartCrossFilterEvent, PraxisChartDataRow, PraxisChartDataSource, PraxisChartDeclarativeEventAction, PraxisChartDistributionStatsRequest, PraxisChartDrillDownEvent, PraxisChartEmptyStateConfig, PraxisChartEngineAdapter, PraxisChartEngineFactory, PraxisChartEngineRenderPayload, PraxisChartErrorStateConfig, PraxisChartGroupByStatsRequest, PraxisChartInteractionConfig, PraxisChartLegendConfig, PraxisChartLoadState, PraxisChartLocalDataSource, PraxisChartMetricConfig, PraxisChartMotionConfig, PraxisChartMotionPreset, PraxisChartPaletteToken, PraxisChartPieSlice, PraxisChartPointActionEvent, PraxisChartPointEvent, PraxisChartPrimitive, PraxisChartQueryConfig, PraxisChartQueryContext, PraxisChartQueryMetricConfig, PraxisChartQueryRequestEvent, PraxisChartRemoteDataResolver, PraxisChartRemoteDataResolverResult, PraxisChartRemoteDataSource, PraxisChartSchemaMeta, PraxisChartSelectionEvent, PraxisChartSeriesConfig, PraxisChartSeriesLabelConfig, PraxisChartSizingConfig, PraxisChartSizingMode, PraxisChartStateConfig, PraxisChartStatsDistributionMode, PraxisChartStatsGranularity, PraxisChartStatsMetricOperation, PraxisChartStatsMetricRequest, PraxisChartStatsOperation, PraxisChartStatsOrderBy, PraxisChartStatsRequest, PraxisChartSurfaceConfig, PraxisChartSurfaceMode, PraxisChartThemeConfig, PraxisChartThemeVariant, PraxisChartTimeSeriesStatsRequest, PraxisChartTooltipConfig, PraxisChartTransformedData, PraxisChartType, PraxisChartWidgetEditorContext, PraxisChartWidgetEditorInputs, PraxisChartWidgetEditorValue, PraxisChartWidgetInstance, PraxisChartWidgetLike, PraxisChartWidgetResolution, PraxisChartWidgetSchema, PraxisChartsI18nOptions, PraxisChartsProviderOptions, PraxisChartsText, PraxisXUiChartAggregation, PraxisXUiChartAggregationConfig, PraxisXUiChartComparisonPeriod, PraxisXUiChartComparisonPeriodMode, PraxisXUiChartComparisonPeriodPreset, PraxisXUiChartContract, PraxisXUiChartDimension, PraxisXUiChartEventAction, PraxisXUiChartEvents, PraxisXUiChartFilter, PraxisXUiChartKind, PraxisXUiChartMetric, PraxisXUiChartMotion, PraxisXUiChartMotionPreset, PraxisXUiChartPreset, PraxisXUiChartRefresh, PraxisXUiChartRuntimeHints, PraxisXUiChartSizing, PraxisXUiChartSizingMode, PraxisXUiChartSort, PraxisXUiChartSource, PraxisXUiChartSourceKind, PraxisXUiChartState, PraxisXUiChartStateDescriptor, PraxisXUiChartStatsDistributionMode, PraxisXUiChartStatsOperation, PraxisXUiChartStatsOrderBy, PraxisXUiChartStatsSourceOptions, PraxisXUiChartSurface, PraxisXUiChartSurfaceMode, PraxisXUiChartTextValue, PraxisXUiChartTheme, PraxisXUiChartToggleableFeature };
|