@praxisui/charts 8.0.0-beta.0 → 8.0.0-beta.2

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/index.d.ts CHANGED
@@ -3,9 +3,9 @@ import * as _angular_core from '@angular/core';
3
3
  import { InjectionToken, Provider } from '@angular/core';
4
4
  import * as _praxisui_core from '@praxisui/core';
5
5
  import { PraxisTextValue, WidgetDefinition, WidgetShellConfig, WidgetInstance, ComponentMetadataRegistry, ApiUrlConfig, PraxisAnalyticsProjection, AnalyticsSchemaContractService, AnalyticsPresentationResolver, WidgetPageDefinition, SettingsValueProvider, PraxisI18nDictionary, PraxisI18nConfig, PraxisI18nMessageDescriptor, ComponentDocMeta } from '@praxisui/core';
6
+ import { Observable, BehaviorSubject } from 'rxjs';
6
7
  import { EChartsCoreOption } from 'echarts';
7
8
  import { HttpClient } from '@angular/common/http';
8
- import { Observable, BehaviorSubject } from 'rxjs';
9
9
 
10
10
  type PraxisChartAxisType = 'category' | 'value' | 'time';
11
11
  type PraxisChartAxisPosition = 'top' | 'bottom' | 'left' | 'right';
@@ -28,14 +28,14 @@ type PraxisChartPrimitive = string | number | boolean | Date | null | undefined;
28
28
  type PraxisChartDataRow = Record<string, PraxisChartPrimitive>;
29
29
  interface PraxisChartQueryMetricConfig {
30
30
  field?: string;
31
- aggregation?: 'sum' | 'count' | 'avg' | 'min' | 'max';
31
+ aggregation?: 'sum' | 'count' | 'distinct-count' | 'avg' | 'min' | 'max';
32
32
  alias?: string;
33
33
  }
34
34
  type PraxisChartStatsOperation = 'group-by' | 'timeseries' | 'distribution';
35
35
  type PraxisChartStatsDistributionMode = 'terms' | 'histogram';
36
36
  type PraxisChartStatsOrderBy = 'key-asc' | 'key-desc' | 'value-asc' | 'value-desc';
37
- type PraxisChartStatsGranularity = 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
38
- type PraxisChartStatsMetricOperation = 'COUNT' | 'SUM' | 'AVG' | 'MIN' | 'MAX';
37
+ type PraxisChartStatsGranularity = 'day' | 'week' | 'month';
38
+ type PraxisChartStatsMetricOperation = 'COUNT' | 'DISTINCT_COUNT' | 'SUM' | 'AVG' | 'MIN' | 'MAX';
39
39
  interface PraxisChartStatsMetricRequest {
40
40
  operation: PraxisChartStatsMetricOperation;
41
41
  field?: string;
@@ -114,6 +114,8 @@ interface PraxisChartInteractionConfig {
114
114
  pointClick?: boolean;
115
115
  selection?: boolean;
116
116
  drillDown?: boolean;
117
+ crossFilter?: boolean;
118
+ eventActions?: Partial<Record<'pointClick' | 'selectionChange' | 'drillDown' | 'crossFilter', PraxisChartDeclarativeEventAction>>;
117
119
  }
118
120
  interface PraxisChartPointEvent {
119
121
  chartId?: string;
@@ -123,6 +125,23 @@ interface PraxisChartPointEvent {
123
125
  value?: unknown;
124
126
  data?: unknown;
125
127
  }
128
+ interface PraxisChartDeclarativeEventAction {
129
+ action: 'filter-widget' | 'open-detail' | 'navigate' | 'update-context' | 'emit';
130
+ target?: string;
131
+ mapping?: Record<string, string>;
132
+ }
133
+ interface PraxisChartSelectionEvent extends PraxisChartPointEvent {
134
+ selected: boolean;
135
+ filters: Record<string, unknown>;
136
+ action?: PraxisChartDeclarativeEventAction;
137
+ }
138
+ interface PraxisChartCrossFilterEvent {
139
+ chartId?: string;
140
+ filters: Record<string, unknown>;
141
+ target?: string;
142
+ action?: PraxisChartDeclarativeEventAction;
143
+ source: PraxisChartSelectionEvent;
144
+ }
126
145
  interface PraxisChartQueryRequestEvent {
127
146
  chartId?: string;
128
147
  dataSource: Extract<PraxisChartDataSource, {
@@ -131,9 +150,11 @@ interface PraxisChartQueryRequestEvent {
131
150
  query?: PraxisChartQueryConfig;
132
151
  queryContext?: PraxisChartQueryContext | null;
133
152
  }
153
+ type PraxisChartRemoteDataResolverResult = PraxisChartDataRow[] | Promise<PraxisChartDataRow[]> | Observable<PraxisChartDataRow[]> | null | undefined;
154
+ type PraxisChartRemoteDataResolver = (event: PraxisChartQueryRequestEvent, config: PraxisChartConfig) => PraxisChartRemoteDataResolverResult;
134
155
 
135
156
  type PraxisChartType = 'bar' | 'combo' | 'horizontal-bar' | 'line' | 'pie' | 'donut' | 'area' | 'stacked-bar' | 'stacked-area' | 'scatter';
136
- type PraxisChartAggregation = 'sum' | 'count' | 'avg' | 'min' | 'max';
157
+ type PraxisChartAggregation = 'sum' | 'count' | 'distinct-count' | 'avg' | 'min' | 'max';
137
158
  interface PraxisChartMetricConfig {
138
159
  field?: string;
139
160
  aggregation?: PraxisChartAggregation;
@@ -287,7 +308,7 @@ interface PraxisXUiChartAggregationConfig {
287
308
  as?: string;
288
309
  }
289
310
  interface PraxisXUiChartStatsSourceOptions {
290
- granularity?: 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
311
+ granularity?: 'day' | 'week' | 'month';
291
312
  fillGaps?: boolean;
292
313
  mode?: PraxisXUiChartStatsDistributionMode;
293
314
  bucketSize?: number;
@@ -424,11 +445,14 @@ declare class PraxisChartComponent {
424
445
  readonly chartDocument: _angular_core.InputSignal<PraxisXUiChartContract | null>;
425
446
  readonly filterCriteria: _angular_core.InputSignal<Record<string, unknown> | null>;
426
447
  readonly queryContext: _angular_core.InputSignal<PraxisDataQueryContextBridge | null>;
448
+ readonly remoteDataResolver: _angular_core.InputSignal<PraxisChartRemoteDataResolver | null>;
427
449
  readonly enableCustomization: _angular_core.InputSignalWithTransform<boolean, unknown>;
428
450
  readonly availableResources: _angular_core.InputSignal<readonly ChartEditorResourceOption[]>;
429
451
  readonly availableFields: _angular_core.InputSignal<readonly ChartEditorFieldOption[]>;
430
452
  readonly availableTargets: _angular_core.InputSignal<readonly ChartEditorTargetOption[]>;
431
453
  readonly pointClick: _angular_core.OutputEmitterRef<PraxisChartPointEvent>;
454
+ readonly selectionChange: _angular_core.OutputEmitterRef<PraxisChartSelectionEvent>;
455
+ readonly crossFilter: _angular_core.OutputEmitterRef<PraxisChartCrossFilterEvent>;
432
456
  readonly queryRequest: _angular_core.OutputEmitterRef<PraxisChartQueryRequestEvent>;
433
457
  readonly loadStateChange: _angular_core.OutputEmitterRef<PraxisChartLoadState>;
434
458
  readonly chartDocumentApplied: _angular_core.OutputEmitterRef<PraxisXUiChartContract>;
@@ -454,6 +478,7 @@ declare class PraxisChartComponent {
454
478
  private readonly fillContainerHeight;
455
479
  private resizeFrameId;
456
480
  private previousRemoteSignature;
481
+ private previousRemoteDataResolver;
457
482
  private previousDocumentSignature;
458
483
  private editorSessionSubscriptions;
459
484
  readonly effectiveConfig: _angular_core.Signal<PraxisChartConfig>;
@@ -479,17 +504,24 @@ declare class PraxisChartComponent {
479
504
  constructor();
480
505
  canOpenConfigEditor(): boolean;
481
506
  openConfigEditor(): Promise<void>;
507
+ private handlePointClick;
508
+ private buildSelectionEvent;
509
+ private buildEventFilters;
510
+ private extractPointSourceValues;
511
+ private extractPointMetricValue;
512
+ private executeRemoteDataRequest;
482
513
  private ensureResizeObserver;
483
514
  private toCssSize;
484
515
  private toCssAspectRatio;
485
516
  private buildRemoteSignature;
486
517
  private clearEditorSessionSubscriptions;
487
518
  private observeShellSizingContext;
519
+ private shouldFillShellContainer;
488
520
  private scheduleResizeAfterShellModeChange;
489
521
  private scheduleEngineResize;
490
522
  private cancelScheduledResize;
491
523
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisChartComponent, never>;
492
- 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>;
524
+ 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; }; "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>;
493
525
  }
494
526
 
495
527
  declare class PraxisChartDrilldownPanelComponent {
@@ -1035,7 +1067,7 @@ interface ChartConfigEditorResetEvent {
1035
1067
  type ChartEditorSection = 'general' | 'data' | 'analytics' | 'appearance' | 'motion' | 'events' | 'preview';
1036
1068
  type ChartFeatureKey = 'legend' | 'labels' | 'tooltip';
1037
1069
  type ChartStateKey = 'empty' | 'loading' | 'error';
1038
- type ChartEventKey = 'pointClick' | 'drillDown';
1070
+ type ChartEventKey = 'pointClick' | 'selectionChange' | 'drillDown' | 'crossFilter';
1039
1071
  declare class PraxisChartConfigEditor implements SettingsValueProvider {
1040
1072
  readonly documentInput: _angular_core.InputSignal<PraxisXUiChartContract | null>;
1041
1073
  readonly modeInput: _angular_core.InputSignal<"create" | "edit">;
@@ -1058,7 +1090,7 @@ declare class PraxisChartConfigEditor implements SettingsValueProvider {
1058
1090
  readonly chartKinds: PraxisXUiChartKind[];
1059
1091
  readonly sourceKinds: readonly ["praxis.stats", "derived"];
1060
1092
  readonly operations: PraxisXUiChartStatsOperation[];
1061
- readonly timeGranularities: readonly ["hour", "day", "week", "month", "quarter", "year"];
1093
+ readonly timeGranularities: readonly ["day", "week", "month"];
1062
1094
  readonly distributionModes: PraxisXUiChartStatsDistributionMode[];
1063
1095
  readonly dimensionRoles: NonNullable<PraxisXUiChartDimension['role']>[];
1064
1096
  readonly metricAggregations: PraxisXUiChartAggregation[];
@@ -1229,4 +1261,4 @@ declare const PRAXIS_CHART_STATE_PROBE_COMPONENT_METADATA: ComponentDocMeta;
1229
1261
  declare function providePraxisChartStateProbeMetadata(): Provider;
1230
1262
 
1231
1263
  export { AnalyticsChartConfigAdapterService, AnalyticsChartContractService, 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_PALETTE_TOKENS, PRAXIS_CHART_STATE_PROBE_COMPONENT_METADATA, PRAXIS_CHART_THEME_VARIANTS, PraxisChartBackendPayloadAdapterService, PraxisChartCanonicalContractMapperService, PraxisChartComponent, PraxisChartCompositionShowcaseComponent, PraxisChartConfigEditor, PraxisChartDataTransformerService, PraxisChartDrilldownPanelComponent, PraxisChartOptionBuilderService, PraxisChartSchemaMapperService, PraxisChartStateProbeComponent, PraxisChartStatsApiService, buildPraxisChartInteractiveCanvasPage, buildPraxisChartInteractiveWidgetPage, buildPraxisChartMockCanvasPage, buildPraxisChartMockWidgetPage, createPraxisChartsI18nConfig, isPraxisChartPaletteToken, providePraxisChartDrilldownPanelMetadata, providePraxisChartStateProbeMetadata, providePraxisCharts, providePraxisChartsI18n, providePraxisChartsMetadata, resolvePraxisChartPaletteToken, resolvePraxisChartsText };
1232
- 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, PraxisChartDataRow, PraxisChartDataSource, PraxisChartDistributionStatsRequest, PraxisChartEmptyStateConfig, PraxisChartEngineAdapter, PraxisChartEngineRenderPayload, PraxisChartErrorStateConfig, PraxisChartGroupByStatsRequest, PraxisChartInteractionConfig, PraxisChartLegendConfig, PraxisChartLoadState, PraxisChartLocalDataSource, PraxisChartMetricConfig, PraxisChartMotionConfig, PraxisChartMotionPreset, PraxisChartPaletteToken, PraxisChartPieSlice, PraxisChartPointEvent, PraxisChartPrimitive, PraxisChartQueryConfig, PraxisChartQueryContext, PraxisChartQueryMetricConfig, PraxisChartQueryRequestEvent, PraxisChartRemoteDataSource, PraxisChartSchemaMeta, PraxisChartSeriesConfig, PraxisChartSeriesLabelConfig, PraxisChartSizingConfig, PraxisChartSizingMode, PraxisChartStateConfig, PraxisChartStatsDistributionMode, PraxisChartStatsGranularity, PraxisChartStatsMetricOperation, PraxisChartStatsMetricRequest, PraxisChartStatsOperation, PraxisChartStatsOrderBy, PraxisChartStatsRequest, PraxisChartSurfaceConfig, PraxisChartSurfaceMode, PraxisChartThemeConfig, PraxisChartThemeVariant, PraxisChartTimeSeriesStatsRequest, PraxisChartTooltipConfig, PraxisChartTransformedData, PraxisChartType, 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 };
1264
+ 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, 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 };
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@praxisui/charts",
3
- "version": "8.0.0-beta.0",
3
+ "version": "8.0.0-beta.2",
4
4
  "description": "Metadata-driven charts library for Praxis UI Angular with engine adapters and Apache ECharts as the initial renderer.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^20.0.0",
7
7
  "@angular/core": "^20.0.0",
8
- "@praxisui/core": "^8.0.0-beta.0"
8
+ "@praxisui/core": "^8.0.0-beta.2"
9
9
  },
10
10
  "dependencies": {
11
11
  "echarts": "^6.0.0",
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "https://github.com/codexrodrigues/praxis-ui-angular"
20
+ "url": "git+https://github.com/codexrodrigues/praxis-ui-angular.git"
21
21
  },
22
22
  "homepage": "https://praxisui.dev",
23
23
  "bugs": {