@orbcharts/plugins-basic 3.0.0-alpha.49 → 3.0.0-alpha.51

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. package/LICENSE +200 -200
  2. package/dist/orbcharts-plugins-basic.es.js +6325 -6272
  3. package/dist/orbcharts-plugins-basic.umd.js +8 -8
  4. package/dist/src/base/BaseGroupAxis.d.ts +1 -0
  5. package/dist/src/grid/index.d.ts +1 -1
  6. package/dist/src/grid/plugins/BarsPN.d.ts +1 -0
  7. package/dist/src/grid/types.d.ts +3 -2
  8. package/dist/src/multiGrid/defaults.d.ts +2 -1
  9. package/dist/src/multiGrid/index.d.ts +2 -0
  10. package/dist/src/multiGrid/multiGridObservables.d.ts +1 -1
  11. package/dist/src/multiGrid/plugins/MultiValueStackAxis.d.ts +1 -0
  12. package/dist/src/multiGrid/plugins/OverlappingValueStackAxes.d.ts +1 -0
  13. package/dist/src/multiGrid/types.d.ts +3 -0
  14. package/dist/src/series/types.d.ts +2 -3
  15. package/package.json +42 -42
  16. package/src/base/BaseBarStack.ts +778 -778
  17. package/src/base/BaseBars.ts +764 -764
  18. package/src/base/BaseBarsTriangle.ts +672 -672
  19. package/src/base/BaseDots.ts +513 -502
  20. package/src/base/BaseGroupAxis.ts +562 -496
  21. package/src/base/BaseLegend.ts +641 -641
  22. package/src/base/BaseLineAreas.ts +625 -625
  23. package/src/base/BaseLines.ts +699 -699
  24. package/src/base/BaseValueAxis.ts +478 -478
  25. package/src/base/types.ts +2 -2
  26. package/src/grid/defaults.ts +125 -121
  27. package/src/grid/gridObservables.ts +248 -247
  28. package/src/grid/index.ts +15 -15
  29. package/src/grid/plugins/BarStack.ts +43 -50
  30. package/src/grid/plugins/Bars.ts +44 -51
  31. package/src/grid/plugins/{BarsDiverging.ts → BarsPN.ts} +41 -41
  32. package/src/grid/plugins/BarsTriangle.ts +42 -50
  33. package/src/grid/plugins/Dots.ts +37 -37
  34. package/src/grid/plugins/GridLegend.ts +59 -59
  35. package/src/grid/plugins/GroupAux.ts +645 -645
  36. package/src/grid/plugins/GroupAxis.ts +35 -42
  37. package/src/grid/plugins/LineAreas.ts +39 -39
  38. package/src/grid/plugins/Lines.ts +38 -38
  39. package/src/grid/plugins/ScalingArea.ts +173 -173
  40. package/src/grid/plugins/ValueAxis.ts +36 -43
  41. package/src/grid/plugins/ValueStackAxis.ts +38 -79
  42. package/src/grid/types.ts +122 -120
  43. package/src/index.ts +9 -9
  44. package/src/multiGrid/defaults.ts +152 -147
  45. package/src/multiGrid/index.ts +14 -12
  46. package/src/multiGrid/multiGridObservables.ts +44 -43
  47. package/src/multiGrid/plugins/MultiBarStack.ts +78 -78
  48. package/src/multiGrid/plugins/MultiBars.ts +77 -77
  49. package/src/multiGrid/plugins/MultiBarsTriangle.ts +77 -77
  50. package/src/multiGrid/plugins/MultiDots.ts +65 -65
  51. package/src/multiGrid/plugins/MultiGridLegend.ts +89 -89
  52. package/src/multiGrid/plugins/MultiGroupAxis.ts +69 -69
  53. package/src/multiGrid/plugins/MultiLineAreas.ts +67 -67
  54. package/src/multiGrid/plugins/MultiLines.ts +66 -66
  55. package/src/multiGrid/plugins/MultiValueAxis.ts +69 -69
  56. package/src/multiGrid/plugins/MultiValueStackAxis.ts +69 -0
  57. package/src/multiGrid/plugins/OverlappingValueAxes.ts +166 -173
  58. package/src/multiGrid/plugins/OverlappingValueStackAxes.ts +167 -0
  59. package/src/multiGrid/types.ts +71 -67
  60. package/src/noneData/defaults.ts +64 -64
  61. package/src/noneData/index.ts +3 -3
  62. package/src/noneData/plugins/Container.ts +10 -10
  63. package/src/noneData/plugins/Tooltip.ts +310 -310
  64. package/src/noneData/types.ts +26 -26
  65. package/src/series/defaults.ts +126 -126
  66. package/src/series/index.ts +9 -9
  67. package/src/series/plugins/Bubbles.ts +545 -602
  68. package/src/series/plugins/Pie.ts +576 -576
  69. package/src/series/plugins/PieEventTexts.ts +262 -262
  70. package/src/series/plugins/PieLabels.ts +304 -304
  71. package/src/series/plugins/Rose.ts +472 -472
  72. package/src/series/plugins/RoseLabels.ts +362 -362
  73. package/src/series/plugins/SeriesLegend.ts +59 -59
  74. package/src/series/seriesObservables.ts +145 -145
  75. package/src/series/seriesUtils.ts +51 -51
  76. package/src/series/types.ts +83 -83
  77. package/src/tree/defaults.ts +22 -22
  78. package/src/tree/index.ts +3 -3
  79. package/src/tree/plugins/TreeLegend.ts +59 -59
  80. package/src/tree/plugins/TreeMap.ts +305 -305
  81. package/src/tree/types.ts +23 -23
  82. package/src/utils/commonUtils.ts +21 -21
  83. package/src/utils/d3Graphics.ts +124 -124
  84. package/src/utils/d3Utils.ts +73 -73
  85. package/src/utils/observables.ts +14 -14
  86. package/src/utils/orbchartsUtils.ts +100 -100
  87. package/tsconfig.dev.json +16 -16
  88. package/tsconfig.json +13 -13
  89. package/tsconfig.prod.json +13 -13
  90. package/vite.config.js +49 -49
  91. package/dist/src/grid/plugins/BarsDiverging.d.ts +0 -1
@@ -1,80 +1,39 @@
1
- import {
2
- takeUntil,
3
- map,
4
- distinctUntilChanged,
5
- shareReplay,
6
- switchMap,
7
- iif,
8
- Subject } from 'rxjs'
9
- import {
10
- defineGridPlugin } from '@orbcharts/core'
11
- import { DEFAULT_VALUE_STACK_AXIS_PARAMS } from '../defaults'
12
-
13
- import { createBaseValueAxis } from '../../base/BaseValueAxis'
14
-
15
- const pluginName = 'ValueStackAxis'
16
-
17
- export const ValueStackAxis = defineGridPlugin(pluginName, DEFAULT_VALUE_STACK_AXIS_PARAMS)(({ selection, name, observer, subject }) => {
18
-
19
- const destroy$ = new Subject()
20
-
21
- // 將原本的value全部替換成加總後的value
22
- const stackedData$ = observer.computedData$.pipe(
23
- takeUntil(destroy$),
24
- map(data => {
25
- // 將同一group的value加總起來
26
- const stackedValue = new Array(data[0] ? data[0].length : 0)
27
- .fill(null)
28
- .map((_, i) => {
29
- return data.reduce((prev, current) => {
30
- if (current && current[i]) {
31
- const currentValue = current[i].value == null || current[i].visible == false
32
- ? 0
33
- : current[i].value!
34
- return prev + currentValue
35
- }
36
- return prev
37
- }, 0)
38
- })
39
- // 將原本的value全部替換成加總後的value
40
- const computedData = data.map((series, seriesIndex) => {
41
- return series.map((d, i) => {
42
- return {
43
- ...d,
44
- value: stackedValue[i],
45
- }
46
- })
47
- })
48
- return computedData
49
- }),
50
- )
51
-
52
- const isSeriesSeprate$ = observer.fullDataFormatter$.pipe(
53
- takeUntil(destroy$),
54
- map(d => d.grid.separateSeries),
55
- distinctUntilChanged(),
56
- shareReplay(1)
57
- )
58
-
59
- const unsubscribeBaseValueAxis = createBaseValueAxis(pluginName, {
60
- selection,
61
- computedData$: isSeriesSeprate$.pipe(
62
- switchMap(isSeriesSeprate => {
63
- return iif(() => isSeriesSeprate, observer.computedData$, stackedData$)
64
- })
65
- ),
66
- fullParams$: observer.fullParams$,
67
- fullDataFormatter$: observer.fullDataFormatter$,
68
- fullChartParams$: observer.fullChartParams$,
69
- gridAxesTransform$: observer.gridAxesTransform$,
70
- gridAxesReverseTransform$: observer.gridAxesReverseTransform$,
71
- gridAxesSize$: observer.gridAxesSize$,
72
- gridContainerPosition$: observer.gridContainerPosition$,
73
- isSeriesSeprate$,
74
- })
75
-
76
- return () => {
77
- destroy$.next(undefined)
78
- unsubscribeBaseValueAxis()
79
- }
1
+ import {
2
+ takeUntil,
3
+ map,
4
+ distinctUntilChanged,
5
+ shareReplay,
6
+ switchMap,
7
+ iif,
8
+ Observable,
9
+ Subject } from 'rxjs'
10
+ import type { ComputedDataGrid } from '@orbcharts/core'
11
+ import {
12
+ defineGridPlugin } from '@orbcharts/core'
13
+ import { DEFAULT_VALUE_STACK_AXIS_PARAMS } from '../defaults'
14
+ import { createBaseValueAxis } from '../../base/BaseValueAxis'
15
+
16
+ const pluginName = 'ValueStackAxis'
17
+
18
+ export const ValueStackAxis = defineGridPlugin(pluginName, DEFAULT_VALUE_STACK_AXIS_PARAMS)(({ selection, name, observer, subject }) => {
19
+
20
+ const destroy$ = new Subject()
21
+
22
+ const unsubscribeBaseValueAxis = createBaseValueAxis(pluginName, {
23
+ selection,
24
+ computedData$: observer.computedStackedData$, // 計算疊加value的資料
25
+ fullParams$: observer.fullParams$,
26
+ fullDataFormatter$: observer.fullDataFormatter$,
27
+ fullChartParams$: observer.fullChartParams$,
28
+ gridAxesTransform$: observer.gridAxesTransform$,
29
+ gridAxesReverseTransform$: observer.gridAxesReverseTransform$,
30
+ gridAxesSize$: observer.gridAxesSize$,
31
+ gridContainerPosition$: observer.gridContainerPosition$,
32
+ isSeriesSeprate$: observer.isSeriesSeprate$,
33
+ })
34
+
35
+ return () => {
36
+ destroy$.next(undefined)
37
+ unsubscribeBaseValueAxis()
38
+ }
80
39
  })
package/src/grid/types.ts CHANGED
@@ -1,121 +1,123 @@
1
- import type { ColorType } from '@orbcharts/core'
2
- // import type { BaseLegendParams } from '../base/BaseLegend'
3
-
4
- // export type LineType = 'line' | 'area' | 'gradientArea'
5
- // export type BarType = 'rect' | 'triangle'
6
-
7
- export interface LinesParams {
8
- lineCurve: string
9
- lineWidth: number
10
- // labelFn: (d: ComputedDatumSeries) => string
11
- // labelPositionFn: (d: ComputedDatumSeries) => 'top' | 'bottom' | 'left' | 'right' | 'center'
12
- // labelStyleFn: (d: ComputedDatumSeries) => string
13
- // labelFontSizeFn: (d: ComputedDatumSeries) => number
14
- // labelColorFn: (d: ComputedDatumSeries) => string
15
- // labelPadding: number
16
- }
17
-
18
- export interface LineAreasParams {
19
- lineCurve: string
20
- linearGradientOpacity: [number, number]
21
- }
22
-
23
- export interface DotsParams {
24
- radius: number
25
- fillColorType: ColorType
26
- strokeColorType: ColorType
27
- strokeWidth: number
28
- onlyShowHighlighted: boolean
29
- }
30
-
31
- export interface GroupAuxParams {
32
- showLine: boolean
33
- showLabel: boolean
34
- lineDashArray: string
35
- lineColorType: ColorType
36
- labelColorType: ColorType
37
- labelTextColorType: ColorType
38
- labelTextFormat: string | ((text: any) => string)
39
- labelPadding: number
40
- }
41
-
42
- export interface BarsParams {
43
- // barType: BarType
44
- barWidth: number
45
- barPadding: number
46
- barGroupPadding: number // 群組和群組間的間隔
47
- barRadius: number | boolean
48
- }
49
-
50
- export interface BarsDivergingParams extends BarsParams {}
51
-
52
- export interface BarStackParams {
53
- barWidth: number
54
- barGroupPadding: number
55
- barRadius: number | boolean
56
- }
57
-
58
- export interface BarsTriangleParams {
59
- barWidth: number
60
- barPadding: number
61
- barGroupPadding: number // 群組和群組間的間隔
62
- linearGradientOpacity: [number, number]
63
- }
64
-
65
- export interface GroupAxisParams {
66
- // xLabel: string
67
- // labelAnchor: 'start' | 'end'
68
- labelOffset: [number, number]
69
- labelColorType: ColorType
70
- axisLineVisible: boolean
71
- axisLineColorType: ColorType
72
- tickFormat: string | ((text: any) => string)
73
- tickLineVisible: boolean
74
- tickPadding: number
75
- tickFullLine: boolean
76
- tickFullLineDasharray: string
77
- tickColorType: ColorType
78
- // axisLineColor: string
79
- // axisLabelColor: string
80
- tickTextRotate: number
81
- tickTextColorType: ColorType
82
- }
83
-
84
- export interface ValueAxisParams {
85
- // xLabel: string
86
- // labelAnchor: 'start' | 'end'
87
- labelOffset: [number, number]
88
- labelColorType: ColorType
89
- axisLineVisible: boolean
90
- axisLineColorType: ColorType
91
- ticks: number
92
- tickFormat: string | ((text: d3.NumberValue) => string)
93
- tickLineVisible: boolean
94
- tickPadding: number
95
- tickFullLine: boolean
96
- tickFullLineDasharray: string
97
- tickColorType: ColorType
98
- // axisLineColor: string
99
- // axisLabelColor: string
100
- tickTextRotate: number
101
- tickTextColorType: ColorType
102
- }
103
-
104
- export interface ValueStackAxisParams extends ValueAxisParams {}
105
-
106
- export interface ScalingAreaParams {
107
-
108
- }
109
-
110
- export interface GridLegendParams {
111
- position: 'top' | 'bottom' | 'left' | 'right'
112
- justify: 'start' | 'center' | 'end'
113
- padding: number
114
- backgroundFill: ColorType
115
- backgroundStroke: ColorType
116
- gap: number
117
- listRectWidth: number
118
- listRectHeight: number
119
- listRectRadius: number
120
- textColorType: ColorType
1
+ import type { ColorType } from '@orbcharts/core'
2
+ // import type { BaseLegendParams } from '../base/BaseLegend'
3
+
4
+ // export type LineType = 'line' | 'area' | 'gradientArea'
5
+ // export type BarType = 'rect' | 'triangle'
6
+
7
+ export interface LinesParams {
8
+ lineCurve: string
9
+ lineWidth: number
10
+ // labelFn: (d: ComputedDatumSeries) => string
11
+ // labelPositionFn: (d: ComputedDatumSeries) => 'top' | 'bottom' | 'left' | 'right' | 'center'
12
+ // labelStyleFn: (d: ComputedDatumSeries) => string
13
+ // labelFontSizeFn: (d: ComputedDatumSeries) => number
14
+ // labelColorFn: (d: ComputedDatumSeries) => string
15
+ // labelPadding: number
16
+ }
17
+
18
+ export interface LineAreasParams {
19
+ lineCurve: string
20
+ linearGradientOpacity: [number, number]
21
+ }
22
+
23
+ export interface DotsParams {
24
+ radius: number
25
+ fillColorType: ColorType
26
+ strokeColorType: ColorType
27
+ strokeWidth: number
28
+ // strokeWidthWhileHighlight: number
29
+ onlyShowHighlighted: boolean
30
+ }
31
+
32
+ export interface GroupAuxParams {
33
+ showLine: boolean
34
+ showLabel: boolean
35
+ lineDashArray: string
36
+ lineColorType: ColorType
37
+ labelColorType: ColorType
38
+ labelTextColorType: ColorType
39
+ labelTextFormat: string | ((text: any) => string)
40
+ labelPadding: number
41
+ }
42
+
43
+ export interface BarsParams {
44
+ // barType: BarType
45
+ barWidth: number
46
+ barPadding: number
47
+ barGroupPadding: number // 群組和群組間的間隔
48
+ barRadius: number | boolean
49
+ }
50
+
51
+ export interface BarsPNParams extends BarsParams {}
52
+
53
+ export interface BarStackParams {
54
+ barWidth: number
55
+ barGroupPadding: number
56
+ barRadius: number | boolean
57
+ }
58
+
59
+ export interface BarsTriangleParams {
60
+ barWidth: number
61
+ barPadding: number
62
+ barGroupPadding: number // 群組和群組間的間隔
63
+ linearGradientOpacity: [number, number]
64
+ }
65
+
66
+ export interface GroupAxisParams {
67
+ // xLabel: string
68
+ // labelAnchor: 'start' | 'end'
69
+ labelOffset: [number, number]
70
+ labelColorType: ColorType
71
+ axisLineVisible: boolean
72
+ axisLineColorType: ColorType
73
+ ticks: number | null | 'all'
74
+ tickFormat: string | ((text: any) => string)
75
+ tickLineVisible: boolean
76
+ tickPadding: number
77
+ tickFullLine: boolean
78
+ tickFullLineDasharray: string
79
+ tickColorType: ColorType
80
+ // axisLineColor: string
81
+ // axisLabelColor: string
82
+ tickTextRotate: number
83
+ tickTextColorType: ColorType
84
+ }
85
+
86
+ export interface ValueAxisParams {
87
+ // xLabel: string
88
+ // labelAnchor: 'start' | 'end'
89
+ labelOffset: [number, number]
90
+ labelColorType: ColorType
91
+ axisLineVisible: boolean
92
+ axisLineColorType: ColorType
93
+ ticks: number | null
94
+ tickFormat: string | ((text: d3.NumberValue) => string)
95
+ tickLineVisible: boolean
96
+ tickPadding: number
97
+ tickFullLine: boolean
98
+ tickFullLineDasharray: string
99
+ tickColorType: ColorType
100
+ // axisLineColor: string
101
+ // axisLabelColor: string
102
+ tickTextRotate: number
103
+ tickTextColorType: ColorType
104
+ }
105
+
106
+ export interface ValueStackAxisParams extends ValueAxisParams {}
107
+
108
+ export interface ScalingAreaParams {
109
+
110
+ }
111
+
112
+ export interface GridLegendParams {
113
+ position: 'top' | 'bottom' | 'left' | 'right'
114
+ justify: 'start' | 'center' | 'end'
115
+ padding: number
116
+ backgroundFill: ColorType
117
+ backgroundStroke: ColorType
118
+ gap: number
119
+ listRectWidth: number
120
+ listRectHeight: number
121
+ listRectRadius: number
122
+ textColorType: ColorType
121
123
  }
package/src/index.ts CHANGED
@@ -1,10 +1,10 @@
1
- // export { default as container } from './noneDataPlugins/container'
2
- // export { default as pie } from './seriesPlugins/pie'
3
- // export { default as pieEventTexts } from './seriesPlugins/pieEventTexts'
4
- // export { default as pieLabels } from './seriesPlugins/pieLabels'
5
-
6
- export * from './grid'
7
- export * from './multiGrid'
8
- export * from './noneData'
9
- export * from './series'
1
+ // export { default as container } from './noneDataPlugins/container'
2
+ // export { default as pie } from './seriesPlugins/pie'
3
+ // export { default as pieEventTexts } from './seriesPlugins/pieEventTexts'
4
+ // export { default as pieLabels } from './seriesPlugins/pieLabels'
5
+
6
+ export * from './grid'
7
+ export * from './multiGrid'
8
+ export * from './noneData'
9
+ export * from './series'
10
10
  export * from './tree'