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

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 (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'