@orbcharts/plugins-basic 3.0.0-beta.4 → 3.0.0-beta.5

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 (192) hide show
  1. package/LICENSE +200 -200
  2. package/dist/{src → orbcharts-plugins-basic/src}/base/BaseBarStack.d.ts +2 -2
  3. package/dist/{src → orbcharts-plugins-basic/src}/base/BaseBars.d.ts +2 -2
  4. package/dist/{src → orbcharts-plugins-basic/src}/base/BaseBarsTriangle.d.ts +2 -2
  5. package/dist/{src → orbcharts-plugins-basic/src}/base/BaseDots.d.ts +2 -2
  6. package/dist/{src → orbcharts-plugins-basic/src}/base/BaseGroupAxis.d.ts +2 -2
  7. package/dist/{src → orbcharts-plugins-basic/src}/base/BaseLegend.d.ts +1 -1
  8. package/dist/{src → orbcharts-plugins-basic/src}/base/BaseLineAreas.d.ts +3 -3
  9. package/dist/{src → orbcharts-plugins-basic/src}/base/BaseLines.d.ts +3 -3
  10. package/dist/{src → orbcharts-plugins-basic/src}/base/BaseValueAxis.d.ts +3 -2
  11. package/dist/{src → orbcharts-plugins-basic/src}/grid/defaults.d.ts +1 -1
  12. package/dist/{src → orbcharts-plugins-basic/src}/grid/gridObservables.d.ts +5 -5
  13. package/dist/orbcharts-plugins-basic/src/index.d.ts +6 -0
  14. package/dist/orbcharts-plugins-basic/src/multiValue/defaults.d.ts +9 -0
  15. package/dist/orbcharts-plugins-basic/src/multiValue/index.d.ts +8 -0
  16. package/dist/orbcharts-plugins-basic/src/multiValue/multiValueObservables.d.ts +33 -0
  17. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/MultiValueLegend.d.ts +1 -0
  18. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/MultiValueTooltip.d.ts +1 -0
  19. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/Scatter.d.ts +3 -0
  20. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/ScatterBubbles.d.ts +3 -0
  21. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/XYAux.d.ts +3 -0
  22. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/XYAxes.d.ts +3 -0
  23. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/XYZoom.d.ts +1 -0
  24. package/dist/{src → orbcharts-plugins-basic/src}/series/seriesObservables.d.ts +3 -3
  25. package/dist/{src → orbcharts-plugins-basic/src}/utils/observables.d.ts +1 -1
  26. package/dist/{src → orbcharts-plugins-basic/src}/utils/orbchartsUtils.d.ts +3 -3
  27. package/dist/orbcharts-plugins-basic.es.js +11809 -10185
  28. package/dist/orbcharts-plugins-basic.umd.js +66 -34
  29. package/dist/src/index.d.ts +1 -5
  30. package/lib/core-types.ts +7 -7
  31. package/lib/core.ts +6 -6
  32. package/lib/plugins-basic-types.ts +6 -6
  33. package/package.json +44 -44
  34. package/src/base/BaseBarStack.ts +780 -780
  35. package/src/base/BaseBars.ts +765 -765
  36. package/src/base/BaseBarsTriangle.ts +674 -674
  37. package/src/base/BaseDots.ts +464 -515
  38. package/src/base/BaseGroupAxis.ts +679 -679
  39. package/src/base/BaseLegend.ts +684 -680
  40. package/src/base/BaseLineAreas.ts +629 -629
  41. package/src/base/BaseLines.ts +706 -706
  42. package/src/base/BaseTooltip.ts +385 -385
  43. package/src/base/BaseValueAxis.ts +583 -580
  44. package/src/base/types.ts +2 -2
  45. package/src/const.ts +30 -30
  46. package/src/grid/defaults.ts +244 -244
  47. package/src/grid/gridObservables.ts +554 -545
  48. package/src/grid/index.ts +16 -16
  49. package/src/grid/plugins/BarStack.ts +64 -64
  50. package/src/grid/plugins/Bars.ts +69 -69
  51. package/src/grid/plugins/BarsPN.ts +66 -66
  52. package/src/grid/plugins/BarsTriangle.ts +73 -73
  53. package/src/grid/plugins/Dots.ts +68 -68
  54. package/src/grid/plugins/GridLegend.ts +107 -107
  55. package/src/grid/plugins/GridTooltip.ts +66 -66
  56. package/src/grid/plugins/GridZoom.ts +218 -218
  57. package/src/grid/plugins/GroupAux.ts +1103 -1098
  58. package/src/grid/plugins/GroupAxis.ts +97 -97
  59. package/src/grid/plugins/LineAreas.ts +65 -65
  60. package/src/grid/plugins/Lines.ts +59 -59
  61. package/src/grid/plugins/ValueAxis.ts +94 -93
  62. package/src/grid/plugins/ValueStackAxis.ts +96 -95
  63. package/src/index.ts +10 -9
  64. package/src/multiGrid/defaults.ts +224 -224
  65. package/src/multiGrid/index.ts +14 -14
  66. package/src/multiGrid/multiGridObservables.ts +49 -49
  67. package/src/multiGrid/plugins/MultiBarStack.ts +106 -106
  68. package/src/multiGrid/plugins/MultiBars.ts +108 -108
  69. package/src/multiGrid/plugins/MultiBarsTriangle.ts +114 -114
  70. package/src/multiGrid/plugins/MultiDots.ts +102 -102
  71. package/src/multiGrid/plugins/MultiGridLegend.ts +159 -159
  72. package/src/multiGrid/plugins/MultiGridTooltip.ts +66 -66
  73. package/src/multiGrid/plugins/MultiGroupAxis.ts +137 -137
  74. package/src/multiGrid/plugins/MultiLineAreas.ts +107 -107
  75. package/src/multiGrid/plugins/MultiLines.ts +101 -101
  76. package/src/multiGrid/plugins/MultiValueAxis.ts +134 -133
  77. package/src/multiGrid/plugins/MultiValueStackAxis.ts +134 -133
  78. package/src/multiGrid/plugins/OverlappingValueAxes.ts +300 -299
  79. package/src/multiGrid/plugins/OverlappingValueStackAxes.ts +299 -298
  80. package/src/multiValue/defaults.ts +163 -0
  81. package/src/multiValue/index.ts +9 -0
  82. package/src/multiValue/multiValueObservables.ts +258 -0
  83. package/src/multiValue/plugins/MultiValueLegend.ts +107 -0
  84. package/src/multiValue/plugins/MultiValueTooltip.ts +66 -0
  85. package/src/multiValue/plugins/Scatter.ts +426 -0
  86. package/src/multiValue/plugins/ScatterBubbles.ts +551 -0
  87. package/src/multiValue/plugins/XYAux.ts +682 -0
  88. package/src/multiValue/plugins/XYAxes.ts +677 -0
  89. package/src/multiValue/plugins/XYZoom.ts +300 -0
  90. package/src/noneData/defaults.ts +102 -102
  91. package/src/noneData/index.ts +3 -3
  92. package/src/noneData/plugins/Container.ts +27 -27
  93. package/src/noneData/plugins/Tooltip.ts +373 -373
  94. package/src/series/defaults.ts +206 -206
  95. package/src/series/index.ts +9 -9
  96. package/src/series/plugins/Bubbles.ts +603 -603
  97. package/src/series/plugins/Pie.ts +623 -623
  98. package/src/series/plugins/PieEventTexts.ts +283 -283
  99. package/src/series/plugins/PieLabels.ts +640 -640
  100. package/src/series/plugins/Rose.ts +516 -516
  101. package/src/series/plugins/RoseLabels.ts +600 -600
  102. package/src/series/plugins/SeriesLegend.ts +107 -107
  103. package/src/series/plugins/SeriesTooltip.ts +66 -66
  104. package/src/series/seriesObservables.ts +145 -145
  105. package/src/series/seriesUtils.ts +51 -51
  106. package/src/tree/defaults.ts +78 -78
  107. package/src/tree/index.ts +4 -4
  108. package/src/tree/plugins/TreeLegend.ts +100 -107
  109. package/src/tree/plugins/TreeMap.ts +333 -333
  110. package/src/tree/plugins/TreeTooltip.ts +66 -66
  111. package/src/utils/commonUtils.ts +21 -21
  112. package/src/utils/d3Graphics.ts +174 -174
  113. package/src/utils/d3Utils.ts +74 -73
  114. package/src/utils/observables.ts +14 -14
  115. package/src/utils/orbchartsUtils.ts +101 -100
  116. package/tsconfig.base.json +13 -13
  117. package/tsconfig.json +2 -2
  118. package/vite.config.js +22 -22
  119. package/dist/src/base/BaseGroupArea.d.ts +0 -0
  120. package/dist/src/multiValue/plugins/Scatter.d.ts +0 -0
  121. package/dist/src/multiValue/plugins/ScatterAxes.d.ts +0 -0
  122. package/dist/src/relationship/index.d.ts +0 -0
  123. package/src/base/BaseGroupArea.ts +0 -0
  124. package/src/multiValue/plugins/ScatterAxes.ts +0 -0
  125. /package/dist/{lib → orbcharts-plugins-basic/lib}/core-types.d.ts +0 -0
  126. /package/dist/{lib → orbcharts-plugins-basic/lib}/core.d.ts +0 -0
  127. /package/dist/{lib → orbcharts-plugins-basic/lib}/plugins-basic-types.d.ts +0 -0
  128. /package/dist/{src → orbcharts-plugins-basic/src}/base/BaseTooltip.d.ts +0 -0
  129. /package/dist/{src → orbcharts-plugins-basic/src}/base/types.d.ts +0 -0
  130. /package/dist/{src → orbcharts-plugins-basic/src}/const.d.ts +0 -0
  131. /package/dist/{src → orbcharts-plugins-basic/src}/grid/index.d.ts +0 -0
  132. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/BarStack.d.ts +0 -0
  133. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/Bars.d.ts +0 -0
  134. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/BarsPN.d.ts +0 -0
  135. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/BarsTriangle.d.ts +0 -0
  136. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/Dots.d.ts +0 -0
  137. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/GridLegend.d.ts +0 -0
  138. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/GridTooltip.d.ts +0 -0
  139. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/GridZoom.d.ts +0 -0
  140. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/GroupAux.d.ts +0 -0
  141. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/GroupAxis.d.ts +0 -0
  142. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/LineAreas.d.ts +0 -0
  143. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/Lines.d.ts +0 -0
  144. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/ValueAxis.d.ts +0 -0
  145. /package/dist/{src → orbcharts-plugins-basic/src}/grid/plugins/ValueStackAxis.d.ts +0 -0
  146. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/defaults.d.ts +0 -0
  147. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/index.d.ts +0 -0
  148. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/multiGridObservables.d.ts +0 -0
  149. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/plugins/MultiBarStack.d.ts +0 -0
  150. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/plugins/MultiBars.d.ts +0 -0
  151. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/plugins/MultiBarsTriangle.d.ts +0 -0
  152. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/plugins/MultiDots.d.ts +0 -0
  153. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/plugins/MultiGridLegend.d.ts +0 -0
  154. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/plugins/MultiGridTooltip.d.ts +0 -0
  155. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/plugins/MultiGroupAxis.d.ts +0 -0
  156. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/plugins/MultiLineAreas.d.ts +0 -0
  157. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/plugins/MultiLines.d.ts +0 -0
  158. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/plugins/MultiValueAxis.d.ts +0 -0
  159. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/plugins/MultiValueStackAxis.d.ts +0 -0
  160. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/plugins/OverlappingValueAxes.d.ts +0 -0
  161. /package/dist/{src → orbcharts-plugins-basic/src}/multiGrid/plugins/OverlappingValueStackAxes.d.ts +0 -0
  162. /package/dist/{src/grid → orbcharts-plugins-basic/src/multiValue}/plugins/Ranking.d.ts +0 -0
  163. /package/dist/{src/grid → orbcharts-plugins-basic/src/multiValue}/plugins/RankingAxis.d.ts +0 -0
  164. /package/dist/{src → orbcharts-plugins-basic/src}/noneData/defaults.d.ts +0 -0
  165. /package/dist/{src → orbcharts-plugins-basic/src}/noneData/index.d.ts +0 -0
  166. /package/dist/{src → orbcharts-plugins-basic/src}/noneData/plugins/Container.d.ts +0 -0
  167. /package/dist/{src → orbcharts-plugins-basic/src}/noneData/plugins/Tooltip.d.ts +0 -0
  168. /package/dist/{src/multiValue → orbcharts-plugins-basic/src/relationship}/index.d.ts +0 -0
  169. /package/dist/{src → orbcharts-plugins-basic/src}/relationship/plugins/Relationship.d.ts +0 -0
  170. /package/dist/{src → orbcharts-plugins-basic/src}/series/defaults.d.ts +0 -0
  171. /package/dist/{src → orbcharts-plugins-basic/src}/series/index.d.ts +0 -0
  172. /package/dist/{src → orbcharts-plugins-basic/src}/series/plugins/Bubbles.d.ts +0 -0
  173. /package/dist/{src → orbcharts-plugins-basic/src}/series/plugins/Pie.d.ts +0 -0
  174. /package/dist/{src → orbcharts-plugins-basic/src}/series/plugins/PieEventTexts.d.ts +0 -0
  175. /package/dist/{src → orbcharts-plugins-basic/src}/series/plugins/PieLabels.d.ts +0 -0
  176. /package/dist/{src → orbcharts-plugins-basic/src}/series/plugins/Rose.d.ts +0 -0
  177. /package/dist/{src → orbcharts-plugins-basic/src}/series/plugins/RoseLabels.d.ts +0 -0
  178. /package/dist/{src → orbcharts-plugins-basic/src}/series/plugins/SeriesLegend.d.ts +0 -0
  179. /package/dist/{src → orbcharts-plugins-basic/src}/series/plugins/SeriesTooltip.d.ts +0 -0
  180. /package/dist/{src → orbcharts-plugins-basic/src}/series/plugins/Waffle.d.ts +0 -0
  181. /package/dist/{src → orbcharts-plugins-basic/src}/series/seriesUtils.d.ts +0 -0
  182. /package/dist/{src → orbcharts-plugins-basic/src}/tree/defaults.d.ts +0 -0
  183. /package/dist/{src → orbcharts-plugins-basic/src}/tree/index.d.ts +0 -0
  184. /package/dist/{src → orbcharts-plugins-basic/src}/tree/plugins/TreeLegend.d.ts +0 -0
  185. /package/dist/{src → orbcharts-plugins-basic/src}/tree/plugins/TreeMap.d.ts +0 -0
  186. /package/dist/{src → orbcharts-plugins-basic/src}/tree/plugins/TreeTooltip.d.ts +0 -0
  187. /package/dist/{src → orbcharts-plugins-basic/src}/utils/commonUtils.d.ts +0 -0
  188. /package/dist/{src → orbcharts-plugins-basic/src}/utils/d3Graphics.d.ts +0 -0
  189. /package/dist/{src → orbcharts-plugins-basic/src}/utils/d3Utils.d.ts +0 -0
  190. /package/dist/{vite.config.d.ts → orbcharts-plugins-basic/vite.config.d.ts} +0 -0
  191. /package/src/{grid → multiValue}/plugins/Ranking.ts +0 -0
  192. /package/src/{grid → multiValue}/plugins/RankingAxis.ts +0 -0
@@ -1,207 +1,207 @@
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
- bubbleText: {
21
- fillRate: 0.6,
22
- lineHeight: 12,
23
- lineLengthMin: 4
24
- },
25
- // highlightRIncrease: 0,
26
- arcScaleType: 'area'
27
- }
28
-
29
- export const DEFAULT_PIE_PARAMS: PieParams = {
30
- // padding: {
31
- // top: 50,
32
- // right: 70,
33
- // bottom: 50,
34
- // left: 70
35
- // },
36
- outerRadius: 0.85,
37
- innerRadius: 0,
38
- outerRadiusWhileHighlight: 0.9,
39
- // label?: LabelStyle
40
- // enterDuration: 800,
41
- startAngle: 0,
42
- endAngle: Math.PI * 2,
43
- padAngle: 0,
44
- strokeColorType: 'background',
45
- strokeWidth: 1,
46
- // padRadius: 100,
47
- cornerRadius: 0,
48
- // highlightTarget: 'datum',
49
- // highlightId: null,
50
- // highlightLabel: null,
51
- }
52
-
53
- export const DEFAULT_PIE_EVENT_TEXTS_PARAMS: PieEventTextsParams = {
54
- eventFn: (eventData: EventSeries, eventName: EventName, t: number) => {
55
- if (eventName === 'mouseover' || eventName === 'mousemove') {
56
- return [String(eventData.datum!.value)]
57
- }
58
- return [
59
- String(
60
- Math.round(
61
- eventData.data.reduce((acc, seriesData) => {
62
- return acc + seriesData.reduce((_acc, data) => {
63
- return _acc + (data.value ?? 0)
64
- }, 0)
65
- }, 0) * t
66
- )
67
- )
68
- ]
69
- },
70
- textAttrs: [
71
- {
72
- "transform": "translate(0, 0)"
73
- }
74
- ],
75
- textStyles: [
76
- {
77
- "font-weight": "bold",
78
- "text-anchor": "middle",
79
- "pointer-events": "none",
80
- "dominant-baseline": "middle",
81
- "font-size": 64,
82
- "fill": "#000"
83
- }
84
- ]
85
- }
86
- DEFAULT_PIE_EVENT_TEXTS_PARAMS.eventFn.toString = () => `(eventData: EventSeries, eventName: EventName, t: number) => {
87
- if (eventName === 'mouseover' || eventName === 'mousemove') {
88
- return [String(eventData.datum!.value)]
89
- }
90
- return [
91
- String(
92
- Math.round(
93
- eventData.data.reduce((acc, seriesData) => {
94
- return acc + seriesData.reduce((_acc, data) => {
95
- return _acc + (data.value ?? 0)
96
- }, 0)
97
- }, 0) * t
98
- )
99
- )
100
- ]
101
- }`
102
-
103
- export const DEFAULT_PIE_LABELS_PARAMS: PieLabelsParams = {
104
- // solidColor: undefined,
105
- // colors: DEFAULT_COLORS,
106
- outerRadius: 0.85,
107
- outerRadiusWhileHighlight: 0.9,
108
- // innerRadius: 0,
109
- // enterDuration: 800,
110
- startAngle: 0,
111
- endAngle: Math.PI * 2,
112
- labelCentroid: 2.1,
113
- // fontSize: 12,
114
- labelColorType: 'primary',
115
- labelFn: d => String(d.label),
116
- }
117
- DEFAULT_PIE_LABELS_PARAMS.labelFn.toString = () => `d => String(d.label)`
118
-
119
- export const DEFAULT_ROSE_PARAMS: RoseParams = {
120
- outerRadius: 0.85,
121
- padAngle: 0,
122
- strokeColorType: 'background',
123
- strokeWidth: 0,
124
- cornerRadius: 0,
125
- arcScaleType: 'area',
126
- angleIncreaseWhileHighlight: 0.05
127
- }
128
-
129
- export const DEFAULT_ROSE_LABELS_PARAMS: RoseLabelsParams = {
130
- outerRadius: 0.85,
131
- labelCentroid: 2.1,
132
- labelFn: d => String(d.label),
133
- labelColorType: 'primary',
134
- arcScaleType: 'area'
135
- }
136
- DEFAULT_ROSE_LABELS_PARAMS.labelFn.toString = () => `d => String(d.label)`
137
-
138
- export const DEFAULT_SERIES_LEGEND_PARAMS: SeriesLegendParams = {
139
- // position: 'right',
140
- // justify: 'end',
141
- placement: 'right-end',
142
- padding: 28,
143
- // offset: [0, 0],
144
- backgroundFill: 'none',
145
- backgroundStroke: 'none',
146
- gap: 10,
147
- listRectWidth: 14,
148
- listRectHeight: 14,
149
- listRectRadius: 0,
150
- // highlightEvent: false
151
- textColorType: 'primary'
152
- }
153
-
154
- export const DEFAULT_SERIES_TOOLTIP_PARAMS: SeriesTooltipParams = {
155
- backgroundColorType: 'background',
156
- strokeColorType: 'primary',
157
- backgroundOpacity: 0.8,
158
- textColorType: 'primary',
159
- offset: [20, 5],
160
- padding: 10,
161
- renderFn: (eventData, { styles, utils }) => {
162
- const hasSeriesLabel = eventData.seriesLabel.slice(0, 7) === 'series_' ? false : true
163
- const hasDatumLabel = eventData.datum.label.slice(0, 7) === 'series_' ? false : true
164
- const bulletWidth = styles.textSizePx * 0.7
165
- const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
166
- const seriesSvg = hasSeriesLabel
167
- ? `<rect width="${bulletWidth}" height="${bulletWidth}" x="${offset}" y="${offset - 1}" rx="${bulletWidth / 2}" fill="${eventData.datum.color}"></rect>
168
- <text x="${styles.textSizePx * 1.5}" font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
169
- <tspan>${eventData.seriesLabel}</tspan>
170
- </text>`
171
- : ''
172
- const datumLabelSvg = hasDatumLabel
173
- ? `<tspan>${eventData.datum.label}</tspan> `
174
- : ''
175
- const datumSvg = `<text font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
176
- ${datumLabelSvg}<tspan font-weight="bold">${eventData.datum.value}</tspan>
177
- </text>`
178
-
179
- return `${seriesSvg}
180
- <g ${hasSeriesLabel ? `transform="translate(0, ${styles.textSizePx * 2})"` : ''}>
181
- ${datumSvg}
182
- </g>`
183
- },
184
- }
185
- DEFAULT_SERIES_TOOLTIP_PARAMS.renderFn.toString = () => `(eventData, { styles, utils }) => {
186
- const hasSeriesLabel = eventData.seriesLabel.slice(0, 7) === 'series_' ? false : true
187
- const hasDatumLabel = eventData.datum.label.slice(0, 7) === 'series_' ? false : true
188
- const bulletWidth = styles.textSizePx * 0.7
189
- const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
190
- const seriesSvg = hasSeriesLabel
191
- ? \`<rect width="\${bulletWidth}" height="\${bulletWidth}" x="\${offset}" y="\${offset - 1}" rx="\${bulletWidth / 2}" fill="\${eventData.datum.color}"></rect>
192
- <text x="\${styles.textSizePx * 1.5}" font-size="\${styles.textSizePx}" dominant-baseline="hanging" fill="\${styles.textColor}">
193
- <tspan>\${eventData.seriesLabel}</tspan>
194
- </text>\`
195
- : ''
196
- const datumLabelSvg = hasDatumLabel
197
- ? \`<tspan>\${eventData.datum.label}</tspan> \`
198
- : ''
199
- const datumSvg = \`<text font-size="\${styles.textSizePx}" dominant-baseline="hanging" fill="\${styles.textColor}">
200
- \${datumLabelSvg}<tspan font-weight="bold">\${eventData.datum.value}</tspan>
201
- </text>\`
202
-
203
- return \`\${seriesSvg}
204
- <g \${hasSeriesLabel ? \`transform="translate(0, \${styles.textSizePx * 2})"\` : ''}>
205
- \${datumSvg}
206
- </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
+ bubbleText: {
21
+ fillRate: 0.6,
22
+ lineHeight: 12,
23
+ lineLengthMin: 4
24
+ },
25
+ // highlightRIncrease: 0,
26
+ arcScaleType: 'area'
27
+ }
28
+
29
+ export const DEFAULT_PIE_PARAMS: PieParams = {
30
+ // padding: {
31
+ // top: 50,
32
+ // right: 70,
33
+ // bottom: 50,
34
+ // left: 70
35
+ // },
36
+ outerRadius: 0.85,
37
+ innerRadius: 0,
38
+ outerRadiusWhileHighlight: 0.9,
39
+ // label?: LabelStyle
40
+ // enterDuration: 800,
41
+ startAngle: 0,
42
+ endAngle: Math.PI * 2,
43
+ padAngle: 0,
44
+ strokeColorType: 'background',
45
+ strokeWidth: 1,
46
+ // padRadius: 100,
47
+ cornerRadius: 0,
48
+ // highlightTarget: 'datum',
49
+ // highlightId: null,
50
+ // highlightLabel: null,
51
+ }
52
+
53
+ export const DEFAULT_PIE_EVENT_TEXTS_PARAMS: PieEventTextsParams = {
54
+ eventFn: (eventData: EventSeries, eventName: EventName, t: number) => {
55
+ if (eventName === 'mouseover' || eventName === 'mousemove') {
56
+ return [String(eventData.datum!.value)]
57
+ }
58
+ return [
59
+ String(
60
+ Math.round(
61
+ eventData.data.reduce((acc, seriesData) => {
62
+ return acc + seriesData.reduce((_acc, data) => {
63
+ return _acc + (data.value ?? 0)
64
+ }, 0)
65
+ }, 0) * t
66
+ )
67
+ )
68
+ ]
69
+ },
70
+ textAttrs: [
71
+ {
72
+ "transform": "translate(0, 0)"
73
+ }
74
+ ],
75
+ textStyles: [
76
+ {
77
+ "font-weight": "bold",
78
+ "text-anchor": "middle",
79
+ "pointer-events": "none",
80
+ "dominant-baseline": "middle",
81
+ "font-size": 64,
82
+ "fill": "#000"
83
+ }
84
+ ]
85
+ }
86
+ DEFAULT_PIE_EVENT_TEXTS_PARAMS.eventFn.toString = () => `(eventData: EventSeries, eventName: EventName, t: number) => {
87
+ if (eventName === 'mouseover' || eventName === 'mousemove') {
88
+ return [String(eventData.datum!.value)]
89
+ }
90
+ return [
91
+ String(
92
+ Math.round(
93
+ eventData.data.reduce((acc, seriesData) => {
94
+ return acc + seriesData.reduce((_acc, data) => {
95
+ return _acc + (data.value ?? 0)
96
+ }, 0)
97
+ }, 0) * t
98
+ )
99
+ )
100
+ ]
101
+ }`
102
+
103
+ export const DEFAULT_PIE_LABELS_PARAMS: PieLabelsParams = {
104
+ // solidColor: undefined,
105
+ // colors: DEFAULT_COLORS,
106
+ outerRadius: 0.85,
107
+ outerRadiusWhileHighlight: 0.9,
108
+ // innerRadius: 0,
109
+ // enterDuration: 800,
110
+ startAngle: 0,
111
+ endAngle: Math.PI * 2,
112
+ labelCentroid: 2.1,
113
+ // fontSize: 12,
114
+ labelColorType: 'primary',
115
+ labelFn: d => String(d.label),
116
+ }
117
+ DEFAULT_PIE_LABELS_PARAMS.labelFn.toString = () => `d => String(d.label)`
118
+
119
+ export const DEFAULT_ROSE_PARAMS: RoseParams = {
120
+ outerRadius: 0.85,
121
+ padAngle: 0,
122
+ strokeColorType: 'background',
123
+ strokeWidth: 0,
124
+ cornerRadius: 0,
125
+ arcScaleType: 'area',
126
+ angleIncreaseWhileHighlight: 0.05
127
+ }
128
+
129
+ export const DEFAULT_ROSE_LABELS_PARAMS: RoseLabelsParams = {
130
+ outerRadius: 0.85,
131
+ labelCentroid: 2.1,
132
+ labelFn: d => String(d.label),
133
+ labelColorType: 'primary',
134
+ arcScaleType: 'area'
135
+ }
136
+ DEFAULT_ROSE_LABELS_PARAMS.labelFn.toString = () => `d => String(d.label)`
137
+
138
+ export const DEFAULT_SERIES_LEGEND_PARAMS: SeriesLegendParams = {
139
+ // position: 'right',
140
+ // justify: 'end',
141
+ placement: 'right-end',
142
+ padding: 28,
143
+ // offset: [0, 0],
144
+ backgroundFill: 'none',
145
+ backgroundStroke: 'none',
146
+ gap: 10,
147
+ listRectWidth: 14,
148
+ listRectHeight: 14,
149
+ listRectRadius: 0,
150
+ // highlightEvent: false
151
+ textColorType: 'primary'
152
+ }
153
+
154
+ export const DEFAULT_SERIES_TOOLTIP_PARAMS: SeriesTooltipParams = {
155
+ backgroundColorType: 'background',
156
+ strokeColorType: 'primary',
157
+ backgroundOpacity: 0.8,
158
+ textColorType: 'primary',
159
+ offset: [20, 5],
160
+ padding: 10,
161
+ renderFn: (eventData, { styles, utils }) => {
162
+ const hasSeriesLabel = eventData.seriesLabel.slice(0, 7) === 'series_' ? false : true
163
+ const hasDatumLabel = eventData.datum.label.slice(0, 7) === 'series_' ? false : true
164
+ const bulletWidth = styles.textSizePx * 0.7
165
+ const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
166
+ const seriesSvg = hasSeriesLabel
167
+ ? `<rect width="${bulletWidth}" height="${bulletWidth}" x="${offset}" y="${offset - 1}" rx="${bulletWidth / 2}" fill="${eventData.datum.color}"></rect>
168
+ <text x="${styles.textSizePx * 1.5}" font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
169
+ <tspan>${eventData.seriesLabel}</tspan>
170
+ </text>`
171
+ : ''
172
+ const datumLabelSvg = hasDatumLabel
173
+ ? `<tspan>${eventData.datum.label}</tspan> `
174
+ : ''
175
+ const datumSvg = `<text font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
176
+ ${datumLabelSvg}<tspan font-weight="bold">${eventData.datum.value}</tspan>
177
+ </text>`
178
+
179
+ return `${seriesSvg}
180
+ <g ${hasSeriesLabel ? `transform="translate(0, ${styles.textSizePx * 2})"` : ''}>
181
+ ${datumSvg}
182
+ </g>`
183
+ },
184
+ }
185
+ DEFAULT_SERIES_TOOLTIP_PARAMS.renderFn.toString = () => `(eventData, { styles, utils }) => {
186
+ const hasSeriesLabel = eventData.seriesLabel.slice(0, 7) === 'series_' ? false : true
187
+ const hasDatumLabel = eventData.datum.label.slice(0, 7) === 'series_' ? false : true
188
+ const bulletWidth = styles.textSizePx * 0.7
189
+ const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
190
+ const seriesSvg = hasSeriesLabel
191
+ ? \`<rect width="\${bulletWidth}" height="\${bulletWidth}" x="\${offset}" y="\${offset - 1}" rx="\${bulletWidth / 2}" fill="\${eventData.datum.color}"></rect>
192
+ <text x="\${styles.textSizePx * 1.5}" font-size="\${styles.textSizePx}" dominant-baseline="hanging" fill="\${styles.textColor}">
193
+ <tspan>\${eventData.seriesLabel}</tspan>
194
+ </text>\`
195
+ : ''
196
+ const datumLabelSvg = hasDatumLabel
197
+ ? \`<tspan>\${eventData.datum.label}</tspan> \`
198
+ : ''
199
+ const datumSvg = \`<text font-size="\${styles.textSizePx}" dominant-baseline="hanging" fill="\${styles.textColor}">
200
+ \${datumLabelSvg}<tspan font-weight="bold">\${eventData.datum.value}</tspan>
201
+ </text>\`
202
+
203
+ return \`\${seriesSvg}
204
+ <g \${hasSeriesLabel ? \`transform="translate(0, \${styles.textSizePx * 2})"\` : ''}>
205
+ \${datumSvg}
206
+ </g>\`
207
207
  }`
@@ -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'