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

Sign up to get free protection for your applications and to get access to all the features.
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
+ }