@orbcharts/plugins-basic 3.0.0-beta.15 → 3.0.0-beta.17

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 (228) hide show
  1. package/LICENSE +200 -200
  2. package/dist/orbcharts-plugins-basic.es.js +11839 -10485
  3. package/dist/orbcharts-plugins-basic.umd.js +231 -171
  4. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseBars.d.ts +3 -3
  5. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseBarsTriangle.d.ts +3 -3
  6. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseDots.d.ts +3 -3
  7. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseLineAreas.d.ts +3 -3
  8. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseLines.d.ts +3 -3
  9. package/dist/src/base/BaseRacingBars.d.ts +23 -0
  10. package/dist/src/base/BaseRacingLabels.d.ts +20 -0
  11. package/dist/src/base/BaseRacingValueLabels.d.ts +20 -0
  12. package/dist/{orbcharts-plugins-basic/src/base/BaseStackedBar.d.ts → src/base/BaseStackedBars.d.ts} +7 -7
  13. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseValueAxis.d.ts +4 -7
  14. package/dist/src/base/BaseXAxis.d.ts +20 -0
  15. package/dist/src/base/BaseYAxis.d.ts +18 -0
  16. package/dist/{orbcharts-plugins-basic/src → src}/grid/defaults.d.ts +3 -3
  17. package/dist/{orbcharts-plugins-basic/src → src}/grid/gridObservables.d.ts +8 -1
  18. package/dist/{orbcharts-plugins-basic/src → src}/grid/index.d.ts +2 -2
  19. package/dist/src/grid/plugins/GroupZoom.d.ts +1 -0
  20. package/dist/src/grid/plugins/StackedBars.d.ts +1 -0
  21. package/dist/src/index.d.ts +7 -1
  22. package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/defaults.d.ts +2 -2
  23. package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/index.d.ts +1 -1
  24. package/dist/src/multiGrid/plugins/MultiStackedBars.d.ts +1 -0
  25. package/dist/src/multiValue/defaults.d.ts +13 -0
  26. package/dist/{orbcharts-plugins-basic/src → src}/multiValue/index.d.ts +5 -1
  27. package/dist/src/multiValue/multiValueObservables.d.ts +56 -0
  28. package/dist/src/multiValue/plugins/RacingBars.d.ts +1 -0
  29. package/dist/src/multiValue/plugins/RacingCounterTexts.d.ts +3 -0
  30. package/dist/src/multiValue/plugins/RacingValueAxis.d.ts +1 -0
  31. package/dist/src/multiValue/plugins/XAxis.d.ts +1 -0
  32. package/dist/src/multiValue/plugins/XYAxes.d.ts +1 -0
  33. package/dist/src/multiValue/plugins/XZoom.d.ts +1 -0
  34. package/dist/{orbcharts-plugins-basic/src → src}/utils/commonUtils.d.ts +1 -0
  35. package/dist/{orbcharts-plugins-basic/src → src}/utils/d3Graphics.d.ts +2 -1
  36. package/lib/core-types.ts +7 -7
  37. package/lib/core.ts +6 -6
  38. package/lib/plugins-basic-types.ts +6 -6
  39. package/package.json +44 -44
  40. package/src/base/BaseBars.ts +765 -765
  41. package/src/base/BaseBarsTriangle.ts +676 -676
  42. package/src/base/BaseDots.ts +464 -464
  43. package/src/base/BaseGroupAxis.ts +691 -679
  44. package/src/base/BaseLegend.ts +684 -684
  45. package/src/base/BaseLineAreas.ts +629 -629
  46. package/src/base/BaseLines.ts +706 -706
  47. package/src/base/BaseRacingBars.ts +552 -0
  48. package/src/base/BaseRacingLabels.ts +396 -0
  49. package/src/base/BaseRacingValueLabels.ts +403 -0
  50. package/src/base/{BaseStackedBar.ts → BaseStackedBars.ts} +782 -782
  51. package/src/base/BaseTooltip.ts +386 -385
  52. package/src/base/BaseValueAxis.ts +600 -583
  53. package/src/base/BaseXAxis.ts +427 -0
  54. package/src/base/BaseYAxis.ts +389 -0
  55. package/src/base/types.ts +2 -2
  56. package/src/const.ts +30 -30
  57. package/src/grid/defaults.ts +213 -250
  58. package/src/grid/gridObservables.ts +612 -554
  59. package/src/grid/index.ts +16 -16
  60. package/src/grid/plugins/Bars.ts +69 -69
  61. package/src/grid/plugins/BarsPN.ts +66 -66
  62. package/src/grid/plugins/BarsTriangle.ts +73 -73
  63. package/src/grid/plugins/Dots.ts +68 -68
  64. package/src/grid/plugins/GridLegend.ts +107 -107
  65. package/src/grid/plugins/GridTooltip.ts +66 -66
  66. package/src/grid/plugins/GroupAux.ts +1120 -1103
  67. package/src/grid/plugins/GroupAxis.ts +73 -97
  68. package/src/grid/plugins/{GridZoom.ts → GroupZoom.ts} +218 -218
  69. package/src/grid/plugins/LineAreas.ts +65 -65
  70. package/src/grid/plugins/Lines.ts +59 -59
  71. package/src/grid/plugins/{StackedBar.ts → StackedBars.ts} +64 -64
  72. package/src/grid/plugins/StackedValueAxis.ts +96 -96
  73. package/src/grid/plugins/ValueAxis.ts +94 -94
  74. package/src/index.ts +6 -6
  75. package/src/multiGrid/defaults.ts +244 -228
  76. package/src/multiGrid/index.ts +14 -14
  77. package/src/multiGrid/multiGridObservables.ts +50 -49
  78. package/src/multiGrid/plugins/MultiBars.ts +108 -108
  79. package/src/multiGrid/plugins/MultiBarsTriangle.ts +114 -114
  80. package/src/multiGrid/plugins/MultiDots.ts +102 -102
  81. package/src/multiGrid/plugins/MultiGridLegend.ts +169 -159
  82. package/src/multiGrid/plugins/MultiGridTooltip.ts +66 -66
  83. package/src/multiGrid/plugins/MultiGroupAxis.ts +137 -137
  84. package/src/multiGrid/plugins/MultiLineAreas.ts +107 -107
  85. package/src/multiGrid/plugins/MultiLines.ts +101 -101
  86. package/src/multiGrid/plugins/{MultiStackedBar.ts → MultiStackedBars.ts} +106 -106
  87. package/src/multiGrid/plugins/MultiStackedValueAxis.ts +134 -134
  88. package/src/multiGrid/plugins/MultiValueAxis.ts +134 -134
  89. package/src/multiGrid/plugins/OverlappingStackedValueAxes.ts +300 -299
  90. package/src/multiGrid/plugins/OverlappingValueAxes.ts +300 -300
  91. package/src/multiValue/defaults.ts +388 -166
  92. package/src/multiValue/index.ts +13 -9
  93. package/src/multiValue/multiValueObservables.ts +667 -297
  94. package/src/multiValue/plugins/MultiValueLegend.ts +107 -107
  95. package/src/multiValue/plugins/MultiValueTooltip.ts +66 -66
  96. package/src/multiValue/plugins/OrdinalBubbles.ts +0 -0
  97. package/src/multiValue/plugins/OrdinalXAxis.ts +0 -0
  98. package/src/multiValue/plugins/RacingBars.ts +373 -0
  99. package/src/multiValue/plugins/RacingCounterAxis.ts +0 -0
  100. package/src/multiValue/plugins/RacingCounterTexts.ts +300 -0
  101. package/src/multiValue/plugins/RacingValueAxis.ts +115 -0
  102. package/src/multiValue/plugins/RankingAxis_legacy.ts +109 -0
  103. package/src/multiValue/plugins/Scatter.ts +426 -426
  104. package/src/multiValue/plugins/ScatterBubbles.ts +554 -554
  105. package/src/multiValue/plugins/XAxis.ts +108 -0
  106. package/src/multiValue/plugins/XYAux.ts +682 -681
  107. package/src/multiValue/plugins/XYAxes.ts +194 -684
  108. package/src/multiValue/plugins/XYAxes_legacy.ts +684 -0
  109. package/src/multiValue/plugins/{XYZoom.ts → XZoom.ts} +299 -299
  110. package/src/noneData/defaults.ts +102 -102
  111. package/src/noneData/index.ts +3 -3
  112. package/src/noneData/plugins/Container.ts +27 -27
  113. package/src/noneData/plugins/Tooltip.ts +373 -373
  114. package/src/relationship/defaults.ts +220 -218
  115. package/src/relationship/index.ts +5 -5
  116. package/src/relationship/plugins/ForceDirected.ts +1168 -1168
  117. package/src/relationship/plugins/ForceDirectedBubbles.ts +1403 -1403
  118. package/src/relationship/plugins/RelationshipLegend.ts +100 -100
  119. package/src/relationship/plugins/RelationshipTooltip.ts +66 -66
  120. package/src/relationship/relationshipObservables.ts +49 -49
  121. package/src/series/defaults.ts +221 -230
  122. package/src/series/index.ts +9 -9
  123. package/src/series/plugins/Bubbles.ts +636 -620
  124. package/src/series/plugins/Pie.ts +623 -623
  125. package/src/series/plugins/PieEventTexts.ts +284 -284
  126. package/src/series/plugins/PieLabels.ts +640 -640
  127. package/src/series/plugins/Rose.ts +516 -516
  128. package/src/series/plugins/RoseLabels.ts +600 -600
  129. package/src/series/plugins/SeriesLegend.ts +107 -107
  130. package/src/series/plugins/SeriesTooltip.ts +66 -66
  131. package/src/series/seriesObservables.ts +145 -145
  132. package/src/series/seriesUtils.ts +51 -51
  133. package/src/tree/defaults.ts +102 -100
  134. package/src/tree/index.ts +4 -4
  135. package/src/tree/plugins/TreeLegend.ts +100 -100
  136. package/src/tree/plugins/TreeMap.ts +341 -341
  137. package/src/tree/plugins/TreeTooltip.ts +66 -66
  138. package/src/utils/commonUtils.ts +31 -22
  139. package/src/utils/d3Graphics.ts +176 -174
  140. package/src/utils/d3Utils.ts +92 -92
  141. package/src/utils/observables.ts +14 -14
  142. package/src/utils/orbchartsUtils.ts +129 -129
  143. package/tsconfig.base.json +13 -13
  144. package/tsconfig.json +2 -2
  145. package/vite.config.js +22 -22
  146. package/dist/orbcharts-plugins-basic/src/grid/plugins/GridZoom.d.ts +0 -1
  147. package/dist/orbcharts-plugins-basic/src/grid/plugins/StackedBar.d.ts +0 -1
  148. package/dist/orbcharts-plugins-basic/src/index.d.ts +0 -7
  149. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiStackedBar.d.ts +0 -1
  150. package/dist/orbcharts-plugins-basic/src/multiValue/defaults.d.ts +0 -9
  151. package/dist/orbcharts-plugins-basic/src/multiValue/multiValueObservables.d.ts +0 -33
  152. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/XYZoom.d.ts +0 -1
  153. /package/dist/{orbcharts-plugins-basic/lib → lib}/core-types.d.ts +0 -0
  154. /package/dist/{orbcharts-plugins-basic/lib → lib}/core.d.ts +0 -0
  155. /package/dist/{orbcharts-plugins-basic/lib → lib}/plugins-basic-types.d.ts +0 -0
  156. /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseGroupAxis.d.ts +0 -0
  157. /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseLegend.d.ts +0 -0
  158. /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseTooltip.d.ts +0 -0
  159. /package/dist/{orbcharts-plugins-basic/src → src}/base/types.d.ts +0 -0
  160. /package/dist/{orbcharts-plugins-basic/src → src}/const.d.ts +0 -0
  161. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/Bars.d.ts +0 -0
  162. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/BarsPN.d.ts +0 -0
  163. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/BarsTriangle.d.ts +0 -0
  164. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/Dots.d.ts +0 -0
  165. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GridLegend.d.ts +0 -0
  166. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GridTooltip.d.ts +0 -0
  167. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GroupAux.d.ts +0 -0
  168. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GroupAxis.d.ts +0 -0
  169. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/LineAreas.d.ts +0 -0
  170. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/Lines.d.ts +0 -0
  171. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/StackedValueAxis.d.ts +0 -0
  172. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/ValueAxis.d.ts +0 -0
  173. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/multiGridObservables.d.ts +0 -0
  174. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiBars.d.ts +0 -0
  175. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiBarsTriangle.d.ts +0 -0
  176. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiDots.d.ts +0 -0
  177. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiGridLegend.d.ts +0 -0
  178. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiGridTooltip.d.ts +0 -0
  179. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiGroupAxis.d.ts +0 -0
  180. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiLineAreas.d.ts +0 -0
  181. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiLines.d.ts +0 -0
  182. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiStackedValueAxis.d.ts +0 -0
  183. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiValueAxis.d.ts +0 -0
  184. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/OverlappingStackedValueAxes.d.ts +0 -0
  185. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/OverlappingValueAxes.d.ts +0 -0
  186. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/MultiValueLegend.d.ts +0 -0
  187. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/MultiValueTooltip.d.ts +0 -0
  188. /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/Ranking.d.ts → src/multiValue/plugins/OrdinalBubbles.d.ts} +0 -0
  189. /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/RankingAxis.d.ts → src/multiValue/plugins/OrdinalXAxis.d.ts} +0 -0
  190. /package/dist/{orbcharts-plugins-basic/src/noneData/plugins/Container.d.ts → src/multiValue/plugins/RacingCounterAxis.d.ts} +0 -0
  191. /package/dist/{orbcharts-plugins-basic/src/noneData/plugins/Tooltip.d.ts → src/multiValue/plugins/RankingAxis_legacy.d.ts} +0 -0
  192. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/Scatter.d.ts +0 -0
  193. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/ScatterBubbles.d.ts +0 -0
  194. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/XYAux.d.ts +0 -0
  195. /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/XYAxes.d.ts → src/multiValue/plugins/XYAxes_legacy.d.ts} +0 -0
  196. /package/dist/{orbcharts-plugins-basic/src → src}/noneData/defaults.d.ts +0 -0
  197. /package/dist/{orbcharts-plugins-basic/src → src}/noneData/index.d.ts +0 -0
  198. /package/dist/{orbcharts-plugins-basic/src/series/plugins/Waffle.d.ts → src/noneData/plugins/Container.d.ts} +0 -0
  199. /package/{src/multiValue/plugins/Ranking.ts → dist/src/noneData/plugins/Tooltip.d.ts} +0 -0
  200. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/defaults.d.ts +0 -0
  201. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/index.d.ts +0 -0
  202. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/ForceDirected.d.ts +0 -0
  203. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/ForceDirectedBubbles.d.ts +0 -0
  204. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/RelationshipLegend.d.ts +0 -0
  205. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/RelationshipTooltip.d.ts +0 -0
  206. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/relationshipObservables.d.ts +0 -0
  207. /package/dist/{orbcharts-plugins-basic/src → src}/series/defaults.d.ts +0 -0
  208. /package/dist/{orbcharts-plugins-basic/src → src}/series/index.d.ts +0 -0
  209. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/Bubbles.d.ts +0 -0
  210. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/Pie.d.ts +0 -0
  211. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/PieEventTexts.d.ts +0 -0
  212. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/PieLabels.d.ts +0 -0
  213. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/Rose.d.ts +0 -0
  214. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/RoseLabels.d.ts +0 -0
  215. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/SeriesLegend.d.ts +0 -0
  216. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/SeriesTooltip.d.ts +0 -0
  217. /package/{src/multiValue/plugins/RankingAxis.ts → dist/src/series/plugins/Waffle.d.ts} +0 -0
  218. /package/dist/{orbcharts-plugins-basic/src → src}/series/seriesObservables.d.ts +0 -0
  219. /package/dist/{orbcharts-plugins-basic/src → src}/series/seriesUtils.d.ts +0 -0
  220. /package/dist/{orbcharts-plugins-basic/src → src}/tree/defaults.d.ts +0 -0
  221. /package/dist/{orbcharts-plugins-basic/src → src}/tree/index.d.ts +0 -0
  222. /package/dist/{orbcharts-plugins-basic/src → src}/tree/plugins/TreeLegend.d.ts +0 -0
  223. /package/dist/{orbcharts-plugins-basic/src → src}/tree/plugins/TreeMap.d.ts +0 -0
  224. /package/dist/{orbcharts-plugins-basic/src → src}/tree/plugins/TreeTooltip.d.ts +0 -0
  225. /package/dist/{orbcharts-plugins-basic/src → src}/utils/d3Utils.d.ts +0 -0
  226. /package/dist/{orbcharts-plugins-basic/src → src}/utils/observables.d.ts +0 -0
  227. /package/dist/{orbcharts-plugins-basic/src → src}/utils/orbchartsUtils.d.ts +0 -0
  228. /package/dist/{orbcharts-plugins-basic/vite.config.d.ts → vite.config.d.ts} +0 -0
@@ -1,231 +1,222 @@
1
- import type { ComputedDatumSeries, EventSeries, EventName, ColorType } from '../../lib/core-types'
2
- import type {
3
- BubblesParams,
4
- PieParams,
5
- PieEventTextsParams,
6
- PieLabelsParams,
7
- RoseParams,
8
- RoseLabelsParams,
9
- SeriesLegendParams,
10
- SeriesTooltipParams
11
- } from '../../lib/plugins-basic-types'
12
-
13
-
14
- export const DEFAULT_BUBBLES_PARAMS: BubblesParams = {
15
- force: {
16
- strength: 0.08, // 泡泡引力
17
- velocityDecay: 0.3, // 衰減數
18
- collisionSpacing: 2 // 泡泡間距
19
- },
20
- bubbleLabel: {
21
- colorType: 'labelContrast',
22
- fillRate: 0.6,
23
- lineHeight: 1,
24
- maxLineLength: 6,
25
- wordBreakAll: true,
26
- },
27
- // highlightRIncrease: 0,
28
- arcScaleType: 'area'
29
- }
30
-
31
- export const DEFAULT_PIE_PARAMS: PieParams = {
32
- // padding: {
33
- // top: 50,
34
- // right: 70,
35
- // bottom: 50,
36
- // left: 70
37
- // },
38
- outerRadius: 0.85,
39
- innerRadius: 0,
40
- outerRadiusWhileHighlight: 0.9,
41
- // label?: LabelStyle
42
- // enterDuration: 800,
43
- startAngle: 0,
44
- endAngle: Math.PI * 2,
45
- padAngle: 0,
46
- strokeColorType: 'background',
47
- strokeWidth: 1,
48
- // padRadius: 100,
49
- cornerRadius: 0,
50
- // highlightTarget: 'datum',
51
- // highlightId: null,
52
- // highlightLabel: null,
53
- }
54
-
55
- export const DEFAULT_PIE_EVENT_TEXTS_PARAMS: PieEventTextsParams = {
56
- renderFn: (eventData: EventSeries) => {
57
- if (eventData.eventName === 'mouseover' || eventData.eventName === 'mousemove') {
58
- return [String(eventData.datum!.value)]
59
- }
60
- return [
61
- String(
62
- Math.round(
63
- eventData.data.reduce((acc, seriesData) => {
64
- return acc + seriesData.reduce((_acc, data) => {
65
- return _acc + (data.value ?? 0)
66
- }, 0)
67
- }, 0) * (eventData.tween ?? 1)
68
- )
69
- )
70
- ]
71
- },
72
- textAttrs: [
73
- {
74
- "transform": "translate(0, 0)"
75
- }
76
- ],
77
- textStyles: [
78
- {
79
- "font-weight": "bold",
80
- "text-anchor": "middle",
81
- "pointer-events": "none",
82
- "dominant-baseline": "middle",
83
- "font-size": 64,
84
- "fill": "#000"
85
- }
86
- ]
87
- }
88
- DEFAULT_PIE_EVENT_TEXTS_PARAMS.renderFn.toString = () => `(eventData) => {
89
- if (eventData.eventName === 'mouseover' || eventData.eventName === 'mousemove') {
90
- return [String(eventData.datum.value)]
91
- }
92
- return [
93
- String(
94
- Math.round(
95
- eventData.data.reduce((acc, seriesData) => {
96
- return acc + seriesData.reduce((_acc, data) => {
97
- return _acc + (data.value ?? 0)
98
- }, 0)
99
- }, 0) * (eventData.tween ?? 1)
100
- )
101
- )
102
- ]
103
- }`
104
-
105
- export const DEFAULT_PIE_LABELS_PARAMS: PieLabelsParams = {
106
- // solidColor: undefined,
107
- // colors: DEFAULT_COLORS,
108
- outerRadius: 0.85,
109
- outerRadiusWhileHighlight: 0.9,
110
- // innerRadius: 0,
111
- // enterDuration: 800,
112
- startAngle: 0,
113
- endAngle: Math.PI * 2,
114
- labelCentroid: 2.1,
115
- // fontSize: 12,
116
- labelColorType: 'primary',
117
- labelFn: d => String(d.label),
118
- }
119
- DEFAULT_PIE_LABELS_PARAMS.labelFn.toString = () => `d => String(d.label)`
120
-
121
- export const DEFAULT_ROSE_PARAMS: RoseParams = {
122
- outerRadius: 0.85,
123
- padAngle: 0,
124
- strokeColorType: 'background',
125
- strokeWidth: 0.5,
126
- cornerRadius: 0,
127
- arcScaleType: 'area',
128
- angleIncreaseWhileHighlight: 0.05
129
- }
130
-
131
- export const DEFAULT_ROSE_LABELS_PARAMS: RoseLabelsParams = {
132
- outerRadius: 0.85,
133
- labelCentroid: 2.1,
134
- labelFn: d => String(d.label),
135
- labelColorType: 'primary',
136
- arcScaleType: 'area'
137
- }
138
- DEFAULT_ROSE_LABELS_PARAMS.labelFn.toString = () => `d => String(d.label)`
139
-
140
- export const DEFAULT_SERIES_LEGEND_PARAMS: SeriesLegendParams = {
141
- // position: 'right',
142
- // justify: 'end',
143
- placement: 'right-end',
144
- padding: 28,
145
- // offset: [0, 0],
146
- backgroundFill: 'none',
147
- backgroundStroke: 'none',
148
- gap: 10,
149
- listRectWidth: 14,
150
- listRectHeight: 14,
151
- listRectRadius: 0,
152
- // highlightEvent: false
153
- textColorType: 'primary'
154
- }
155
-
156
- export const DEFAULT_SERIES_TOOLTIP_PARAMS: SeriesTooltipParams = {
157
- backgroundColorType: 'background',
158
- strokeColorType: 'primary',
159
- backgroundOpacity: 0.8,
160
- textColorType: 'primary',
161
- offset: [20, 5],
162
- padding: 10,
163
- renderFn: (eventData, { styles, utils }) => {
164
- const hasSeriesLabel = eventData.seriesLabel.slice(0, 7) === 'series_' ? false : true
165
- const hasDatumLabel = eventData.datum.label.slice(0, 7) === 'series_' ? false : true
166
- const bulletWidth = styles.textSizePx * 0.7
167
- const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
168
- const seriesSvg = hasSeriesLabel
169
- ? `<rect width="${bulletWidth}" height="${bulletWidth}" x="${offset}" y="${offset - 1}" rx="${bulletWidth / 2}" fill="${eventData.datum.color}"></rect>
170
- <text x="${styles.textSizePx * 1.5}" font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
171
- <tspan>${eventData.seriesLabel}</tspan>
172
- </text>`
173
- : ''
174
- const datumLabelSvg = hasDatumLabel
175
- ? `<tspan>${eventData.datum.label}</tspan> `
176
- : ''
177
- const seriesLabelTextWidth = hasSeriesLabel
178
- ? utils.measureTextWidth(`${eventData.seriesLabel}${eventData.datum.value}`, styles.textSizePx) + styles.textSizePx * 1.5
179
- : 0
180
- const datumLabelTextWidth = hasDatumLabel
181
- ? utils.measureTextWidth(`${eventData.datum.label}${eventData.datum.value}`, styles.textSizePx)
182
- : 0
183
- const maxTextWidth = Math.max(seriesLabelTextWidth, datumLabelTextWidth)
184
- const lineEndX = hasDatumLabel
185
- ? maxTextWidth + styles.textSizePx * 1.5
186
- : 0
187
- const valueTextAnchor = hasDatumLabel ? 'end' : 'start'
188
- const datumSvg = `<text font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
189
- ${datumLabelSvg}<tspan font-weight="bold" text-anchor="${valueTextAnchor}" x="${lineEndX}">${eventData.datum.value}</tspan>
190
- </text>`
191
-
192
- return `${seriesSvg}
193
- <g ${hasSeriesLabel ? `transform="translate(0, ${styles.textSizePx * 2})"` : ''}>
194
- ${datumSvg}
195
- </g>`
196
- },
197
- }
198
- DEFAULT_SERIES_TOOLTIP_PARAMS.renderFn.toString = () => `(eventData, { styles, utils }) => {
199
- const hasSeriesLabel = eventData.seriesLabel.slice(0, 7) === 'series_' ? false : true
200
- const hasDatumLabel = eventData.datum.label.slice(0, 7) === 'series_' ? false : true
201
- const bulletWidth = styles.textSizePx * 0.7
202
- const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
203
- const seriesSvg = hasSeriesLabel
204
- ? \`<rect width="\${bulletWidth}" height="\${bulletWidth}" x="\${offset}" y="\${offset - 1}" rx="\${bulletWidth / 2}" fill="\${eventData.datum.color}"></rect>
205
- <text x="\${styles.textSizePx * 1.5}" font-size="\${styles.textSizePx}" dominant-baseline="hanging" fill="\${styles.textColor}">
206
- <tspan>\${eventData.seriesLabel}</tspan>
207
- </text>\`
208
- : ''
209
- const datumLabelSvg = hasDatumLabel
210
- ? \`<tspan>\${eventData.datum.label}</tspan> \`
211
- : ''
212
- const seriesLabelTextWidth = hasSeriesLabel
213
- ? utils.measureTextWidth(\`\${eventData.seriesLabel}\${eventData.datum.value}\`, styles.textSizePx) + styles.textSizePx * 1.5
214
- : 0
215
- const datumLabelTextWidth = hasDatumLabel
216
- ? utils.measureTextWidth(\`\${eventData.datum.label}\${eventData.datum.value}\`, styles.textSizePx)
217
- : 0
218
- const maxTextWidth = Math.max(seriesLabelTextWidth, datumLabelTextWidth)
219
- const lineEndX = hasDatumLabel
220
- ? maxTextWidth + styles.textSizePx * 1.5
221
- : 0
222
- const valueTextAnchor = hasDatumLabel ? 'end' : 'start'
223
- const datumSvg = \`<text font-size="\${styles.textSizePx}" dominant-baseline="hanging" fill="\${styles.textColor}">
224
- \${datumLabelSvg}<tspan font-weight="bold" text-anchor="\${valueTextAnchor}" x="\${lineEndX}">\${eventData.datum.value}</tspan>
225
- </text>\`
226
-
227
- return \`\${seriesSvg}
228
- <g \${hasSeriesLabel ? \`transform="translate(0, \${styles.textSizePx * 2})"\` : ''}>
229
- \${datumSvg}
230
- </g>\`
1
+ import type { ComputedDatumSeries, EventSeries, EventName, ColorType } from '../../lib/core-types'
2
+ import type {
3
+ BubblesParams,
4
+ PieParams,
5
+ PieEventTextsParams,
6
+ PieLabelsParams,
7
+ RoseParams,
8
+ RoseLabelsParams,
9
+ SeriesLegendParams,
10
+ SeriesTooltipParams
11
+ } from '../../lib/plugins-basic-types'
12
+
13
+
14
+ export const DEFAULT_BUBBLES_PARAMS: BubblesParams = {
15
+ force: {
16
+ strength: 0.08, // 泡泡引力
17
+ velocityDecay: 0.3, // 衰減數
18
+ collisionSpacing: 2 // 泡泡間距
19
+ },
20
+ bubbleLabel: {
21
+ colorType: 'labelContrast',
22
+ fillRate: 0.6,
23
+ lineHeight: 1,
24
+ maxLineLength: 6,
25
+ wordBreakAll: true,
26
+ },
27
+ // highlightRIncrease: 0,
28
+ arcScaleType: 'area'
29
+ }
30
+
31
+ export const DEFAULT_PIE_PARAMS: PieParams = {
32
+ outerRadius: 0.85,
33
+ innerRadius: 0,
34
+ outerRadiusWhileHighlight: 0.9,
35
+ startAngle: 0,
36
+ endAngle: Math.PI * 2,
37
+ padAngle: 0,
38
+ strokeColorType: 'background',
39
+ strokeWidth: 1,
40
+ // padRadius: 100,
41
+ cornerRadius: 0,
42
+ }
43
+
44
+ export const DEFAULT_PIE_EVENT_TEXTS_PARAMS: PieEventTextsParams = {
45
+ renderFn: (eventData: EventSeries) => {
46
+ if (eventData.eventName === 'mouseover' || eventData.eventName === 'mousemove') {
47
+ return [String(eventData.datum!.value)]
48
+ }
49
+ return [
50
+ String(
51
+ Math.round(
52
+ eventData.data.reduce((acc, seriesData) => {
53
+ return acc + seriesData.reduce((_acc, data) => {
54
+ return _acc + (data.value ?? 0)
55
+ }, 0)
56
+ }, 0) * (eventData.tween ?? 1)
57
+ )
58
+ )
59
+ ]
60
+ },
61
+ textAttrs: [
62
+ {
63
+ "transform": "translate(0, 0)"
64
+ }
65
+ ],
66
+ textStyles: [
67
+ {
68
+ "font-weight": "bold",
69
+ "text-anchor": "middle",
70
+ "pointer-events": "none",
71
+ "dominant-baseline": "middle",
72
+ "font-size": 64,
73
+ "fill": "#000"
74
+ }
75
+ ]
76
+ }
77
+ DEFAULT_PIE_EVENT_TEXTS_PARAMS.renderFn.toString = () => `(eventData) => {
78
+ if (eventData.eventName === 'mouseover' || eventData.eventName === 'mousemove') {
79
+ return [String(eventData.datum.value)]
80
+ }
81
+ return [
82
+ String(
83
+ Math.round(
84
+ eventData.data.reduce((acc, seriesData) => {
85
+ return acc + seriesData.reduce((_acc, data) => {
86
+ return _acc + (data.value ?? 0)
87
+ }, 0)
88
+ }, 0) * (eventData.tween ?? 1)
89
+ )
90
+ )
91
+ ]
92
+ }`
93
+
94
+ export const DEFAULT_PIE_LABELS_PARAMS: PieLabelsParams = {
95
+ // solidColor: undefined,
96
+ // colors: DEFAULT_COLORS,
97
+ outerRadius: 0.85,
98
+ outerRadiusWhileHighlight: 0.9,
99
+ // innerRadius: 0,
100
+ // enterDuration: 800,
101
+ startAngle: 0,
102
+ endAngle: Math.PI * 2,
103
+ labelCentroid: 2.1,
104
+ // fontSize: 12,
105
+ labelColorType: 'primary',
106
+ labelFn: d => String(d.label),
107
+ }
108
+ DEFAULT_PIE_LABELS_PARAMS.labelFn.toString = () => `d => String(d.label)`
109
+
110
+ export const DEFAULT_ROSE_PARAMS: RoseParams = {
111
+ outerRadius: 0.95,
112
+ padAngle: 0,
113
+ strokeColorType: 'background',
114
+ strokeWidth: 0.5,
115
+ cornerRadius: 0,
116
+ arcScaleType: 'area',
117
+ angleIncreaseWhileHighlight: 0.05
118
+ }
119
+
120
+ export const DEFAULT_ROSE_LABELS_PARAMS: RoseLabelsParams = {
121
+ outerRadius: 0.95,
122
+ labelCentroid: 2.1,
123
+ labelFn: d => String(d.label),
124
+ labelColorType: 'primary',
125
+ arcScaleType: 'area'
126
+ }
127
+ DEFAULT_ROSE_LABELS_PARAMS.labelFn.toString = () => `d => String(d.label)`
128
+
129
+ export const DEFAULT_SERIES_LEGEND_PARAMS: SeriesLegendParams = {
130
+ // position: 'right',
131
+ // justify: 'end',
132
+ placement: 'right-end',
133
+ padding: 28,
134
+ // offset: [0, 0],
135
+ backgroundFill: 'none',
136
+ backgroundStroke: 'none',
137
+ gap: 10,
138
+ listRectWidth: 14,
139
+ listRectHeight: 14,
140
+ listRectRadius: 0,
141
+ // highlightEvent: false
142
+ textColorType: 'primary'
143
+ }
144
+
145
+ export const DEFAULT_SERIES_TOOLTIP_PARAMS: SeriesTooltipParams = {
146
+ backgroundColorType: 'background',
147
+ strokeColorType: 'primary',
148
+ backgroundOpacity: 0.8,
149
+ textColorType: 'primary',
150
+ offset: [20, 5],
151
+ padding: 10,
152
+ renderFn: (eventData, { styles, utils }) => {
153
+ const hasSeriesLabel = eventData.seriesLabel.slice(0, 7) === 'series_' ? false : true
154
+ const hasDatumLabel = eventData.datum.label.slice(0, 7) === 'series_' ? false : true
155
+ const valueText = utils.toCurrency(eventData.datum.value)
156
+ const bulletWidth = styles.textSizePx * 0.7
157
+ const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
158
+ const seriesSvg = hasSeriesLabel
159
+ ? `<rect width="${bulletWidth}" height="${bulletWidth}" x="${offset}" y="${offset - 1}" rx="${bulletWidth / 2}" fill="${eventData.datum.color}"></rect>
160
+ <text x="${styles.textSizePx * 1.5}" font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
161
+ <tspan>${eventData.seriesLabel}</tspan>
162
+ </text>`
163
+ : ''
164
+ const datumLabelSvg = hasDatumLabel
165
+ ? `<tspan>${eventData.datum.label}</tspan> `
166
+ : ''
167
+ const seriesLabelTextWidth = hasSeriesLabel
168
+ ? utils.measureTextWidth(`${eventData.seriesLabel}${valueText}`, styles.textSizePx) + styles.textSizePx * 1.5
169
+ : 0
170
+ const datumLabelTextWidth = hasDatumLabel
171
+ ? utils.measureTextWidth(`${eventData.datum.label}${valueText}`, styles.textSizePx)
172
+ : 0
173
+ const maxTextWidth = Math.max(seriesLabelTextWidth, datumLabelTextWidth)
174
+ const lineEndX = hasDatumLabel
175
+ ? maxTextWidth + styles.textSizePx * 1.5
176
+ : 0
177
+ const valueTextAnchor = hasDatumLabel ? 'end' : 'start'
178
+ const datumSvg = `<text font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
179
+ ${datumLabelSvg}<tspan font-weight="bold" text-anchor="${valueTextAnchor}" x="${lineEndX}">${valueText}</tspan>
180
+ </text>`
181
+
182
+ return `${seriesSvg}
183
+ <g ${hasSeriesLabel ? `transform="translate(0, ${styles.textSizePx * 2})"` : ''}>
184
+ ${datumSvg}
185
+ </g>`
186
+ },
187
+ }
188
+ DEFAULT_SERIES_TOOLTIP_PARAMS.renderFn.toString = () => `(eventData, { styles, utils }) => {
189
+ const hasSeriesLabel = eventData.seriesLabel.slice(0, 7) === 'series_' ? false : true
190
+ const hasDatumLabel = eventData.datum.label.slice(0, 7) === 'series_' ? false : true
191
+ const valueText = utils.toCurrency(eventData.datum.value)
192
+ const bulletWidth = styles.textSizePx * 0.7
193
+ const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
194
+ const seriesSvg = hasSeriesLabel
195
+ ? \`<rect width="\${bulletWidth}" height="\${bulletWidth}" x="\${offset}" y="\${offset - 1}" rx="\${bulletWidth / 2}" fill="\${eventData.datum.color}"></rect>
196
+ <text x="\${styles.textSizePx * 1.5}" font-size="\${styles.textSizePx}" dominant-baseline="hanging" fill="\${styles.textColor}">
197
+ <tspan>\${eventData.seriesLabel}</tspan>
198
+ </text>\`
199
+ : ''
200
+ const datumLabelSvg = hasDatumLabel
201
+ ? \`<tspan>\${eventData.datum.label}</tspan> \`
202
+ : ''
203
+ const seriesLabelTextWidth = hasSeriesLabel
204
+ ? utils.measureTextWidth(\`\${eventData.seriesLabel}\${valueText}\`, styles.textSizePx) + styles.textSizePx * 1.5
205
+ : 0
206
+ const datumLabelTextWidth = hasDatumLabel
207
+ ? utils.measureTextWidth(\`\${eventData.datum.label}\${valueText}\`, styles.textSizePx)
208
+ : 0
209
+ const maxTextWidth = Math.max(seriesLabelTextWidth, datumLabelTextWidth)
210
+ const lineEndX = hasDatumLabel
211
+ ? maxTextWidth + styles.textSizePx * 1.5
212
+ : 0
213
+ const valueTextAnchor = hasDatumLabel ? 'end' : 'start'
214
+ const datumSvg = \`<text font-size="\${styles.textSizePx}" dominant-baseline="hanging" fill="\${styles.textColor}">
215
+ \${datumLabelSvg}<tspan font-weight="bold" text-anchor="\${valueTextAnchor}" x="\${lineEndX}">\${valueText}</tspan>
216
+ </text>\`
217
+
218
+ return \`\${seriesSvg}
219
+ <g \${hasSeriesLabel ? \`transform="translate(0, \${styles.textSizePx * 2})"\` : ''}>
220
+ \${datumSvg}
221
+ </g>\`
231
222
  }`
@@ -1,10 +1,10 @@
1
- export * from './defaults'
2
- // export * from './types'
3
- export { Bubbles } from './plugins/Bubbles'
4
- export { Pie } from './plugins/Pie'
5
- export { PieEventTexts } from './plugins/PieEventTexts'
6
- export { PieLabels } from './plugins/PieLabels'
7
- export { Rose } from './plugins/Rose'
8
- export { RoseLabels } from './plugins/RoseLabels'
9
- export { SeriesLegend } from './plugins/SeriesLegend'
1
+ export * from './defaults'
2
+ // export * from './types'
3
+ export { Bubbles } from './plugins/Bubbles'
4
+ export { Pie } from './plugins/Pie'
5
+ export { PieEventTexts } from './plugins/PieEventTexts'
6
+ export { PieLabels } from './plugins/PieLabels'
7
+ export { Rose } from './plugins/Rose'
8
+ export { RoseLabels } from './plugins/RoseLabels'
9
+ export { SeriesLegend } from './plugins/SeriesLegend'
10
10
  export { SeriesTooltip } from './plugins/SeriesTooltip'