@praxisui/charts 3.0.0-beta.0 → 3.0.0-beta.10
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 +156 -1
- package/fesm2022/praxisui-charts.mjs +3880 -1540
- package/index.d.ts +522 -116
- package/package.json +2 -2
- package/fesm2022/praxisui-charts.mjs.map +0 -1
package/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { InjectionToken, Provider } from '@angular/core';
|
|
3
3
|
import * as _praxisui_core from '@praxisui/core';
|
|
4
|
-
import { PraxisTextValue, WidgetDefinition, WidgetShellConfig,
|
|
4
|
+
import { PraxisTextValue, WidgetDefinition, WidgetShellConfig, WidgetInstance, ComponentMetadataRegistry, ApiUrlConfig, WidgetPageDefinition, SettingsValueProvider, PraxisI18nDictionary, PraxisI18nConfig, PraxisI18nMessageDescriptor, ComponentDocMeta } from '@praxisui/core';
|
|
5
5
|
import * as _praxisui_charts from '@praxisui/charts';
|
|
6
6
|
import { EChartsCoreOption } from 'echarts';
|
|
7
7
|
import { HttpClient } from '@angular/common/http';
|
|
8
|
-
import { Observable } from 'rxjs';
|
|
8
|
+
import { Observable, BehaviorSubject } from 'rxjs';
|
|
9
9
|
|
|
10
10
|
type PraxisChartAxisType = 'category' | 'value' | 'time';
|
|
11
11
|
type PraxisChartAxisPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
@@ -39,11 +39,13 @@ type PraxisChartStatsMetricOperation = 'COUNT' | 'SUM' | 'AVG' | 'MIN' | 'MAX';
|
|
|
39
39
|
interface PraxisChartStatsMetricRequest {
|
|
40
40
|
operation: PraxisChartStatsMetricOperation;
|
|
41
41
|
field?: string;
|
|
42
|
+
alias?: string;
|
|
42
43
|
}
|
|
43
44
|
interface PraxisChartGroupByStatsRequest {
|
|
44
45
|
filter: Record<string, unknown>;
|
|
45
46
|
field: string;
|
|
46
47
|
metric: PraxisChartStatsMetricRequest;
|
|
48
|
+
metrics?: PraxisChartStatsMetricRequest[];
|
|
47
49
|
limit?: number;
|
|
48
50
|
orderBy?: 'KEY_ASC' | 'KEY_DESC' | 'VALUE_ASC' | 'VALUE_DESC';
|
|
49
51
|
}
|
|
@@ -52,6 +54,7 @@ interface PraxisChartTimeSeriesStatsRequest {
|
|
|
52
54
|
field: string;
|
|
53
55
|
granularity: Uppercase<PraxisChartStatsGranularity>;
|
|
54
56
|
metric: PraxisChartStatsMetricRequest;
|
|
57
|
+
metrics?: PraxisChartStatsMetricRequest[];
|
|
55
58
|
from?: string;
|
|
56
59
|
to?: string;
|
|
57
60
|
fillGaps?: boolean;
|
|
@@ -96,6 +99,16 @@ interface PraxisChartRemoteDataSource {
|
|
|
96
99
|
}
|
|
97
100
|
type PraxisChartDataSource = PraxisChartLocalDataSource | PraxisChartRemoteDataSource;
|
|
98
101
|
|
|
102
|
+
interface PraxisChartQueryContext {
|
|
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
|
+
}
|
|
99
112
|
type PraxisChartLoadState = 'idle' | 'loading' | 'ready' | 'empty' | 'error';
|
|
100
113
|
interface PraxisChartInteractionConfig {
|
|
101
114
|
pointClick?: boolean;
|
|
@@ -116,9 +129,10 @@ interface PraxisChartQueryRequestEvent {
|
|
|
116
129
|
kind: 'remote';
|
|
117
130
|
}>;
|
|
118
131
|
query?: PraxisChartQueryConfig;
|
|
132
|
+
queryContext?: PraxisChartQueryContext | null;
|
|
119
133
|
}
|
|
120
134
|
|
|
121
|
-
type PraxisChartType = 'bar' | 'line' | 'pie' | 'donut' | 'area' | 'stacked-bar';
|
|
135
|
+
type PraxisChartType = 'bar' | 'combo' | 'horizontal-bar' | 'line' | 'pie' | 'donut' | 'area' | 'stacked-bar' | 'stacked-area' | 'scatter';
|
|
122
136
|
type PraxisChartAggregation = 'sum' | 'count' | 'avg' | 'min' | 'max';
|
|
123
137
|
interface PraxisChartMetricConfig {
|
|
124
138
|
field?: string;
|
|
@@ -133,6 +147,7 @@ interface PraxisChartSeriesConfig {
|
|
|
133
147
|
id: string;
|
|
134
148
|
name?: string;
|
|
135
149
|
type?: PraxisChartType;
|
|
150
|
+
axis?: 'primary' | 'secondary';
|
|
136
151
|
categoryField?: string;
|
|
137
152
|
metric?: PraxisChartMetricConfig;
|
|
138
153
|
color?: string;
|
|
@@ -158,6 +173,11 @@ interface PraxisChartThemeConfig {
|
|
|
158
173
|
tooltip?: PraxisChartTooltipConfig;
|
|
159
174
|
}
|
|
160
175
|
|
|
176
|
+
type PraxisChartMotionPreset = 'subtle' | 'standard' | 'expressive';
|
|
177
|
+
interface PraxisChartMotionConfig {
|
|
178
|
+
enabled?: boolean;
|
|
179
|
+
preset?: PraxisChartMotionPreset;
|
|
180
|
+
}
|
|
161
181
|
interface PraxisChartEmptyStateConfig {
|
|
162
182
|
title?: PraxisTextValue;
|
|
163
183
|
description?: PraxisTextValue;
|
|
@@ -176,107 +196,26 @@ interface PraxisChartStateConfig {
|
|
|
176
196
|
interface PraxisChartConfig {
|
|
177
197
|
id?: string;
|
|
178
198
|
type: PraxisChartType;
|
|
199
|
+
orientation?: 'vertical' | 'horizontal';
|
|
179
200
|
title?: PraxisTextValue;
|
|
180
201
|
subtitle?: PraxisTextValue;
|
|
181
202
|
height?: number | string;
|
|
182
203
|
axes?: {
|
|
183
204
|
x?: PraxisChartAxisConfig;
|
|
184
205
|
y?: PraxisChartAxisConfig;
|
|
206
|
+
ySecondary?: PraxisChartAxisConfig;
|
|
185
207
|
};
|
|
186
208
|
series: PraxisChartSeriesConfig[];
|
|
187
209
|
dataSource?: PraxisChartDataSource;
|
|
188
210
|
interactions?: PraxisChartInteractionConfig;
|
|
189
211
|
theme?: PraxisChartThemeConfig;
|
|
212
|
+
motion?: PraxisChartMotionConfig;
|
|
190
213
|
emptyState?: PraxisChartEmptyStateConfig;
|
|
191
214
|
state?: PraxisChartStateConfig;
|
|
192
215
|
preferredLoadState?: Extract<PraxisChartLoadState, 'idle' | 'loading' | 'ready' | 'empty' | 'error'>;
|
|
193
216
|
}
|
|
194
217
|
|
|
195
|
-
|
|
196
|
-
readonly config: _angular_core.InputSignal<PraxisChartConfig>;
|
|
197
|
-
readonly data: _angular_core.InputSignal<PraxisChartDataRow[] | null>;
|
|
198
|
-
readonly pointClick: _angular_core.OutputEmitterRef<PraxisChartPointEvent>;
|
|
199
|
-
readonly queryRequest: _angular_core.OutputEmitterRef<PraxisChartQueryRequestEvent>;
|
|
200
|
-
readonly loadStateChange: _angular_core.OutputEmitterRef<PraxisChartLoadState>;
|
|
201
|
-
private readonly chartHost;
|
|
202
|
-
private readonly engine;
|
|
203
|
-
private readonly transformer;
|
|
204
|
-
private readonly statsApi;
|
|
205
|
-
private readonly i18n;
|
|
206
|
-
private readonly destroyRef;
|
|
207
|
-
private readonly resizeObserver;
|
|
208
|
-
private readonly currentLoadState;
|
|
209
|
-
private readonly remoteResolvedData;
|
|
210
|
-
private readonly remoteRuntimeState;
|
|
211
|
-
private readonly remoteTechnicalError;
|
|
212
|
-
private previousRemoteSignature;
|
|
213
|
-
readonly resolvedData: _angular_core.Signal<PraxisChartDataRow[]>;
|
|
214
|
-
readonly resolvedHeight: _angular_core.Signal<string>;
|
|
215
|
-
readonly renderConfig: _angular_core.Signal<PraxisChartConfig>;
|
|
216
|
-
readonly loadingLabel: _angular_core.Signal<string>;
|
|
217
|
-
readonly emptyTitle: _angular_core.Signal<string>;
|
|
218
|
-
readonly emptyDescription: _angular_core.Signal<string>;
|
|
219
|
-
readonly errorTitle: _angular_core.Signal<string>;
|
|
220
|
-
readonly errorDescription: _angular_core.Signal<string>;
|
|
221
|
-
readonly loadState: _angular_core.Signal<PraxisChartLoadState>;
|
|
222
|
-
constructor();
|
|
223
|
-
private ensureResizeObserver;
|
|
224
|
-
private buildRemoteSignature;
|
|
225
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartComponent, never>;
|
|
226
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisChartComponent, "praxis-chart", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, { "pointClick": "pointClick"; "queryRequest": "queryRequest"; "loadStateChange": "loadStateChange"; }, never, never, true, never>;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
declare class PraxisChartDrilldownPanelComponent {
|
|
230
|
-
readonly title: _angular_core.InputSignal<string>;
|
|
231
|
-
readonly selection: _angular_core.InputSignal<PraxisChartPointEvent | null>;
|
|
232
|
-
readonly activeCategory: _angular_core.Signal<string | null>;
|
|
233
|
-
readonly detailData: _angular_core.Signal<_praxisui_charts.PraxisChartDataRow[]>;
|
|
234
|
-
readonly detailChartConfig: _angular_core.Signal<{
|
|
235
|
-
id: string;
|
|
236
|
-
type: "donut";
|
|
237
|
-
title: {
|
|
238
|
-
text: string;
|
|
239
|
-
};
|
|
240
|
-
subtitle: {
|
|
241
|
-
text: string;
|
|
242
|
-
};
|
|
243
|
-
height: number;
|
|
244
|
-
series: {
|
|
245
|
-
id: string;
|
|
246
|
-
categoryField: string;
|
|
247
|
-
metric: {
|
|
248
|
-
field: string;
|
|
249
|
-
aggregation: "sum";
|
|
250
|
-
};
|
|
251
|
-
labels: {
|
|
252
|
-
visible: boolean;
|
|
253
|
-
};
|
|
254
|
-
}[];
|
|
255
|
-
emptyState: {
|
|
256
|
-
title: {
|
|
257
|
-
text: string;
|
|
258
|
-
};
|
|
259
|
-
description: {
|
|
260
|
-
text: string;
|
|
261
|
-
};
|
|
262
|
-
};
|
|
263
|
-
theme: {
|
|
264
|
-
palette: string[];
|
|
265
|
-
};
|
|
266
|
-
}>;
|
|
267
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartDrilldownPanelComponent, never>;
|
|
268
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisChartDrilldownPanelComponent, "praxis-chart-drilldown-panel", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
declare class PraxisChartStateProbeComponent {
|
|
272
|
-
readonly title: _angular_core.InputSignal<string>;
|
|
273
|
-
readonly value: _angular_core.InputSignal<unknown>;
|
|
274
|
-
readonly serializedValue: _angular_core.Signal<string>;
|
|
275
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartStateProbeComponent, never>;
|
|
276
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisChartStateProbeComponent, "praxis-chart-state-probe", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
type PraxisXUiChartKind = 'bar' | 'line' | 'pie' | 'donut' | 'area' | 'stacked-bar';
|
|
218
|
+
type PraxisXUiChartKind = 'bar' | 'combo' | 'horizontal-bar' | 'line' | 'pie' | 'donut' | 'area' | 'stacked-bar' | 'stacked-area' | 'scatter';
|
|
280
219
|
type PraxisXUiChartPreset = 'kpi-trend' | 'comparison' | 'distribution' | 'ranking' | 'composition' | 'hierarchical-drill-down';
|
|
281
220
|
type PraxisXUiChartTextValue = string | {
|
|
282
221
|
key: string;
|
|
@@ -300,13 +239,16 @@ interface PraxisXUiChartSort {
|
|
|
300
239
|
interface PraxisXUiChartDimension {
|
|
301
240
|
field: string;
|
|
302
241
|
label?: PraxisXUiChartTextValue;
|
|
303
|
-
role?: 'category' | 'series' | 'segment' | 'time';
|
|
242
|
+
role?: 'category' | 'series' | 'segment' | 'time' | 'value';
|
|
304
243
|
format?: string;
|
|
305
244
|
}
|
|
306
245
|
interface PraxisXUiChartMetric {
|
|
307
246
|
field: string;
|
|
308
247
|
label?: PraxisXUiChartTextValue;
|
|
309
248
|
aggregation?: PraxisXUiChartAggregation;
|
|
249
|
+
seriesKind?: 'bar' | 'line' | 'area';
|
|
250
|
+
axis?: 'primary' | 'secondary';
|
|
251
|
+
color?: string;
|
|
310
252
|
format?: string;
|
|
311
253
|
}
|
|
312
254
|
interface PraxisXUiChartAggregationConfig {
|
|
@@ -343,6 +285,11 @@ interface PraxisXUiChartTheme {
|
|
|
343
285
|
palette?: string | string[];
|
|
344
286
|
variant?: 'default' | 'compact' | 'executive';
|
|
345
287
|
}
|
|
288
|
+
type PraxisXUiChartMotionPreset = 'subtle' | 'standard' | 'expressive';
|
|
289
|
+
interface PraxisXUiChartMotion {
|
|
290
|
+
enabled?: boolean;
|
|
291
|
+
preset?: PraxisXUiChartMotionPreset;
|
|
292
|
+
}
|
|
346
293
|
interface PraxisXUiChartStateDescriptor {
|
|
347
294
|
title?: PraxisXUiChartTextValue;
|
|
348
295
|
description?: PraxisXUiChartTextValue;
|
|
@@ -368,6 +315,7 @@ interface PraxisXUiChartContract {
|
|
|
368
315
|
kind: PraxisXUiChartKind;
|
|
369
316
|
preset?: PraxisXUiChartPreset;
|
|
370
317
|
chartId?: string;
|
|
318
|
+
orientation?: 'vertical' | 'horizontal';
|
|
371
319
|
title?: PraxisXUiChartTextValue;
|
|
372
320
|
subtitle?: PraxisXUiChartTextValue;
|
|
373
321
|
height?: number | string;
|
|
@@ -385,11 +333,159 @@ interface PraxisXUiChartContract {
|
|
|
385
333
|
theme?: PraxisXUiChartTheme;
|
|
386
334
|
state?: PraxisXUiChartState;
|
|
387
335
|
events?: PraxisXUiChartEvents;
|
|
336
|
+
motion?: PraxisXUiChartMotion;
|
|
388
337
|
}
|
|
389
338
|
interface PraxisXUiChartRuntimeHints {
|
|
390
339
|
preferredLoadState?: Extract<PraxisChartLoadState, 'idle' | 'loading' | 'ready' | 'empty' | 'error'>;
|
|
391
340
|
}
|
|
392
341
|
|
|
342
|
+
interface ChartEditorResourceOption {
|
|
343
|
+
id: string;
|
|
344
|
+
label: string;
|
|
345
|
+
path: string;
|
|
346
|
+
description?: string;
|
|
347
|
+
}
|
|
348
|
+
interface ChartEditorFieldOption {
|
|
349
|
+
field: string;
|
|
350
|
+
label?: string;
|
|
351
|
+
type?: 'string' | 'number' | 'date' | 'boolean' | 'enum';
|
|
352
|
+
aggregable?: boolean;
|
|
353
|
+
filterable?: boolean;
|
|
354
|
+
roles?: Array<'dimension' | 'metric' | 'time'>;
|
|
355
|
+
}
|
|
356
|
+
interface ChartEditorTargetOption {
|
|
357
|
+
id: string;
|
|
358
|
+
label: string;
|
|
359
|
+
kind?: 'widget' | 'route' | 'panel' | 'event';
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
type PraxisDataQueryContextBridge = {
|
|
363
|
+
filters?: Record<string, unknown> | null;
|
|
364
|
+
sort?: string[] | null;
|
|
365
|
+
limit?: number | null;
|
|
366
|
+
page?: {
|
|
367
|
+
index?: number | null;
|
|
368
|
+
size?: number | null;
|
|
369
|
+
} | null;
|
|
370
|
+
meta?: Record<string, unknown> | null;
|
|
371
|
+
};
|
|
372
|
+
declare class PraxisChartComponent {
|
|
373
|
+
readonly config: _angular_core.InputSignal<PraxisChartConfig>;
|
|
374
|
+
readonly data: _angular_core.InputSignal<PraxisChartDataRow[] | null>;
|
|
375
|
+
readonly chartDocument: _angular_core.InputSignal<PraxisXUiChartContract | null>;
|
|
376
|
+
readonly filterCriteria: _angular_core.InputSignal<Record<string, unknown> | null>;
|
|
377
|
+
readonly queryContext: _angular_core.InputSignal<PraxisDataQueryContextBridge | null>;
|
|
378
|
+
readonly enableCustomization: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
379
|
+
readonly availableResources: _angular_core.InputSignal<readonly ChartEditorResourceOption[]>;
|
|
380
|
+
readonly availableFields: _angular_core.InputSignal<readonly ChartEditorFieldOption[]>;
|
|
381
|
+
readonly availableTargets: _angular_core.InputSignal<readonly ChartEditorTargetOption[]>;
|
|
382
|
+
readonly pointClick: _angular_core.OutputEmitterRef<PraxisChartPointEvent>;
|
|
383
|
+
readonly queryRequest: _angular_core.OutputEmitterRef<PraxisChartQueryRequestEvent>;
|
|
384
|
+
readonly loadStateChange: _angular_core.OutputEmitterRef<PraxisChartLoadState>;
|
|
385
|
+
readonly chartDocumentApplied: _angular_core.OutputEmitterRef<PraxisXUiChartContract>;
|
|
386
|
+
readonly chartDocumentSaved: _angular_core.OutputEmitterRef<PraxisXUiChartContract>;
|
|
387
|
+
private readonly chartHost;
|
|
388
|
+
private readonly hostElement;
|
|
389
|
+
private readonly engine;
|
|
390
|
+
private readonly transformer;
|
|
391
|
+
private readonly canonicalMapper;
|
|
392
|
+
private readonly statsApi;
|
|
393
|
+
private readonly i18n;
|
|
394
|
+
private readonly settingsPanel;
|
|
395
|
+
private readonly destroyRef;
|
|
396
|
+
private readonly resizeObserver;
|
|
397
|
+
private readonly shellObserver;
|
|
398
|
+
private readonly currentLoadState;
|
|
399
|
+
private readonly remoteResolvedData;
|
|
400
|
+
private readonly remoteRuntimeState;
|
|
401
|
+
private readonly remoteTechnicalError;
|
|
402
|
+
private readonly runtimeChartDocument;
|
|
403
|
+
private readonly mappedRuntimeConfig;
|
|
404
|
+
private readonly chartDocumentMappingError;
|
|
405
|
+
private readonly fillContainerHeight;
|
|
406
|
+
private previousRemoteSignature;
|
|
407
|
+
private previousDocumentSignature;
|
|
408
|
+
private editorSessionSubscriptions;
|
|
409
|
+
readonly effectiveConfig: _angular_core.Signal<PraxisChartConfig>;
|
|
410
|
+
readonly resolvedData: _angular_core.Signal<PraxisChartDataRow[]>;
|
|
411
|
+
readonly resolvedHeight: _angular_core.Signal<string>;
|
|
412
|
+
readonly renderConfig: _angular_core.Signal<PraxisChartConfig>;
|
|
413
|
+
readonly loadingLabel: _angular_core.Signal<string>;
|
|
414
|
+
readonly emptyTitle: _angular_core.Signal<string>;
|
|
415
|
+
readonly emptyDescription: _angular_core.Signal<string>;
|
|
416
|
+
readonly errorTitle: _angular_core.Signal<string>;
|
|
417
|
+
readonly errorDescription: _angular_core.Signal<string>;
|
|
418
|
+
readonly editChartLabel: _angular_core.Signal<string>;
|
|
419
|
+
readonly loadState: _angular_core.Signal<PraxisChartLoadState>;
|
|
420
|
+
constructor();
|
|
421
|
+
canOpenConfigEditor(): boolean;
|
|
422
|
+
openConfigEditor(): Promise<void>;
|
|
423
|
+
private ensureResizeObserver;
|
|
424
|
+
private buildRemoteSignature;
|
|
425
|
+
private clearEditorSessionSubscriptions;
|
|
426
|
+
private observeShellSizingContext;
|
|
427
|
+
private scheduleResizeAfterShellModeChange;
|
|
428
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartComponent, never>;
|
|
429
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisChartComponent, "praxis-chart", never, { "config": { "alias": "config"; "required": true; "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; }; "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"; "queryRequest": "queryRequest"; "loadStateChange": "loadStateChange"; "chartDocumentApplied": "chartDocumentApplied"; "chartDocumentSaved": "chartDocumentSaved"; }, never, never, true, never>;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
declare class PraxisChartDrilldownPanelComponent {
|
|
433
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
434
|
+
readonly selection: _angular_core.InputSignal<PraxisChartPointEvent | null>;
|
|
435
|
+
readonly activeCategory: _angular_core.Signal<string | null>;
|
|
436
|
+
readonly detailData: _angular_core.Signal<_praxisui_charts.PraxisChartDataRow[]>;
|
|
437
|
+
readonly detailChartConfig: _angular_core.Signal<{
|
|
438
|
+
id: string;
|
|
439
|
+
type: "donut";
|
|
440
|
+
title: {
|
|
441
|
+
text: string;
|
|
442
|
+
};
|
|
443
|
+
subtitle: {
|
|
444
|
+
text: string;
|
|
445
|
+
};
|
|
446
|
+
height: number;
|
|
447
|
+
series: {
|
|
448
|
+
id: string;
|
|
449
|
+
categoryField: string;
|
|
450
|
+
metric: {
|
|
451
|
+
field: string;
|
|
452
|
+
aggregation: "sum";
|
|
453
|
+
};
|
|
454
|
+
labels: {
|
|
455
|
+
visible: boolean;
|
|
456
|
+
};
|
|
457
|
+
}[];
|
|
458
|
+
emptyState: {
|
|
459
|
+
title: {
|
|
460
|
+
text: string;
|
|
461
|
+
};
|
|
462
|
+
description: {
|
|
463
|
+
text: string;
|
|
464
|
+
};
|
|
465
|
+
};
|
|
466
|
+
theme: {
|
|
467
|
+
palette: string[];
|
|
468
|
+
};
|
|
469
|
+
}>;
|
|
470
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartDrilldownPanelComponent, never>;
|
|
471
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisChartDrilldownPanelComponent, "praxis-chart-drilldown-panel", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
declare class PraxisChartStateProbeComponent {
|
|
475
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
476
|
+
readonly value: _angular_core.InputSignal<unknown>;
|
|
477
|
+
readonly serializedValue: _angular_core.Signal<string>;
|
|
478
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartStateProbeComponent, never>;
|
|
479
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisChartStateProbeComponent, "praxis-chart-state-probe", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
interface PraxisChartCanvasItem {
|
|
483
|
+
col: number;
|
|
484
|
+
row: number;
|
|
485
|
+
colSpan: number;
|
|
486
|
+
rowSpan: number;
|
|
487
|
+
zIndex?: number;
|
|
488
|
+
}
|
|
393
489
|
interface PraxisChartWidgetSchema {
|
|
394
490
|
kind?: 'x-ui.chart';
|
|
395
491
|
componentId?: 'praxis-chart' | 'chart';
|
|
@@ -400,7 +496,7 @@ interface PraxisChartWidgetSchema {
|
|
|
400
496
|
outputs?: WidgetDefinition['outputs'];
|
|
401
497
|
bindingOrder?: string[];
|
|
402
498
|
shell?: WidgetShellConfig;
|
|
403
|
-
|
|
499
|
+
canvasItem?: PraxisChartCanvasItem;
|
|
404
500
|
}
|
|
405
501
|
interface PraxisChartWidgetResolution {
|
|
406
502
|
componentId: 'praxis-chart';
|
|
@@ -408,11 +504,10 @@ interface PraxisChartWidgetResolution {
|
|
|
408
504
|
definition: WidgetDefinition;
|
|
409
505
|
shell?: WidgetShellConfig;
|
|
410
506
|
className?: string;
|
|
411
|
-
|
|
507
|
+
canvasItem?: PraxisChartCanvasItem;
|
|
412
508
|
}
|
|
413
509
|
type PraxisChartWidgetLike = PraxisXUiChartContract | PraxisChartWidgetSchema;
|
|
414
510
|
type PraxisChartWidgetInstance = WidgetInstance;
|
|
415
|
-
type PraxisChartGridWidgetInstance = GridWidgetInstance;
|
|
416
511
|
|
|
417
512
|
interface PraxisChartSchemaMeta {
|
|
418
513
|
schemaId: string;
|
|
@@ -426,7 +521,7 @@ interface PraxisChartBackendWidgetPayload {
|
|
|
426
521
|
kind?: 'x-ui.chart';
|
|
427
522
|
key?: string;
|
|
428
523
|
className?: string;
|
|
429
|
-
|
|
524
|
+
canvasItem?: PraxisChartCanvasItem;
|
|
430
525
|
shell?: WidgetShellConfig;
|
|
431
526
|
outputs?: PraxisChartWidgetSchema['outputs'];
|
|
432
527
|
bindingOrder?: string[];
|
|
@@ -456,15 +551,57 @@ declare const PRAXIS_CHART_ENGINE: InjectionToken<PraxisChartEngineAdapter>;
|
|
|
456
551
|
|
|
457
552
|
declare function providePraxisCharts(): Provider[];
|
|
458
553
|
|
|
554
|
+
declare class ChartContractNormalizerService {
|
|
555
|
+
normalize(input: PraxisXUiChartContract): PraxisXUiChartContract;
|
|
556
|
+
private normalizeMotion;
|
|
557
|
+
private normalizeKindSpecificFields;
|
|
558
|
+
private normalizeOperationSpecificFields;
|
|
559
|
+
private normalizeSourceSpecificFields;
|
|
560
|
+
private isDistribution;
|
|
561
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartContractNormalizerService, never>;
|
|
562
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ChartContractNormalizerService>;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
type ChartContractIssueSeverity = 'error' | 'warning';
|
|
566
|
+
interface ChartContractValidationIssue {
|
|
567
|
+
severity: ChartContractIssueSeverity;
|
|
568
|
+
code: string;
|
|
569
|
+
field: string;
|
|
570
|
+
message: string;
|
|
571
|
+
}
|
|
572
|
+
interface ChartContractValidationResult {
|
|
573
|
+
valid: boolean;
|
|
574
|
+
issues: ChartContractValidationIssue[];
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
declare class ChartContractValidationService {
|
|
578
|
+
validate(document: PraxisXUiChartContract): ChartContractValidationResult;
|
|
579
|
+
private validateSource;
|
|
580
|
+
private validateTheme;
|
|
581
|
+
private validateMetrics;
|
|
582
|
+
private validateKinds;
|
|
583
|
+
private validateEvents;
|
|
584
|
+
private validateEventAction;
|
|
585
|
+
private error;
|
|
586
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartContractValidationService, never>;
|
|
587
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ChartContractValidationService>;
|
|
588
|
+
}
|
|
589
|
+
|
|
459
590
|
declare class PraxisChartCanonicalContractMapperService {
|
|
591
|
+
private readonly normalizer;
|
|
592
|
+
private readonly validator;
|
|
593
|
+
constructor(normalizer?: ChartContractNormalizerService, validator?: ChartContractValidationService);
|
|
460
594
|
toPraxisChartConfig(contract: PraxisXUiChartContract): PraxisChartConfig;
|
|
461
|
-
private assertSupportedContract;
|
|
462
595
|
private buildAxes;
|
|
463
596
|
private buildSeries;
|
|
464
597
|
private buildDataSource;
|
|
465
598
|
private buildQuery;
|
|
466
599
|
private buildInteractions;
|
|
467
600
|
private buildTheme;
|
|
601
|
+
private buildMotion;
|
|
602
|
+
private resolveOrientation;
|
|
603
|
+
private resolveSeriesType;
|
|
604
|
+
private shouldSmoothSeries;
|
|
468
605
|
private mapTextValue;
|
|
469
606
|
private toLabel;
|
|
470
607
|
private resolveToggle;
|
|
@@ -474,6 +611,7 @@ declare class PraxisChartCanonicalContractMapperService {
|
|
|
474
611
|
private buildStatsRequest;
|
|
475
612
|
private resolveStatsField;
|
|
476
613
|
private buildStatsMetricRequest;
|
|
614
|
+
private buildStatsMetricRequests;
|
|
477
615
|
private mapStatsOrderBy;
|
|
478
616
|
private mapStatsOrderByToBackend;
|
|
479
617
|
private mapStatsGranularityToBackend;
|
|
@@ -486,13 +624,14 @@ declare class PraxisChartCanonicalContractMapperService {
|
|
|
486
624
|
interface PraxisChartCartesianSeries {
|
|
487
625
|
id: string;
|
|
488
626
|
name: string;
|
|
489
|
-
type: 'bar' | 'line';
|
|
627
|
+
type: 'bar' | 'line' | 'scatter';
|
|
628
|
+
axis?: 'primary' | 'secondary';
|
|
490
629
|
stack?: string;
|
|
491
630
|
smooth?: boolean;
|
|
492
631
|
area?: boolean;
|
|
493
632
|
color?: string;
|
|
494
633
|
labelsVisible?: boolean;
|
|
495
|
-
points: Array<number | null>;
|
|
634
|
+
points: Array<number | null | [number | string, number | null]>;
|
|
496
635
|
}
|
|
497
636
|
interface PraxisChartPieSlice {
|
|
498
637
|
id: string;
|
|
@@ -501,7 +640,7 @@ interface PraxisChartPieSlice {
|
|
|
501
640
|
color?: string;
|
|
502
641
|
}
|
|
503
642
|
interface PraxisChartTransformedData {
|
|
504
|
-
mode: 'cartesian' | 'pie';
|
|
643
|
+
mode: 'cartesian' | 'pie' | 'scatter';
|
|
505
644
|
categories: string[];
|
|
506
645
|
series: PraxisChartCartesianSeries[];
|
|
507
646
|
slices: PraxisChartPieSlice[];
|
|
@@ -512,9 +651,13 @@ declare class PraxisChartDataTransformerService {
|
|
|
512
651
|
private transformCartesian;
|
|
513
652
|
private transformPie;
|
|
514
653
|
private buildCartesianSeries;
|
|
654
|
+
private resolveCartesianSeriesType;
|
|
655
|
+
private isAreaLikeSeries;
|
|
656
|
+
private transformScatter;
|
|
515
657
|
private aggregate;
|
|
516
658
|
private extractMetricValue;
|
|
517
659
|
private normalizeCategory;
|
|
660
|
+
private extractScatterXValue;
|
|
518
661
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartDataTransformerService, never>;
|
|
519
662
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PraxisChartDataTransformerService>;
|
|
520
663
|
}
|
|
@@ -524,6 +667,8 @@ declare class PraxisChartOptionBuilderService {
|
|
|
524
667
|
constructor(transformer: PraxisChartDataTransformerService);
|
|
525
668
|
build(config: PraxisChartConfig, rows: PraxisChartDataRow[]): EChartsCoreOption;
|
|
526
669
|
private resolveText;
|
|
670
|
+
private buildGrid;
|
|
671
|
+
private buildCartesianYAxis;
|
|
527
672
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartOptionBuilderService, never>;
|
|
528
673
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PraxisChartOptionBuilderService>;
|
|
529
674
|
}
|
|
@@ -543,16 +688,12 @@ declare class PraxisChartSchemaMapperService {
|
|
|
543
688
|
constructor(metadataRegistration: PraxisChartMetadataRegistrationService, canonicalContractMapper: PraxisChartCanonicalContractMapperService);
|
|
544
689
|
resolve(input: PraxisChartWidgetLike, defaults?: {
|
|
545
690
|
key?: string;
|
|
546
|
-
|
|
691
|
+
canvasItem?: PraxisChartCanvasItem;
|
|
547
692
|
}): PraxisChartWidgetResolution;
|
|
548
693
|
toWidgetDefinition(input: PraxisChartWidgetLike): WidgetDefinition;
|
|
549
694
|
toWidgetInstance(input: PraxisChartWidgetLike, defaults?: {
|
|
550
695
|
key?: string;
|
|
551
696
|
}): WidgetInstance;
|
|
552
|
-
toGridWidgetInstance(input: PraxisChartWidgetLike, defaults: {
|
|
553
|
-
key?: string;
|
|
554
|
-
layout: GridItemLayout;
|
|
555
|
-
}): GridWidgetInstance;
|
|
556
697
|
private normalize;
|
|
557
698
|
private isWidgetSchema;
|
|
558
699
|
private isCanonicalChartContract;
|
|
@@ -568,7 +709,7 @@ declare class PraxisChartBackendPayloadAdapterService {
|
|
|
568
709
|
constructor(chartSchemaMapper: PraxisChartSchemaMapperService, canonicalContractMapper: PraxisChartCanonicalContractMapperService);
|
|
569
710
|
toChartConfig(payload: PraxisChartBackendPayload): PraxisChartConfig;
|
|
570
711
|
toWidgetInstance(payload: PraxisChartBackendPayload): WidgetInstance;
|
|
571
|
-
|
|
712
|
+
toCanvasItem(payload: PraxisChartBackendPayload, fallback?: PraxisChartCanvasItem): PraxisChartCanvasItem;
|
|
572
713
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartBackendPayloadAdapterService, never>;
|
|
573
714
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PraxisChartBackendPayloadAdapterService>;
|
|
574
715
|
}
|
|
@@ -582,7 +723,8 @@ declare class PraxisChartStatsApiService {
|
|
|
582
723
|
private resolveBucketCategory;
|
|
583
724
|
private resolveMetricValue;
|
|
584
725
|
private resolveCategoryField;
|
|
585
|
-
private
|
|
726
|
+
private resolveMetricBindings;
|
|
727
|
+
private projectMetricValues;
|
|
586
728
|
private buildStatsUrl;
|
|
587
729
|
private buildDefaultApiBase;
|
|
588
730
|
private normalizePath;
|
|
@@ -596,35 +738,299 @@ declare class PraxisChartStatsApiService {
|
|
|
596
738
|
declare const PRAXIS_CHART_BACKEND_MOCK_BAR: PraxisChartBackendPayload;
|
|
597
739
|
declare const PRAXIS_CHART_BACKEND_MOCK_TIMESERIES: PraxisChartBackendPayload;
|
|
598
740
|
declare const PRAXIS_CHART_BACKEND_MOCK_DONUT: PraxisChartBackendPayload;
|
|
741
|
+
declare const PRAXIS_CHART_BACKEND_MOCK_HORIZONTAL_BAR: PraxisChartBackendPayload;
|
|
742
|
+
declare const PRAXIS_CHART_BACKEND_MOCK_STACKED_AREA: PraxisChartBackendPayload;
|
|
743
|
+
declare const PRAXIS_CHART_BACKEND_MOCK_MULTI_METRIC_BAR: PraxisChartBackendPayload;
|
|
744
|
+
declare const PRAXIS_CHART_BACKEND_MOCK_SCATTER: PraxisChartBackendPayload;
|
|
745
|
+
declare const PRAXIS_CHART_BACKEND_MOCK_COMBO: PraxisChartBackendPayload;
|
|
599
746
|
|
|
600
747
|
declare const PRAXIS_CHART_DRILLDOWN_DATA_BY_MONTH: Record<string, PraxisChartDataRow[]>;
|
|
601
748
|
|
|
749
|
+
type CanvasWidgetPageDefinition = WidgetPageDefinition & {
|
|
750
|
+
canvas?: {
|
|
751
|
+
mode: 'grid';
|
|
752
|
+
columns: number;
|
|
753
|
+
rowUnit?: string;
|
|
754
|
+
gap?: string;
|
|
755
|
+
items: Record<string, PraxisChartCanvasItem>;
|
|
756
|
+
};
|
|
757
|
+
};
|
|
602
758
|
declare function buildPraxisChartMockWidgetPage(adapter: PraxisChartBackendPayloadAdapterService): WidgetPageDefinition;
|
|
603
|
-
declare function
|
|
759
|
+
declare function buildPraxisChartMockCanvasPage(adapter: PraxisChartBackendPayloadAdapterService): CanvasWidgetPageDefinition;
|
|
604
760
|
declare function buildPraxisChartInteractiveWidgetPage(adapter: PraxisChartBackendPayloadAdapterService): WidgetPageDefinition;
|
|
605
|
-
declare function
|
|
761
|
+
declare function buildPraxisChartInteractiveCanvasPage(adapter: PraxisChartBackendPayloadAdapterService): CanvasWidgetPageDefinition;
|
|
606
762
|
|
|
607
|
-
type ShowcaseLayoutMode = 'widget' | '
|
|
608
|
-
type ShowcasePayloadMode = 'group-by' | 'timeseries' | 'distribution';
|
|
763
|
+
type ShowcaseLayoutMode = 'widget' | 'canvas';
|
|
764
|
+
type ShowcasePayloadMode = 'group-by' | 'timeseries' | 'distribution' | 'horizontal-bar' | 'stacked-area' | 'multi-metric-bar' | 'scatter' | 'combo';
|
|
609
765
|
type ShowcaseScenarioMode = 'baseline' | 'interactive' | 'empty' | 'loading' | 'error';
|
|
610
766
|
declare class PraxisChartCompositionShowcaseComponent {
|
|
767
|
+
readonly enableCustomization: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
611
768
|
protected readonly layoutMode: _angular_core.WritableSignal<ShowcaseLayoutMode>;
|
|
612
769
|
protected readonly payloadMode: _angular_core.WritableSignal<ShowcasePayloadMode>;
|
|
613
770
|
protected readonly scenarioMode: _angular_core.WritableSignal<ShowcaseScenarioMode>;
|
|
614
|
-
|
|
771
|
+
private readonly backendPayloadAdapter;
|
|
772
|
+
protected readonly runtimeContext: _angular_core.Signal<{
|
|
615
773
|
tenantId: string;
|
|
616
774
|
locale: string;
|
|
617
775
|
environment: string;
|
|
618
|
-
|
|
619
|
-
|
|
776
|
+
enableCustomization: boolean;
|
|
777
|
+
}>;
|
|
620
778
|
protected readonly widgetPage: _angular_core.Signal<_praxisui_core.WidgetPageDefinition>;
|
|
621
|
-
protected readonly
|
|
622
|
-
|
|
779
|
+
protected readonly canvasPage: _angular_core.Signal<(_praxisui_core.WidgetPageDefinition & {
|
|
780
|
+
canvas?: {
|
|
781
|
+
mode: "grid";
|
|
782
|
+
columns: number;
|
|
783
|
+
rowUnit?: string;
|
|
784
|
+
gap?: string;
|
|
785
|
+
items: Record<string, _praxisui_charts.PraxisChartCanvasItem>;
|
|
786
|
+
};
|
|
787
|
+
}) | {
|
|
788
|
+
widgets: _praxisui_core.WidgetInstance[];
|
|
789
|
+
canvas: {
|
|
790
|
+
items: {
|
|
791
|
+
[x: string]: _praxisui_charts.PraxisChartCanvasItem;
|
|
792
|
+
};
|
|
793
|
+
mode: "grid";
|
|
794
|
+
columns: number;
|
|
795
|
+
rowUnit?: string;
|
|
796
|
+
gap?: string;
|
|
797
|
+
autoRows?: "fixed" | "content";
|
|
798
|
+
collisionPolicy?: _praxisui_core.WidgetPageCanvasCollisionPolicy;
|
|
799
|
+
};
|
|
800
|
+
connections?: _praxisui_core.WidgetConnection[];
|
|
801
|
+
composition?: _praxisui_core.WidgetPageCompositionDefinition;
|
|
802
|
+
state?: _praxisui_core.WidgetPageStateInput;
|
|
803
|
+
context?: Record<string, any>;
|
|
804
|
+
layout?: _praxisui_core.WidgetPageLayout;
|
|
805
|
+
layoutPreset?: string;
|
|
806
|
+
layoutPresetOptions?: Record<string, any>;
|
|
807
|
+
grouping?: _praxisui_core.WidgetPageGroupingDefinition[];
|
|
808
|
+
slotAssignments?: _praxisui_core.WidgetPageSlotAssignments;
|
|
809
|
+
deviceLayouts?: _praxisui_core.WidgetPageDeviceLayouts;
|
|
810
|
+
themePreset?: string;
|
|
811
|
+
}>;
|
|
812
|
+
protected readonly resolvedPage: _angular_core.Signal<_praxisui_core.WidgetPageDefinition | {
|
|
813
|
+
widgets: _praxisui_core.WidgetInstance[];
|
|
814
|
+
canvas: {
|
|
815
|
+
items: {
|
|
816
|
+
[x: string]: _praxisui_charts.PraxisChartCanvasItem;
|
|
817
|
+
};
|
|
818
|
+
mode: "grid";
|
|
819
|
+
columns: number;
|
|
820
|
+
rowUnit?: string;
|
|
821
|
+
gap?: string;
|
|
822
|
+
autoRows?: "fixed" | "content";
|
|
823
|
+
collisionPolicy?: _praxisui_core.WidgetPageCanvasCollisionPolicy;
|
|
824
|
+
};
|
|
825
|
+
connections?: _praxisui_core.WidgetConnection[];
|
|
826
|
+
composition?: _praxisui_core.WidgetPageCompositionDefinition;
|
|
827
|
+
state?: _praxisui_core.WidgetPageStateInput;
|
|
828
|
+
context?: Record<string, any>;
|
|
829
|
+
layout?: _praxisui_core.WidgetPageLayout;
|
|
830
|
+
layoutPreset?: string;
|
|
831
|
+
layoutPresetOptions?: Record<string, any>;
|
|
832
|
+
grouping?: _praxisui_core.WidgetPageGroupingDefinition[];
|
|
833
|
+
slotAssignments?: _praxisui_core.WidgetPageSlotAssignments;
|
|
834
|
+
deviceLayouts?: _praxisui_core.WidgetPageDeviceLayouts;
|
|
835
|
+
themePreset?: string;
|
|
836
|
+
}>;
|
|
837
|
+
protected readonly payloadTitle: _angular_core.Signal<"Envelope timeseries" | "Envelope distribution" | "Envelope horizontal-bar" | "Envelope stacked-area" | "Envelope multi-metric bar" | "Envelope scatter" | "Envelope combo" | "Envelope group-by">;
|
|
623
838
|
protected readonly selectedPayloadJson: _angular_core.Signal<string>;
|
|
624
839
|
private readonly selectedPayload;
|
|
840
|
+
private buildScenarioCanvasPage;
|
|
625
841
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartCompositionShowcaseComponent, never>;
|
|
626
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisChartCompositionShowcaseComponent, "praxis-chart-composition-showcase", never, {}, {}, never, never, true, never>;
|
|
842
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisChartCompositionShowcaseComponent, "praxis-chart-composition-showcase", never, { "enableCustomization": { "alias": "enableCustomization"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
interface ChartEditorPreviewPayload {
|
|
846
|
+
config: PraxisChartConfig;
|
|
847
|
+
data: PraxisChartDataRow[];
|
|
848
|
+
}
|
|
849
|
+
declare class ChartEditorPreviewMapperService {
|
|
850
|
+
private readonly mapper;
|
|
851
|
+
constructor(mapper: PraxisChartCanonicalContractMapperService);
|
|
852
|
+
build(document: PraxisXUiChartContract): ChartEditorPreviewPayload;
|
|
853
|
+
private buildRows;
|
|
854
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartEditorPreviewMapperService, never>;
|
|
855
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ChartEditorPreviewMapperService>;
|
|
856
|
+
}
|
|
857
|
+
|
|
858
|
+
interface ChartConfigEditorApplyEvent {
|
|
859
|
+
document: PraxisXUiChartContract;
|
|
860
|
+
issues: ChartContractValidationIssue[];
|
|
861
|
+
dirty: boolean;
|
|
862
|
+
}
|
|
863
|
+
interface ChartConfigEditorSaveEvent {
|
|
864
|
+
document: PraxisXUiChartContract;
|
|
865
|
+
issues: ChartContractValidationIssue[];
|
|
866
|
+
dirty: boolean;
|
|
867
|
+
}
|
|
868
|
+
interface ChartConfigEditorResetEvent {
|
|
869
|
+
document: PraxisXUiChartContract;
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
type ChartEditorSection = 'general' | 'data' | 'analytics' | 'appearance' | 'motion' | 'events' | 'preview';
|
|
873
|
+
type ChartFeatureKey = 'legend' | 'labels' | 'tooltip';
|
|
874
|
+
type ChartStateKey = 'empty' | 'loading' | 'error';
|
|
875
|
+
type ChartEventKey = 'pointClick' | 'drillDown';
|
|
876
|
+
declare class PraxisChartConfigEditor implements SettingsValueProvider {
|
|
877
|
+
readonly documentInput: _angular_core.InputSignal<PraxisXUiChartContract | null>;
|
|
878
|
+
readonly modeInput: _angular_core.InputSignal<"create" | "edit">;
|
|
879
|
+
readonly readonlyInput: _angular_core.InputSignal<boolean>;
|
|
880
|
+
readonly availableResourcesInput: _angular_core.InputSignal<ChartEditorResourceOption[]>;
|
|
881
|
+
readonly availableFieldsInput: _angular_core.InputSignal<ChartEditorFieldOption[]>;
|
|
882
|
+
readonly availableTargetsInput: _angular_core.InputSignal<ChartEditorTargetOption[]>;
|
|
883
|
+
readonly apply: _angular_core.OutputEmitterRef<ChartConfigEditorApplyEvent>;
|
|
884
|
+
readonly save: _angular_core.OutputEmitterRef<ChartConfigEditorSaveEvent>;
|
|
885
|
+
readonly resetChange: _angular_core.OutputEmitterRef<ChartConfigEditorResetEvent>;
|
|
886
|
+
readonly documentChange: _angular_core.OutputEmitterRef<PraxisXUiChartContract>;
|
|
887
|
+
readonly isDirty$: BehaviorSubject<boolean>;
|
|
888
|
+
readonly isValid$: BehaviorSubject<boolean>;
|
|
889
|
+
readonly isBusy$: BehaviorSubject<boolean>;
|
|
890
|
+
readonly sections: Array<{
|
|
891
|
+
id: ChartEditorSection;
|
|
892
|
+
labelKey: string;
|
|
893
|
+
fallback: string;
|
|
894
|
+
}>;
|
|
895
|
+
readonly chartKinds: PraxisXUiChartKind[];
|
|
896
|
+
readonly sourceKinds: readonly ["praxis.stats", "derived"];
|
|
897
|
+
readonly operations: PraxisXUiChartStatsOperation[];
|
|
898
|
+
readonly timeGranularities: readonly ["hour", "day", "week", "month", "quarter", "year"];
|
|
899
|
+
readonly distributionModes: PraxisXUiChartStatsDistributionMode[];
|
|
900
|
+
readonly dimensionRoles: NonNullable<PraxisXUiChartDimension['role']>[];
|
|
901
|
+
readonly metricAggregations: PraxisXUiChartAggregation[];
|
|
902
|
+
readonly metricAxes: Array<NonNullable<PraxisXUiChartMetric['axis']>>;
|
|
903
|
+
readonly metricSeriesKinds: Array<NonNullable<PraxisXUiChartMetric['seriesKind']>>;
|
|
904
|
+
readonly motionPresets: readonly ["subtle", "standard", "expressive"];
|
|
905
|
+
readonly eventActionOptions: PraxisXUiChartEventAction['action'][];
|
|
906
|
+
readonly activeSection: _angular_core.WritableSignal<ChartEditorSection>;
|
|
907
|
+
private readonly injectedData;
|
|
908
|
+
private readonly defaults;
|
|
909
|
+
private readonly normalizer;
|
|
910
|
+
private readonly validator;
|
|
911
|
+
private readonly previewMapper;
|
|
912
|
+
private readonly i18n;
|
|
913
|
+
private readonly currentDocument;
|
|
914
|
+
private readonly initialDocument;
|
|
915
|
+
private lastExternalSignature;
|
|
916
|
+
readonly normalizedDocument: _angular_core.Signal<PraxisXUiChartContract>;
|
|
917
|
+
readonly validation: _angular_core.Signal<ChartContractValidationResult>;
|
|
918
|
+
readonly issues: _angular_core.Signal<ChartContractValidationIssue[]>;
|
|
919
|
+
readonly availableResources: _angular_core.Signal<ChartEditorResourceOption[]>;
|
|
920
|
+
readonly availableFields: _angular_core.Signal<ChartEditorFieldOption[]>;
|
|
921
|
+
readonly availableTargets: _angular_core.Signal<ChartEditorTargetOption[]>;
|
|
922
|
+
readonly preview: _angular_core.Signal<ChartEditorPreviewPayload | null>;
|
|
923
|
+
constructor();
|
|
924
|
+
getSettingsValue(): PraxisXUiChartContract;
|
|
925
|
+
onSave(): PraxisXUiChartContract;
|
|
926
|
+
reset(): void;
|
|
927
|
+
applyChanges(): ChartConfigEditorApplyEvent;
|
|
928
|
+
saveChanges(): ChartConfigEditorSaveEvent;
|
|
929
|
+
setSection(section: ChartEditorSection): void;
|
|
930
|
+
setChartId(value: string): void;
|
|
931
|
+
setKind(value: PraxisXUiChartKind): void;
|
|
932
|
+
setTitle(value: string): void;
|
|
933
|
+
setSubtitle(value: string): void;
|
|
934
|
+
setHeight(value: string): void;
|
|
935
|
+
setSourceKind(value: 'praxis.stats' | 'derived'): void;
|
|
936
|
+
setResource(value: string): void;
|
|
937
|
+
setOperation(value: PraxisXUiChartStatsOperation): void;
|
|
938
|
+
setGranularity(value: typeof this.timeGranularities[number]): void;
|
|
939
|
+
setFillGaps(value: boolean): void;
|
|
940
|
+
setDistributionMode(value: PraxisXUiChartStatsDistributionMode): void;
|
|
941
|
+
setBucketSize(value: string): void;
|
|
942
|
+
setBucketCount(value: string): void;
|
|
943
|
+
addDimension(): void;
|
|
944
|
+
removeDimension(index: number): void;
|
|
945
|
+
setDimensionField(index: number, field: string): void;
|
|
946
|
+
setDimensionRole(index: number, role: NonNullable<PraxisXUiChartDimension['role']>): void;
|
|
947
|
+
addMetric(): void;
|
|
948
|
+
removeMetric(index: number): void;
|
|
949
|
+
setMetricField(index: number, field: string): void;
|
|
950
|
+
setMetricLabel(index: number, label: string): void;
|
|
951
|
+
setMetricAggregation(index: number, aggregation: PraxisXUiChartAggregation): void;
|
|
952
|
+
setMetricAxis(index: number, axis: NonNullable<PraxisXUiChartMetric['axis']>): void;
|
|
953
|
+
setMetricSeriesKind(index: number, seriesKind: NonNullable<PraxisXUiChartMetric['seriesKind']>): void;
|
|
954
|
+
setMotionEnabled(enabled: boolean): void;
|
|
955
|
+
setMotionPreset(preset: 'subtle' | 'standard' | 'expressive'): void;
|
|
956
|
+
setFeatureEnabled(feature: ChartFeatureKey, enabled: boolean): void;
|
|
957
|
+
setPalette(value: string): void;
|
|
958
|
+
setStateTitle(stateKey: ChartStateKey, value: string): void;
|
|
959
|
+
setStateDescription(stateKey: ChartStateKey, value: string): void;
|
|
960
|
+
setEventAction(eventKey: ChartEventKey, action: PraxisXUiChartEventAction['action'] | ''): void;
|
|
961
|
+
setEventTarget(eventKey: ChartEventKey, target: string): void;
|
|
962
|
+
setEventMapping(eventKey: ChartEventKey, value: string): void;
|
|
963
|
+
isReadonly(): boolean;
|
|
964
|
+
titleValue(): string;
|
|
965
|
+
subtitleValue(): string;
|
|
966
|
+
resourceValue(): string;
|
|
967
|
+
resourceOptions(): ChartEditorResourceOption[];
|
|
968
|
+
granularityValue(): typeof this.timeGranularities[number];
|
|
969
|
+
fillGapsValue(): boolean;
|
|
970
|
+
distributionModeValue(): PraxisXUiChartStatsDistributionMode;
|
|
971
|
+
bucketSizeValue(): string;
|
|
972
|
+
bucketCountValue(): string;
|
|
973
|
+
heightValue(): string;
|
|
974
|
+
featureEnabled(feature: ChartFeatureKey): boolean;
|
|
975
|
+
paletteValue(): string;
|
|
976
|
+
stateTitle(stateKey: ChartStateKey): string;
|
|
977
|
+
stateDescription(stateKey: ChartStateKey): string;
|
|
978
|
+
eventAction(eventKey: ChartEventKey): PraxisXUiChartEventAction['action'] | '';
|
|
979
|
+
eventTarget(eventKey: ChartEventKey): string;
|
|
980
|
+
targetOptions(): ChartEditorTargetOption[];
|
|
981
|
+
eventMappingText(eventKey: ChartEventKey): string;
|
|
982
|
+
dimensions(): PraxisXUiChartDimension[];
|
|
983
|
+
metrics(): PraxisXUiChartMetric[];
|
|
984
|
+
fieldOptions(role: 'dimension' | 'metric'): ChartEditorFieldOption[];
|
|
985
|
+
showMetricAxisControls(): boolean;
|
|
986
|
+
showMetricSeriesKindControls(): boolean;
|
|
987
|
+
showTimeseriesControls(): boolean;
|
|
988
|
+
showDistributionControls(): boolean;
|
|
989
|
+
showComboPanel(): boolean;
|
|
990
|
+
showPieDonutPanel(): boolean;
|
|
991
|
+
showScatterPanel(): boolean;
|
|
992
|
+
issueTrackBy(_: number, issue: ChartContractValidationIssue): string;
|
|
993
|
+
t(key: string, fallback: string): string;
|
|
994
|
+
doc(): PraxisXUiChartContract;
|
|
995
|
+
private patchStateDescriptor;
|
|
996
|
+
private patchEvent;
|
|
997
|
+
private parseMappingText;
|
|
998
|
+
private createApplyPayload;
|
|
999
|
+
private createSavePayload;
|
|
1000
|
+
private patchDocument;
|
|
1001
|
+
private refreshState;
|
|
1002
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartConfigEditor, never>;
|
|
1003
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisChartConfigEditor, "praxis-chart-config-editor", never, { "documentInput": { "alias": "document"; "required": false; "isSignal": true; }; "modeInput": { "alias": "mode"; "required": false; "isSignal": true; }; "readonlyInput": { "alias": "readonly"; "required": false; "isSignal": true; }; "availableResourcesInput": { "alias": "availableResources"; "required": false; "isSignal": true; }; "availableFieldsInput": { "alias": "availableFields"; "required": false; "isSignal": true; }; "availableTargetsInput": { "alias": "availableTargets"; "required": false; "isSignal": true; }; }, { "apply": "apply"; "save": "save"; "resetChange": "resetChange"; "documentChange": "documentChange"; }, never, never, true, never>;
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
interface PraxisChartConfigEditorData {
|
|
1007
|
+
chartDocument?: PraxisXUiChartContract;
|
|
1008
|
+
document?: PraxisXUiChartContract;
|
|
1009
|
+
chartKey?: string;
|
|
1010
|
+
mode?: 'create' | 'edit';
|
|
1011
|
+
availableResources?: ChartEditorResourceOption[];
|
|
1012
|
+
availableFields?: ChartEditorFieldOption[];
|
|
1013
|
+
availableTargets?: ChartEditorTargetOption[];
|
|
1014
|
+
hostContext?: Record<string, unknown>;
|
|
1015
|
+
readonly?: boolean;
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
declare class ChartEditorDefaultsService {
|
|
1019
|
+
create(): PraxisXUiChartContract;
|
|
1020
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartEditorDefaultsService, never>;
|
|
1021
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ChartEditorDefaultsService>;
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
type PraxisChartsText = PraxisTextValue;
|
|
1025
|
+
interface PraxisChartsI18nOptions {
|
|
1026
|
+
locale?: string;
|
|
1027
|
+
fallbackLocale?: string;
|
|
1028
|
+
dictionaries?: Record<string, PraxisI18nDictionary>;
|
|
627
1029
|
}
|
|
1030
|
+
declare const PRAXIS_CHARTS_I18N: InjectionToken<Record<string, never>>;
|
|
1031
|
+
declare function createPraxisChartsI18nConfig(options?: PraxisChartsI18nOptions): Partial<PraxisI18nConfig>;
|
|
1032
|
+
declare function providePraxisChartsI18n(options?: PraxisChartsI18nOptions): Provider[];
|
|
1033
|
+
declare function resolvePraxisChartsText(value: PraxisChartsText | null | undefined, fallback?: string): PraxisI18nMessageDescriptor;
|
|
628
1034
|
|
|
629
1035
|
declare const PRAXIS_CHART_COMPONENT_METADATA: ComponentDocMeta;
|
|
630
1036
|
declare function providePraxisChartsMetadata(): Provider;
|
|
@@ -635,5 +1041,5 @@ declare function providePraxisChartDrilldownPanelMetadata(): Provider;
|
|
|
635
1041
|
declare const PRAXIS_CHART_STATE_PROBE_COMPONENT_METADATA: ComponentDocMeta;
|
|
636
1042
|
declare function providePraxisChartStateProbeMetadata(): Provider;
|
|
637
1043
|
|
|
638
|
-
export { PRAXIS_CHART_BACKEND_MOCK_BAR, PRAXIS_CHART_BACKEND_MOCK_DONUT, 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_STATE_PROBE_COMPONENT_METADATA, PraxisChartBackendPayloadAdapterService, PraxisChartCanonicalContractMapperService, PraxisChartComponent, PraxisChartCompositionShowcaseComponent, PraxisChartDataTransformerService, PraxisChartDrilldownPanelComponent, PraxisChartOptionBuilderService, PraxisChartSchemaMapperService, PraxisChartStateProbeComponent, PraxisChartStatsApiService,
|
|
639
|
-
export type { PraxisChartAggregation, PraxisChartAxisConfig, PraxisChartAxisLabelConfig, PraxisChartAxisPosition, PraxisChartAxisType, PraxisChartBackendPayload, PraxisChartBackendWidgetPayload, PraxisChartCartesianSeries, PraxisChartConfig, PraxisChartDataRow, PraxisChartDataSource, PraxisChartDistributionStatsRequest, PraxisChartEmptyStateConfig, PraxisChartEngineAdapter, PraxisChartEngineRenderPayload, PraxisChartErrorStateConfig,
|
|
1044
|
+
export { ChartContractNormalizerService, ChartContractValidationService, ChartEditorDefaultsService, ChartEditorPreviewMapperService, 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_STATE_PROBE_COMPONENT_METADATA, PraxisChartBackendPayloadAdapterService, PraxisChartCanonicalContractMapperService, PraxisChartComponent, PraxisChartCompositionShowcaseComponent, PraxisChartConfigEditor, PraxisChartDataTransformerService, PraxisChartDrilldownPanelComponent, PraxisChartOptionBuilderService, PraxisChartSchemaMapperService, PraxisChartStateProbeComponent, PraxisChartStatsApiService, buildPraxisChartInteractiveCanvasPage, buildPraxisChartInteractiveWidgetPage, buildPraxisChartMockCanvasPage, buildPraxisChartMockWidgetPage, createPraxisChartsI18nConfig, providePraxisChartDrilldownPanelMetadata, providePraxisChartStateProbeMetadata, providePraxisCharts, providePraxisChartsI18n, providePraxisChartsMetadata, resolvePraxisChartsText };
|
|
1045
|
+
export type { ChartConfigEditorApplyEvent, ChartConfigEditorResetEvent, ChartConfigEditorSaveEvent, ChartContractIssueSeverity, ChartContractValidationIssue, ChartContractValidationResult, ChartEditorFieldOption, ChartEditorPreviewPayload, ChartEditorResourceOption, ChartEditorTargetOption, PraxisChartAggregation, PraxisChartAxisConfig, PraxisChartAxisLabelConfig, PraxisChartAxisPosition, PraxisChartAxisType, PraxisChartBackendPayload, PraxisChartBackendWidgetPayload, PraxisChartCanvasItem, PraxisChartCartesianSeries, PraxisChartConfig, PraxisChartConfigEditorData, PraxisChartDataRow, PraxisChartDataSource, PraxisChartDistributionStatsRequest, PraxisChartEmptyStateConfig, PraxisChartEngineAdapter, PraxisChartEngineRenderPayload, PraxisChartErrorStateConfig, PraxisChartGroupByStatsRequest, PraxisChartInteractionConfig, PraxisChartLegendConfig, PraxisChartLoadState, PraxisChartLocalDataSource, PraxisChartMetricConfig, PraxisChartMotionConfig, PraxisChartMotionPreset, PraxisChartPieSlice, PraxisChartPointEvent, PraxisChartPrimitive, PraxisChartQueryConfig, PraxisChartQueryContext, PraxisChartQueryMetricConfig, PraxisChartQueryRequestEvent, PraxisChartRemoteDataSource, PraxisChartSchemaMeta, PraxisChartSeriesConfig, PraxisChartSeriesLabelConfig, PraxisChartStateConfig, PraxisChartStatsDistributionMode, PraxisChartStatsGranularity, PraxisChartStatsMetricOperation, PraxisChartStatsMetricRequest, PraxisChartStatsOperation, PraxisChartStatsOrderBy, PraxisChartStatsRequest, PraxisChartThemeConfig, PraxisChartTimeSeriesStatsRequest, PraxisChartTooltipConfig, PraxisChartTransformedData, PraxisChartType, PraxisChartWidgetInstance, PraxisChartWidgetLike, PraxisChartWidgetResolution, PraxisChartWidgetSchema, PraxisChartsI18nOptions, PraxisChartsText, PraxisXUiChartAggregation, PraxisXUiChartAggregationConfig, PraxisXUiChartContract, PraxisXUiChartDimension, PraxisXUiChartEventAction, PraxisXUiChartEvents, PraxisXUiChartFilter, PraxisXUiChartKind, PraxisXUiChartMetric, PraxisXUiChartMotion, PraxisXUiChartMotionPreset, PraxisXUiChartPreset, PraxisXUiChartRefresh, PraxisXUiChartRuntimeHints, PraxisXUiChartSort, PraxisXUiChartSource, PraxisXUiChartSourceKind, PraxisXUiChartState, PraxisXUiChartStateDescriptor, PraxisXUiChartStatsDistributionMode, PraxisXUiChartStatsOperation, PraxisXUiChartStatsOrderBy, PraxisXUiChartStatsSourceOptions, PraxisXUiChartTextValue, PraxisXUiChartTheme, PraxisXUiChartToggleableFeature };
|