@orbcharts/core 3.0.0-alpha.42 → 3.0.0-alpha.43

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.
Files changed (100) hide show
  1. package/LICENSE +200 -200
  2. package/dist/orbcharts-core.es.js +1905 -1896
  3. package/dist/orbcharts-core.umd.js +2 -2
  4. package/dist/src/defaults.d.ts +4 -3
  5. package/dist/src/grid/computeGridData.d.ts +4 -11
  6. package/dist/src/grid/gridObservables.d.ts +15 -18
  7. package/dist/src/multiGrid/multiGridObservables.d.ts +4 -11
  8. package/dist/src/series/seriesObservables.d.ts +26 -1
  9. package/dist/src/types/ComputedData.d.ts +1 -0
  10. package/dist/src/types/ComputedDataGrid.d.ts +0 -3
  11. package/dist/src/types/ComputedDataSeries.d.ts +1 -2
  12. package/dist/src/types/ContextObserverGrid.d.ts +11 -4
  13. package/dist/src/types/ContextObserverMultiGrid.d.ts +8 -3
  14. package/dist/src/types/ContextObserverSeries.d.ts +18 -0
  15. package/dist/src/types/DataFormatter.d.ts +8 -5
  16. package/dist/src/types/DataFormatterGrid.d.ts +13 -16
  17. package/dist/src/types/DataFormatterMultiGrid.d.ts +6 -3
  18. package/dist/src/types/DataFormatterMultiValue.d.ts +3 -0
  19. package/dist/src/types/DataFormatterRelationship.d.ts +3 -0
  20. package/dist/src/types/DataFormatterSeries.d.ts +10 -3
  21. package/dist/src/utils/orbchartsUtils.d.ts +14 -13
  22. package/package.json +41 -41
  23. package/src/AbstractChart.ts +48 -48
  24. package/src/GridChart.ts +20 -20
  25. package/src/MultiGridChart.ts +20 -20
  26. package/src/MultiValueChart.ts +20 -20
  27. package/src/RelationshipChart.ts +20 -20
  28. package/src/SeriesChart.ts +20 -20
  29. package/src/TreeChart.ts +20 -20
  30. package/src/base/createBaseChart.ts +367 -367
  31. package/src/base/createBasePlugin.ts +89 -89
  32. package/src/defaults.ts +220 -248
  33. package/src/defineGridPlugin.ts +3 -3
  34. package/src/defineMultiGridPlugin.ts +3 -3
  35. package/src/defineMultiValuePlugin.ts +3 -3
  36. package/src/defineNoneDataPlugin.ts +4 -4
  37. package/src/defineRelationshipPlugin.ts +3 -3
  38. package/src/defineSeriesPlugin.ts +3 -3
  39. package/src/defineTreePlugin.ts +3 -3
  40. package/src/grid/computeGridData.ts +134 -205
  41. package/src/grid/createGridContextObserver.ts +147 -130
  42. package/src/grid/gridObservables.ts +573 -486
  43. package/src/index.ts +21 -21
  44. package/src/multiGrid/computeMultiGridData.ts +130 -173
  45. package/src/multiGrid/createMultiGridContextObserver.ts +40 -40
  46. package/src/multiGrid/multiGridObservables.ts +350 -285
  47. package/src/multiValue/computeMultiValueData.ts +143 -136
  48. package/src/multiValue/createMultiValueContextObserver.ts +12 -12
  49. package/src/relationship/computeRelationshipData.ts +118 -106
  50. package/src/relationship/createRelationshipContextObserver.ts +12 -12
  51. package/src/series/computeSeriesData.ts +90 -153
  52. package/src/series/createSeriesContextObserver.ts +93 -38
  53. package/src/series/seriesObservables.ts +176 -24
  54. package/src/tree/computeTreeData.ts +131 -128
  55. package/src/tree/createTreeContextObserver.ts +61 -61
  56. package/src/tree/treeObservables.ts +94 -94
  57. package/src/types/Chart.ts +48 -48
  58. package/src/types/ChartParams.ts +51 -51
  59. package/src/types/ComputedData.ts +83 -82
  60. package/src/types/ComputedDataGrid.ts +13 -13
  61. package/src/types/ComputedDataMultiGrid.ts +2 -2
  62. package/src/types/ComputedDataMultiValue.ts +9 -9
  63. package/src/types/ComputedDataRelationship.ts +19 -19
  64. package/src/types/ComputedDataSeries.ts +8 -8
  65. package/src/types/ComputedDataTree.ts +19 -19
  66. package/src/types/ContextObserver.ts +38 -38
  67. package/src/types/ContextObserverGrid.ts +41 -33
  68. package/src/types/ContextObserverMultiGrid.ts +16 -28
  69. package/src/types/ContextObserverMultiValue.ts +4 -4
  70. package/src/types/ContextObserverRelationship.ts +4 -4
  71. package/src/types/ContextObserverSeries.ts +29 -9
  72. package/src/types/ContextObserverTree.ts +11 -11
  73. package/src/types/ContextSubject.ts +18 -18
  74. package/src/types/Data.ts +45 -45
  75. package/src/types/DataFormatter.ts +74 -95
  76. package/src/types/DataFormatterGrid.ts +67 -55
  77. package/src/types/DataFormatterMultiGrid.ts +44 -42
  78. package/src/types/DataFormatterMultiValue.ts +23 -20
  79. package/src/types/DataFormatterRelationship.ts +25 -22
  80. package/src/types/DataFormatterSeries.ts +20 -30
  81. package/src/types/DataFormatterTree.ts +12 -12
  82. package/src/types/DataGrid.ts +11 -11
  83. package/src/types/DataMultiGrid.ts +6 -6
  84. package/src/types/DataMultiValue.ts +12 -12
  85. package/src/types/DataRelationship.ts +27 -27
  86. package/src/types/DataSeries.ts +11 -11
  87. package/src/types/DataTree.ts +20 -20
  88. package/src/types/Event.ts +153 -153
  89. package/src/types/Layout.ts +11 -11
  90. package/src/types/Padding.ts +5 -5
  91. package/src/types/Plugin.ts +60 -60
  92. package/src/types/TransformData.ts +7 -7
  93. package/src/types/index.ts +37 -37
  94. package/src/utils/commonUtils.ts +50 -50
  95. package/src/utils/d3Utils.ts +89 -89
  96. package/src/utils/index.ts +4 -4
  97. package/src/utils/observables.ts +201 -201
  98. package/src/utils/orbchartsUtils.ts +349 -253
  99. package/tsconfig.json +13 -13
  100. package/vite.config.js +44 -44
@@ -1,13 +1,6 @@
1
1
  import { ComputedDataFn } from '../types/ComputedData';
2
- import { DataGridDatum } from '../types/DataGrid';
3
- import { DataFormatterContext } from '../types/DataFormatter';
4
- import { DataFormatterGrid } from '../types/DataFormatterGrid';
5
- import { Layout } from '../types/Layout';
6
- import * as d3 from 'd3';
7
- export interface DataGridDatumTemp extends DataGridDatum {
8
- _visible: boolean;
9
- }
10
- export declare function createTransposedDataGrid(context: DataFormatterContext<'grid'>): DataGridDatumTemp[][];
11
- export declare function createGroupScale(transposedDataGrid: DataGridDatumTemp[][], dataFormatter: DataFormatterGrid, layout: Layout): d3.ScaleLinear<number, number, never>;
12
- export declare function createSeriesValueScaleArr(transposedDataGrid: DataGridDatumTemp[][], dataFormatter: DataFormatterGrid, layout: Layout): d3.ScaleLinear<number, number, never>[];
2
+ import { DataGrid, DataGridDatum } from '../types/DataGrid';
3
+ import { DataFormatterGridGrid } from '../types/DataFormatterGrid';
4
+
5
+ export declare function createTransposedDataGrid(data: DataGrid, dataFormatterGrid: DataFormatterGridGrid): DataGridDatum[][];
13
6
  export declare const computeGridData: ComputedDataFn<'grid'>;
@@ -1,6 +1,11 @@
1
1
  import { Observable } from 'rxjs';
2
- import { ChartParams, ComputedDataTypeMap, DataFormatterTypeMap, DataFormatterGrid, ContainerPosition, Layout, TransformData } from '../types';
2
+ import { ComputedDataTypeMap, ComputedDatumGrid, DataFormatterTypeMap, DataFormatterGrid, ComputedLayoutDatumGrid, ComputedLayoutDataGrid, GridContainerPosition, Layout, TransformData } from '../types';
3
3
 
4
+ export declare const gridComputedLayoutDataObservable: ({ computedData$, fullDataFormatter$, layout$ }: {
5
+ computedData$: Observable<ComputedDataTypeMap<"grid">>;
6
+ fullDataFormatter$: Observable<DataFormatterTypeMap<"grid">>;
7
+ layout$: Observable<Layout>;
8
+ }) => Observable<ComputedLayoutDatumGrid[][]>;
4
9
  export declare const gridAxesTransformObservable: ({ fullDataFormatter$, layout$ }: {
5
10
  fullDataFormatter$: Observable<DataFormatterTypeMap<"grid">>;
6
11
  layout$: Observable<Layout>;
@@ -13,8 +18,8 @@ export declare const gridGraphicTransformObservable: ({ computedData$, fullDataF
13
18
  fullDataFormatter$: Observable<DataFormatterTypeMap<"grid">>;
14
19
  layout$: Observable<Layout>;
15
20
  }) => Observable<TransformData>;
16
- export declare const gridGraphicReverseScaleObservable: ({ gridContainer$, gridAxesTransform$, gridGraphicTransform$ }: {
17
- gridContainer$: Observable<ContainerPosition[]>;
21
+ export declare const gridGraphicReverseScaleObservable: ({ gridContainerPosition$, gridAxesTransform$, gridGraphicTransform$ }: {
22
+ gridContainerPosition$: Observable<GridContainerPosition[]>;
18
23
  gridAxesTransform$: Observable<TransformData>;
19
24
  gridGraphicTransform$: Observable<TransformData>;
20
25
  }) => Observable<[number, number][]>;
@@ -25,25 +30,17 @@ export declare const gridAxesSizeObservable: ({ fullDataFormatter$, layout$ }: {
25
30
  width: number;
26
31
  height: number;
27
32
  }>;
28
- export declare const existSeriesLabelsObservable: ({ computedData$ }: {
33
+ export declare const seriesLabelsObservable: ({ computedData$ }: {
29
34
  computedData$: Observable<ComputedDataTypeMap<"grid">>;
30
35
  }) => Observable<string[]>;
31
36
  export declare const gridVisibleComputedDataObservable: ({ computedData$ }: {
32
37
  computedData$: Observable<ComputedDataTypeMap<"grid">>;
33
- }) => Observable<import('../types').ComputedDatumGrid[][]>;
34
- export declare const isSeriesPositionSeprateObservable: ({ computedData$, fullDataFormatter$ }: {
38
+ }) => Observable<ComputedDatumGrid[][]>;
39
+ export declare const gridVisibleComputedLayoutDataObservable: ({ computedLayoutData$ }: {
40
+ computedLayoutData$: Observable<ComputedLayoutDataGrid>;
41
+ }) => Observable<ComputedLayoutDatumGrid[][]>;
42
+ export declare const gridContainerPositionObservable: ({ computedData$, fullDataFormatter$, layout$ }: {
35
43
  computedData$: Observable<ComputedDataTypeMap<"grid">>;
36
44
  fullDataFormatter$: Observable<DataFormatterTypeMap<"grid">>;
37
- }) => Observable<boolean>;
38
- export declare const gridContainerObservable: ({ computedData$, fullDataFormatter$, fullChartParams$, layout$ }: {
39
- computedData$: Observable<ComputedDataTypeMap<"grid">>;
40
- fullDataFormatter$: Observable<DataFormatterTypeMap<"grid">>;
41
- fullChartParams$: Observable<ChartParams>;
42
45
  layout$: Observable<Layout>;
43
- }) => Observable<{
44
- slotIndex: number;
45
- rowIndex: number;
46
- columnIndex: number;
47
- translate: [number, number];
48
- scale: [number, number];
49
- }[]>;
46
+ }) => Observable<GridContainerPosition[]>;
@@ -1,5 +1,5 @@
1
1
  import { Subject, Observable } from 'rxjs';
2
- import { ChartParams, ComputedDataTypeMap, DataFormatterTypeMap, EventMultiGrid, Layout, ContextObserverGridDetail } from '../types';
2
+ import { ChartParams, ComputedDataTypeMap, DataFormatterTypeMap, EventMultiGrid, Layout, ContextObserverMultiGridDetail, GridContainerPosition } from '../types';
3
3
 
4
4
  export declare const multiGridEachDetailObservable: ({ fullDataFormatter$, computedData$, layout$, fullChartParams$, event$ }: {
5
5
  fullDataFormatter$: Observable<DataFormatterTypeMap<"multiGrid">>;
@@ -7,16 +7,9 @@ export declare const multiGridEachDetailObservable: ({ fullDataFormatter$, compu
7
7
  layout$: Observable<Layout>;
8
8
  fullChartParams$: Observable<ChartParams>;
9
9
  event$: Subject<EventMultiGrid>;
10
- }) => Observable<ContextObserverGridDetail[]>;
11
- export declare const multiGridContainerObservable: ({ computedData$, fullDataFormatter$, fullChartParams$, layout$ }: {
10
+ }) => Observable<ContextObserverMultiGridDetail[]>;
11
+ export declare const multiGridContainerObservable: ({ computedData$, fullDataFormatter$, layout$ }: {
12
12
  computedData$: Observable<ComputedDataTypeMap<"multiGrid">>;
13
13
  fullDataFormatter$: Observable<DataFormatterTypeMap<"multiGrid">>;
14
- fullChartParams$: Observable<ChartParams>;
15
14
  layout$: Observable<Layout>;
16
- }) => Observable<{
17
- slotIndex: number;
18
- rowIndex: number;
19
- columnIndex: number;
20
- translate: [number, number];
21
- scale: [number, number];
22
- }[][]>;
15
+ }) => Observable<GridContainerPosition[][]>;
@@ -1 +1,26 @@
1
- export {};
1
+ import { Observable } from 'rxjs';
2
+ import { ComputedDatumSeries, ComputedDataTypeMap, DataFormatterTypeMap, SeriesContainerPosition, Layout } from '../types';
3
+
4
+ export declare const seriesSeparateObservable: ({ fullDataFormatter$ }: {
5
+ fullDataFormatter$: Observable<DataFormatterTypeMap<"series">>;
6
+ }) => Observable<boolean>;
7
+ export declare const seriesLabelsObservable: ({ computedData$ }: {
8
+ computedData$: Observable<ComputedDataTypeMap<"series">>;
9
+ }) => Observable<string[]>;
10
+ export declare const visibleComputedDataObservable: ({ computedData$ }: {
11
+ computedData$: Observable<ComputedDataTypeMap<"series">>;
12
+ }) => Observable<ComputedDatumSeries[][]>;
13
+ export declare const computedLayoutDataObservable: ({ computedData$, fullDataFormatter$ }: {
14
+ computedData$: Observable<ComputedDataTypeMap<"series">>;
15
+ fullDataFormatter$: Observable<DataFormatterTypeMap<"series">>;
16
+ }) => Observable<ComputedDatumSeries[][]>;
17
+ export declare const seriesContainerPositionObservable: ({ computedData$, fullDataFormatter$, layout$ }: {
18
+ computedData$: Observable<ComputedDataTypeMap<"series">>;
19
+ fullDataFormatter$: Observable<DataFormatterTypeMap<"series">>;
20
+ layout$: Observable<Layout>;
21
+ }) => Observable<SeriesContainerPosition[]>;
22
+ export declare const seriesContainerPositionMapObservable: ({ seriesContainerPosition$, seriesLabels$, seriesSeparate$ }: {
23
+ seriesContainerPosition$: Observable<SeriesContainerPosition[]>;
24
+ seriesLabels$: Observable<string[]>;
25
+ seriesSeparate$: Observable<boolean>;
26
+ }) => Observable<Map<string, SeriesContainerPosition>>;
@@ -23,6 +23,7 @@ export interface ComputedDatumSeriesValue {
23
23
  color: string;
24
24
  seriesIndex: number;
25
25
  seriesLabel: string;
26
+ seq: number;
26
27
  }
27
28
  export interface ComputedDatumGridValue {
28
29
  gridIndex: number;
@@ -1,8 +1,5 @@
1
1
  import { ComputedDatumBase, ComputedDatumGridValue } from './ComputedData';
2
2
 
3
3
  export interface ComputedDatumGrid extends ComputedDatumBase, ComputedDatumGridValue {
4
- axisX: number;
5
- axisY: number;
6
- axisYFromZero: number;
7
4
  }
8
5
  export type ComputedDataGrid = ComputedDatumGrid[][];
@@ -1,6 +1,5 @@
1
1
  import { ComputedDatumBase, ComputedDatumSeriesValue } from './ComputedData';
2
2
 
3
3
  export interface ComputedDatumSeries extends ComputedDatumBase, ComputedDatumSeriesValue {
4
- sortedIndex: number;
5
4
  }
6
- export type ComputedDataSeries = ComputedDatumSeries[];
5
+ export type ComputedDataSeries = ComputedDatumSeries[][];
@@ -7,7 +7,7 @@ export interface ContextObserverGrid<PluginParams> extends ContextObserverBase<'
7
7
  textSizePx$: Observable<number>;
8
8
  }
9
9
  export interface ContextObserverGridDetail {
10
- gridContainer$: Observable<ContainerPosition[]>;
10
+ gridContainerPosition$: Observable<GridContainerPosition[]>;
11
11
  gridAxesTransform$: Observable<TransformData>;
12
12
  gridAxesReverseTransform$: Observable<TransformData>;
13
13
  gridGraphicTransform$: Observable<TransformData>;
@@ -17,13 +17,20 @@ export interface ContextObserverGridDetail {
17
17
  height: number;
18
18
  }>;
19
19
  gridHighlight$: Observable<ComputedDatumGrid[]>;
20
- existSeriesLabels$: Observable<string[]>;
20
+ seriesLabels$: Observable<string[]>;
21
21
  SeriesDataMap$: Observable<Map<string, ComputedDatumGrid[]>>;
22
22
  GroupDataMap$: Observable<Map<string, ComputedDatumGrid[]>>;
23
+ computedLayoutData$: Observable<ComputedLayoutDataGrid>;
23
24
  visibleComputedData$: Observable<ComputedDataGrid>;
24
- isSeriesPositionSeprate$: Observable<boolean>;
25
+ visibleComputedLayoutData$: Observable<ComputedLayoutDataGrid>;
25
26
  }
26
- export interface ContainerPosition {
27
+ export type ComputedLayoutDataGrid = ComputedLayoutDatumGrid[][];
28
+ export interface ComputedLayoutDatumGrid extends ComputedDatumGrid {
29
+ axisX: number;
30
+ axisY: number;
31
+ axisYFromZero: number;
32
+ }
33
+ export interface GridContainerPosition {
27
34
  slotIndex: number;
28
35
  rowIndex: number;
29
36
  columnIndex: number;
@@ -1,9 +1,14 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { ContextObserverBase } from './ContextObserver';
3
- import { ContainerPosition, ContextObserverGridDetail } from './ContextObserverGrid';
3
+ import { ComputedDataGrid } from './ComputedDataGrid';
4
+ import { DataFormatterGrid } from './DataFormatterGrid';
5
+ import { ContextObserverGridDetail } from './ContextObserverGrid';
4
6
 
5
7
  export interface ContextObserverMultiGrid<PluginParams> extends ContextObserverBase<'multiGrid', PluginParams> {
6
8
  textSizePx$: Observable<number>;
7
- multiGridEachDetail$: Observable<ContextObserverGridDetail[]>;
8
- multiGridContainer$: Observable<ContainerPosition[][]>;
9
+ multiGridEachDetail$: Observable<ContextObserverMultiGridDetail[]>;
10
+ }
11
+ export interface ContextObserverMultiGridDetail extends ContextObserverGridDetail {
12
+ computedData$: Observable<ComputedDataGrid>;
13
+ dataFormatter$: Observable<DataFormatterGrid>;
9
14
  }
@@ -4,6 +4,24 @@ import { ComputedDatumSeries } from './ComputedDataSeries';
4
4
 
5
5
  export interface ContextObserverSeries<PluginParams> extends ContextObserverBase<'series', PluginParams> {
6
6
  textSizePx$: Observable<number>;
7
+ seriesSeparate$: Observable<boolean>;
8
+ visibleComputedData$: Observable<ComputedDatumSeries[][]>;
9
+ computedLayoutData$: Observable<ComputedDatumSeries[][]>;
10
+ visibleComputedLayoutData$: Observable<ComputedDatumSeries[][]>;
7
11
  seriesHighlight$: Observable<ComputedDatumSeries[]>;
12
+ seriesLabels$: Observable<string[]>;
8
13
  SeriesDataMap$: Observable<Map<string, ComputedDatumSeries[]>>;
14
+ seriesContainerPosition$: Observable<SeriesContainerPosition[]>;
15
+ SeriesContainerPositionMap$: Observable<Map<string, SeriesContainerPosition>>;
16
+ }
17
+ export interface SeriesContainerPosition {
18
+ slotIndex: number;
19
+ rowIndex: number;
20
+ columnIndex: number;
21
+ startX: number;
22
+ startY: number;
23
+ centerX: number;
24
+ centerY: number;
25
+ width: number;
26
+ height: number;
9
27
  }
@@ -1,6 +1,7 @@
1
1
  import { ChartType } from './Chart';
2
2
  import { ChartParams } from './ChartParams';
3
- import { DataTypeMap, DatumTypeMap } from './Data';
3
+ import { DataTypeMap } from './Data';
4
+ import { ComputedDatumTypeMap } from './ComputedData';
4
5
  import { DataFormatterSeries, DataFormatterSeriesPartial } from './DataFormatterSeries';
5
6
  import { DataFormatterGrid, DataFormatterGridPartial } from './DataFormatterGrid';
6
7
  import { DataFormatterMultiGrid, DataFormatterMultiGridPartial } from './DataFormatterMultiGrid';
@@ -8,13 +9,11 @@ import { DataFormatterMultiValue, DataFormatterMultiValuePartial } from './DataF
8
9
  import { DataFormatterTree, DataFormatterTreePartial } from './DataFormatterTree';
9
10
  import { DataFormatterRelationship, DataFormatterRelationshipPartial } from './DataFormatterRelationship';
10
11
  import { AxisPosition } from './Axis';
11
- import { Layout } from './Layout';
12
12
 
13
13
  export interface DataFormatterContext<T extends ChartType> {
14
14
  data: DataTypeMap<T>;
15
15
  dataFormatter: DataFormatterTypeMap<T>;
16
16
  chartParams: ChartParams;
17
- layout: Layout;
18
17
  }
19
18
  export type DataFormatterTypeMap<T extends ChartType> = T extends 'series' ? DataFormatterSeries : T extends 'grid' ? DataFormatterGrid : T extends 'multiGrid' ? DataFormatterMultiGrid : T extends 'multiValue' ? DataFormatterMultiValue : T extends 'relationship' ? DataFormatterRelationship : T extends 'tree' ? DataFormatterTree : DataFormatterBase<T>;
20
19
  export type DataFormatterPartialTypeMap<T extends ChartType> = T extends 'series' ? DataFormatterSeriesPartial : T extends 'grid' ? DataFormatterGridPartial : T extends 'multiGrid' ? DataFormatterMultiGridPartial : T extends 'multiValue' ? DataFormatterMultiValuePartial : T extends 'relationship' ? DataFormatterRelationshipPartial : T extends 'tree' ? DataFormatterTreePartial : DataFormatterBasePartial<T>;
@@ -34,5 +33,9 @@ export interface DataFormatterGroupAxis {
34
33
  scalePadding: number;
35
34
  label: string;
36
35
  }
37
- export type VisibleFilter<T extends ChartType> = (datum: DatumTypeMap<T>, rowIndex: number, columnIndex: number, context: DataFormatterContext<T>) => boolean | null;
38
- export type TooltipContentFormat<T extends ChartType> = (datum: DatumTypeMap<T>, rowIndex: number, columnIndex: number, context: DataFormatterContext<T>) => string | null;
36
+ export type VisibleFilter<T extends ChartType> = (datum: ComputedDatumTypeMap<T>, context: DataFormatterContext<T>) => boolean | null;
37
+ export interface DataFormatterContainer {
38
+ gap: number;
39
+ rowAmount: number;
40
+ columnAmount: number;
41
+ }
@@ -1,37 +1,34 @@
1
- import { DataFormatterBase, DataFormatterBasePartial, DataFormatterValueAxis, DataFormatterGroupAxis, VisibleFilter } from './DataFormatter';
1
+ import { DataFormatterBase, DataFormatterBasePartial, DataFormatterValueAxis, DataFormatterGroupAxis, VisibleFilter, DataFormatterContainer } from './DataFormatter';
2
2
 
3
3
  export type SeriesDirection = 'row' | 'column';
4
4
  export interface DataFormatterGrid extends DataFormatterBase<'grid'> {
5
+ visibleFilter: VisibleFilter<'grid'>;
5
6
  grid: DataFormatterGridGrid;
6
- container: DataFormatterGridContainer;
7
+ container: DataFormatterContainer;
7
8
  }
8
9
  export interface DataFormatterGridPartial extends DataFormatterBasePartial<'grid'> {
10
+ visibleFilter?: VisibleFilter<'grid'>;
9
11
  grid?: DataFormatterGridGridPartial;
10
- container?: Partial<DataFormatterGridContainer>;
12
+ container?: Partial<DataFormatterContainer>;
11
13
  }
12
14
  export interface DataFormatterGridGrid {
13
- visibleFilter: VisibleFilter<'grid'>;
14
- gridData: DataFormatterGridGridData;
15
+ seriesDirection: SeriesDirection;
16
+ rowLabels: string[];
17
+ columnLabels: string[];
15
18
  valueAxis: DataFormatterValueAxis;
16
19
  groupAxis: DataFormatterGroupAxis;
17
- slotIndex: number | null;
18
- seriesSlotIndexes: number[] | null;
20
+ separateSeries: boolean;
19
21
  }
20
22
  export interface DataFormatterGridGridPartial {
21
- visibleFilter?: VisibleFilter<'grid'>;
22
- gridData?: Partial<DataFormatterGridGridData>;
23
+ seriesDirection?: SeriesDirection;
24
+ rowLabels?: string[];
25
+ columnLabels?: string[];
23
26
  valueAxis?: Partial<DataFormatterValueAxis>;
24
27
  groupAxis?: Partial<DataFormatterGroupAxis>;
25
- slotIndex?: number | null;
26
- seriesSlotIndexes?: number[] | null;
28
+ separateSeries?: boolean;
27
29
  }
28
30
  export interface DataFormatterGridContainer {
29
31
  gap: number;
30
32
  rowAmount: number;
31
33
  columnAmount: number;
32
34
  }
33
- export interface DataFormatterGridGridData {
34
- seriesDirection: SeriesDirection;
35
- rowLabels: string[];
36
- columnLabels: string[];
37
- }
@@ -1,17 +1,20 @@
1
- import { DataFormatterGridGrid, DataFormatterGridGridPartial, DataFormatterGridContainer } from './DataFormatterGrid';
2
- import { DataFormatterBase, DataFormatterBasePartial } from './DataFormatter';
1
+ import { VisibleFilter, DataFormatterContainer, DataFormatterBase, DataFormatterBasePartial } from './DataFormatter';
2
+ import { DataFormatterGridGrid, DataFormatterGridGridPartial } from './DataFormatterGrid';
3
3
 
4
4
  export interface DataFormatterMultiGrid extends DataFormatterBase<'multiGrid'> {
5
+ visibleFilter: VisibleFilter<'multiGrid'>;
5
6
  gridList: Array<DataFormatterGridGrid>;
6
7
  container: DataFormatterMultiGridContainer;
8
+ separateGrid: boolean;
7
9
  }
8
10
  export interface DataFormatterMultiGridPartial extends DataFormatterBasePartial<'multiGrid'> {
9
11
  gridList?: Array<DataFormatterGridGridPartial>;
10
12
  container?: Partial<DataFormatterMultiGridContainer>;
13
+ separateGrid?: boolean;
11
14
  }
12
15
  export interface DataFormatterMultiGridGrid extends DataFormatterGridGrid {
13
16
  }
14
17
  export interface DataFormatterMultiGridGridPartial extends DataFormatterGridGridPartial {
15
18
  }
16
- export interface DataFormatterMultiGridContainer extends DataFormatterGridContainer {
19
+ export interface DataFormatterMultiGridContainer extends DataFormatterContainer {
17
20
  }
@@ -2,11 +2,14 @@ import { DataFormatterBase, DataFormatterBasePartial, DataFormatterValueAxis, Vi
2
2
 
3
3
  export interface DataFormatterMultiValue extends DataFormatterBase<'multiValue'> {
4
4
  visibleFilter: VisibleFilter<'multiValue'>;
5
+ categoryLabels: string[];
5
6
  multiValue: Array<DataFormatterMultiValueMultiValue>;
6
7
  xAxis: DataFormatterValueAxis;
7
8
  yAxis: DataFormatterValueAxis;
8
9
  }
9
10
  export interface DataFormatterMultiValuePartial extends DataFormatterBasePartial<'multiValue'> {
11
+ visibleFilter?: VisibleFilter<'multiValue'>;
12
+ categoryLabels?: string[];
10
13
  multiValue?: Array<Partial<DataFormatterMultiValueMultiValue>>;
11
14
  xAxis?: Partial<DataFormatterValueAxis>;
12
15
  yAxis?: Partial<DataFormatterValueAxis>;
@@ -2,6 +2,9 @@ import { DataFormatterBase, DataFormatterBasePartial, VisibleFilter } from './Da
2
2
 
3
3
  export interface DataFormatterRelationship extends DataFormatterBase<'relationship'> {
4
4
  visibleFilter: VisibleFilter<'relationship'>;
5
+ categoryLabels: string[];
5
6
  }
6
7
  export interface DataFormatterRelationshipPartial extends DataFormatterBasePartial<'relationship'> {
8
+ visibleFilter?: VisibleFilter<'relationship'>;
9
+ categoryLabels?: string[];
7
10
  }
@@ -1,12 +1,19 @@
1
1
  import { DataSeriesDatum, DataSeriesValue } from './DataSeries';
2
- import { DataFormatterBase, DataFormatterBasePartial, VisibleFilter } from './DataFormatter';
2
+ import { DataFormatterBase, DataFormatterBasePartial, VisibleFilter, DataFormatterContainer } from './DataFormatter';
3
3
 
4
4
  export interface DataFormatterSeries extends DataFormatterBase<'series'> {
5
5
  visibleFilter: VisibleFilter<'series'>;
6
- seriesLabels: string[];
7
6
  sort: ((a: DataSeriesDatum | DataSeriesValue, b: DataSeriesDatum | number) => number) | null;
7
+ seriesLabels: string[];
8
+ container: DataFormatterContainer;
9
+ separateSeries: boolean;
10
+ sumSeries: boolean;
8
11
  }
9
12
  export interface DataFormatterSeriesPartial extends DataFormatterBasePartial<'series'> {
10
- seriesLabels?: string[];
13
+ visibleFilter?: VisibleFilter<'series'>;
11
14
  sort?: ((a: DataSeriesDatum | DataSeriesValue, b: DataSeriesDatum | number) => number) | null;
15
+ seriesLabels?: string[];
16
+ container?: Partial<DataFormatterContainer>;
17
+ separateSeries?: boolean;
18
+ sumSeries?: boolean;
12
19
  }
@@ -5,32 +5,35 @@ import { DataSeries } from '../types/DataSeries';
5
5
  import { DataGrid, DataGridDatum } from '../types/DataGrid';
6
6
  import { DataMultiGrid } from '../types/DataMultiGrid';
7
7
  import { DataMultiValue } from '../types/DataMultiValue';
8
- import { SeriesDirection, DataFormatterGrid, DataFormatterGridContainer } from '../types/DataFormatterGrid';
8
+ import { DataFormatterContainer } from '../types/DataFormatter';
9
+ import { SeriesDirection, DataFormatterGridGrid } from '../types/DataFormatterGrid';
10
+ import { SeriesContainerPosition } from '../types/ContextObserverSeries';
11
+ import { GridContainerPosition } from '../types/ContextObserverGrid';
9
12
  import { Layout } from '../types/Layout';
10
13
  import * as d3 from 'd3';
11
14
  export declare function formatValueToLabel(value: any, valueFormatter: string | ((text: d3.NumberValue) => string)): string;
12
15
  export declare function createDefaultDatumId(chartTypeOrPrefix: string, levelOneIndex: number, levelTwoIndex: number, levelThreeIndex?: number): string;
13
16
  export declare function createDefaultSeriesLabel(chartTypeOrPrefix: string, seriesIndex: number): string;
14
17
  export declare function createDefaultGroupLabel(chartTypeOrPrefix: string, groupIndex: number): string;
15
- export declare function createGridSeriesLabels({ transposedDataGrid, dataFormatter, chartType }: {
18
+ export declare function createGridSeriesLabels({ transposedDataGrid, dataFormatterGrid, chartType }: {
16
19
  transposedDataGrid: DataGridDatum[][];
17
- dataFormatter: DataFormatterGrid;
20
+ dataFormatterGrid: DataFormatterGridGrid;
18
21
  chartType?: ChartType;
19
22
  }): string[];
20
- export declare function createMultiGridSeriesLabels({ transposedDataGrid, dataFormatter, chartType, gridIndex }: {
23
+ export declare function createMultiGridSeriesLabels({ transposedDataGrid, dataFormatterGrid, chartType, gridIndex }: {
21
24
  transposedDataGrid: DataGridDatum[][];
22
- dataFormatter: DataFormatterGrid;
25
+ dataFormatterGrid: DataFormatterGridGrid;
23
26
  chartType?: ChartType;
24
27
  gridIndex?: number;
25
28
  }): string[];
26
- export declare function createGridGroupLabels({ transposedDataGrid, dataFormatter, chartType }: {
29
+ export declare function createGridGroupLabels({ transposedDataGrid, dataFormatterGrid, chartType }: {
27
30
  transposedDataGrid: DataGridDatum[][];
28
- dataFormatter: DataFormatterGrid;
31
+ dataFormatterGrid: DataFormatterGridGrid;
29
32
  chartType?: ChartType;
30
33
  }): string[];
31
- export declare function createMultiGridGroupLabels({ transposedDataGrid, dataFormatter, chartType, gridIndex }: {
34
+ export declare function createMultiGridGroupLabels({ transposedDataGrid, dataFormatterGrid, chartType, gridIndex }: {
32
35
  transposedDataGrid: DataGridDatum[][];
33
- dataFormatter: DataFormatterGrid;
36
+ dataFormatterGrid: DataFormatterGridGrid;
34
37
  chartType?: ChartType;
35
38
  gridIndex?: number;
36
39
  }): string[];
@@ -42,7 +45,5 @@ export declare function getMinAndMaxMultiGrid(data: DataMultiGrid): [number, num
42
45
  export declare function getMinAndMaxMultiValue(data: DataMultiValue, valueIndex?: number): [number, number];
43
46
  export declare function transposeData<T>(seriesDirection: SeriesDirection, data: T[][]): T[][];
44
47
  export declare function seriesColorPredicate(seriesIndex: number, chartParams: ChartParams): string;
45
- export declare function calcGridContainerPosition(layout: Layout, container: DataFormatterGridContainer, rowIndex: number, columnIndex: number): {
46
- translate: [number, number];
47
- scale: [number, number];
48
- };
48
+ export declare function calcSeriesContainerLayout(layout: Layout, container: DataFormatterContainer, amount: number): SeriesContainerPosition[];
49
+ export declare function calcGridContainerLayout(layout: Layout, container: DataFormatterContainer, amount: number): GridContainerPosition[];
package/package.json CHANGED
@@ -1,41 +1,41 @@
1
- {
2
- "name": "@orbcharts/core",
3
- "version": "3.0.0-alpha.42",
4
- "description": "OrbCharts is an open source chart library based on d3.js and rx.js",
5
- "author": "Blue Planet Inc.",
6
- "license": "Apache-2.0",
7
- "keywords": [
8
- "d3",
9
- "rxjs",
10
- "svg",
11
- "visualization",
12
- "infographic",
13
- "graph",
14
- "chart"
15
- ],
16
- "private": false,
17
- "publishConfig": {
18
- "access": "public",
19
- "registry": "https://registry.npmjs.org/"
20
- },
21
- "files": [
22
- "*"
23
- ],
24
- "module": "./dist/orbcharts-core.es.js",
25
- "types": "./dist/src/index.d.ts",
26
- "scripts": {
27
- "test": "echo \"Error: no test specified\" && exit 1",
28
- "build": "vite build --mode release"
29
- },
30
- "devDependencies": {
31
- "@types/d3": "^7.4.0",
32
- "ts-loader": "^9.4.2",
33
- "typescript": "^5.0.4",
34
- "vite": "^5.3.5",
35
- "vite-plugin-dts": "^3.7.3"
36
- },
37
- "dependencies": {
38
- "d3": "^7.8.5",
39
- "rxjs": "^7.8.1"
40
- }
41
- }
1
+ {
2
+ "name": "@orbcharts/core",
3
+ "version": "3.0.0-alpha.43",
4
+ "description": "OrbCharts is an open source chart library based on d3.js and rx.js",
5
+ "author": "Blue Planet Inc.",
6
+ "license": "Apache-2.0",
7
+ "keywords": [
8
+ "d3",
9
+ "rxjs",
10
+ "svg",
11
+ "visualization",
12
+ "infographic",
13
+ "graph",
14
+ "chart"
15
+ ],
16
+ "private": false,
17
+ "publishConfig": {
18
+ "access": "public",
19
+ "registry": "https://registry.npmjs.org/"
20
+ },
21
+ "files": [
22
+ "*"
23
+ ],
24
+ "module": "./dist/orbcharts-core.es.js",
25
+ "types": "./dist/src/index.d.ts",
26
+ "scripts": {
27
+ "test": "echo \"Error: no test specified\" && exit 1",
28
+ "build": "vite build --mode release"
29
+ },
30
+ "devDependencies": {
31
+ "@types/d3": "^7.4.0",
32
+ "ts-loader": "^9.4.2",
33
+ "typescript": "^5.0.4",
34
+ "vite": "^5.3.5",
35
+ "vite-plugin-dts": "^3.7.3"
36
+ },
37
+ "dependencies": {
38
+ "d3": "^7.8.5",
39
+ "rxjs": "^7.8.1"
40
+ }
41
+ }
@@ -1,48 +1,48 @@
1
- import * as d3 from 'd3'
2
- import {
3
- Subject } from 'rxjs'
4
- import type {
5
- ComputedDataFn,
6
- ChartEntity,
7
- ChartType,
8
- ChartParamsPartial,
9
- ContextObserverFn,
10
- ChartOptionsPartial,
11
- DataTypeMap,
12
- DataFormatterTypeMap,
13
- DataFormatterPartialTypeMap,
14
- EventTypeMap,
15
- PluginEntity } from './types'
16
- import { createBaseChart } from './base/createBaseChart'
17
-
18
- export abstract class AbstractChart<T extends ChartType> implements ChartEntity<T> {
19
- selection: d3.Selection<SVGGElement, unknown, HTMLElement, unknown>
20
- destroy: () => void
21
- data$: Subject<DataTypeMap<T>> = new Subject()
22
- dataFormatter$: Subject<DataFormatterPartialTypeMap<T>> = new Subject()
23
- plugins$: Subject<PluginEntity<T, any, any>[]> = new Subject()
24
- chartParams$: Subject<ChartParamsPartial> = new Subject()
25
- event$: Subject<EventTypeMap<T>> = new Subject()
26
-
27
- constructor (
28
- { defaultDataFormatter, computedDataFn, contextObserverFn }: {
29
- defaultDataFormatter: DataFormatterTypeMap<T>
30
- computedDataFn: ComputedDataFn<T>
31
- contextObserverFn: ContextObserverFn<T>
32
- },
33
- element: HTMLElement | Element,
34
- options?: ChartOptionsPartial<T>
35
- ) {
36
- const baseChart = createBaseChart({ defaultDataFormatter, computedDataFn, contextObserverFn })
37
- const chartEntity = baseChart(element, options)
38
-
39
- this.selection = chartEntity.selection
40
- this.destroy = chartEntity.destroy
41
- this.data$ = chartEntity.data$
42
- this.dataFormatter$ = chartEntity.dataFormatter$
43
- this.plugins$ = chartEntity.plugins$
44
- this.chartParams$ = chartEntity.chartParams$
45
- this.event$ = chartEntity.event$
46
- }
47
-
48
- }
1
+ import * as d3 from 'd3'
2
+ import {
3
+ Subject } from 'rxjs'
4
+ import type {
5
+ ComputedDataFn,
6
+ ChartEntity,
7
+ ChartType,
8
+ ChartParamsPartial,
9
+ ContextObserverFn,
10
+ ChartOptionsPartial,
11
+ DataTypeMap,
12
+ DataFormatterTypeMap,
13
+ DataFormatterPartialTypeMap,
14
+ EventTypeMap,
15
+ PluginEntity } from './types'
16
+ import { createBaseChart } from './base/createBaseChart'
17
+
18
+ export abstract class AbstractChart<T extends ChartType> implements ChartEntity<T> {
19
+ selection: d3.Selection<SVGGElement, unknown, HTMLElement, unknown>
20
+ destroy: () => void
21
+ data$: Subject<DataTypeMap<T>> = new Subject()
22
+ dataFormatter$: Subject<DataFormatterPartialTypeMap<T>> = new Subject()
23
+ plugins$: Subject<PluginEntity<T, any, any>[]> = new Subject()
24
+ chartParams$: Subject<ChartParamsPartial> = new Subject()
25
+ event$: Subject<EventTypeMap<T>> = new Subject()
26
+
27
+ constructor (
28
+ { defaultDataFormatter, computedDataFn, contextObserverFn }: {
29
+ defaultDataFormatter: DataFormatterTypeMap<T>
30
+ computedDataFn: ComputedDataFn<T>
31
+ contextObserverFn: ContextObserverFn<T>
32
+ },
33
+ element: HTMLElement | Element,
34
+ options?: ChartOptionsPartial<T>
35
+ ) {
36
+ const baseChart = createBaseChart({ defaultDataFormatter, computedDataFn, contextObserverFn })
37
+ const chartEntity = baseChart(element, options)
38
+
39
+ this.selection = chartEntity.selection
40
+ this.destroy = chartEntity.destroy
41
+ this.data$ = chartEntity.data$
42
+ this.dataFormatter$ = chartEntity.dataFormatter$
43
+ this.plugins$ = chartEntity.plugins$
44
+ this.chartParams$ = chartEntity.chartParams$
45
+ this.event$ = chartEntity.event$
46
+ }
47
+
48
+ }