@orbcharts/plugins-basic 3.0.0-beta.8 → 3.0.0

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/dist/orbcharts-plugins-basic.es.js +13170 -10984
  2. package/dist/orbcharts-plugins-basic.umd.js +266 -98
  3. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseBars.d.ts +3 -3
  4. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseBarsTriangle.d.ts +3 -3
  5. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseDots.d.ts +3 -3
  6. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseLineAreas.d.ts +3 -3
  7. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseLines.d.ts +3 -3
  8. package/dist/src/base/BaseRacingBars.d.ts +23 -0
  9. package/dist/src/base/BaseRacingLabels.d.ts +20 -0
  10. package/dist/src/base/BaseRacingValueLabels.d.ts +20 -0
  11. package/dist/{orbcharts-plugins-basic/src/base/BaseStackedBar.d.ts → src/base/BaseStackedBars.d.ts} +7 -7
  12. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseValueAxis.d.ts +4 -7
  13. package/dist/src/base/BaseXAxis.d.ts +20 -0
  14. package/dist/src/base/BaseYAxis.d.ts +18 -0
  15. package/dist/{orbcharts-plugins-basic/src → src}/grid/defaults.d.ts +3 -3
  16. package/dist/{orbcharts-plugins-basic/src → src}/grid/gridObservables.d.ts +8 -1
  17. package/dist/{orbcharts-plugins-basic/src → src}/grid/index.d.ts +2 -2
  18. package/dist/src/grid/plugins/GroupZoom.d.ts +1 -0
  19. package/dist/src/grid/plugins/StackedBars.d.ts +1 -0
  20. package/dist/src/index.d.ts +7 -1
  21. package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/defaults.d.ts +2 -2
  22. package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/index.d.ts +1 -1
  23. package/dist/src/multiGrid/plugins/MultiStackedBars.d.ts +1 -0
  24. package/dist/src/multiValue/defaults.d.ts +13 -0
  25. package/dist/{orbcharts-plugins-basic/src → src}/multiValue/index.d.ts +5 -1
  26. package/dist/src/multiValue/multiValueObservables.d.ts +56 -0
  27. package/dist/src/multiValue/plugins/RacingBars.d.ts +1 -0
  28. package/dist/src/multiValue/plugins/RacingCounterTexts.d.ts +3 -0
  29. package/dist/src/multiValue/plugins/RacingValueAxis.d.ts +1 -0
  30. package/dist/src/multiValue/plugins/XAxis.d.ts +1 -0
  31. package/dist/src/multiValue/plugins/XYAxes.d.ts +1 -0
  32. package/dist/src/multiValue/plugins/XZoom.d.ts +1 -0
  33. package/dist/{orbcharts-plugins-basic/src → src}/relationship/defaults.d.ts +2 -1
  34. package/dist/{orbcharts-plugins-basic/src → src}/relationship/index.d.ts +1 -0
  35. package/dist/src/relationship/plugins/ForceDirectedBubbles.d.ts +3 -0
  36. package/dist/{orbcharts-plugins-basic/src → src}/utils/commonUtils.d.ts +1 -0
  37. package/dist/{orbcharts-plugins-basic/src → src}/utils/d3Graphics.d.ts +2 -1
  38. package/dist/{orbcharts-plugins-basic/src → src}/utils/d3Utils.d.ts +1 -0
  39. package/lib/core.ts +1 -1
  40. package/package.json +4 -4
  41. package/src/base/BaseBars.ts +15 -15
  42. package/src/base/BaseBarsTriangle.ts +15 -15
  43. package/src/base/BaseDots.ts +14 -14
  44. package/src/base/BaseGroupAxis.ts +18 -6
  45. package/src/base/BaseLineAreas.ts +12 -12
  46. package/src/base/BaseLines.ts +11 -11
  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} +26 -26
  51. package/src/base/BaseTooltip.ts +2 -1
  52. package/src/base/BaseValueAxis.ts +70 -53
  53. package/src/base/BaseXAxis.ts +427 -0
  54. package/src/base/BaseYAxis.ts +389 -0
  55. package/src/grid/defaults.ts +44 -77
  56. package/src/grid/gridObservables.ts +58 -0
  57. package/src/grid/index.ts +2 -2
  58. package/src/grid/plugins/Bars.ts +2 -2
  59. package/src/grid/plugins/BarsPN.ts +2 -2
  60. package/src/grid/plugins/BarsTriangle.ts +2 -2
  61. package/src/grid/plugins/Dots.ts +2 -2
  62. package/src/grid/plugins/GridLegend.ts +7 -7
  63. package/src/grid/plugins/GroupAux.ts +41 -24
  64. package/src/grid/plugins/GroupAxis.ts +0 -24
  65. package/src/grid/plugins/{GridZoom.ts → GroupZoom.ts} +5 -5
  66. package/src/grid/plugins/LineAreas.ts +2 -2
  67. package/src/grid/plugins/Lines.ts +2 -2
  68. package/src/grid/plugins/{StackedBar.ts → StackedBars.ts} +9 -9
  69. package/src/multiGrid/defaults.ts +44 -24
  70. package/src/multiGrid/index.ts +1 -1
  71. package/src/multiGrid/multiGridObservables.ts +1 -0
  72. package/src/multiGrid/plugins/MultiBars.ts +3 -3
  73. package/src/multiGrid/plugins/MultiBarsTriangle.ts +3 -3
  74. package/src/multiGrid/plugins/MultiDots.ts +3 -3
  75. package/src/multiGrid/plugins/MultiGridLegend.ts +20 -10
  76. package/src/multiGrid/plugins/MultiLineAreas.ts +3 -3
  77. package/src/multiGrid/plugins/MultiLines.ts +3 -3
  78. package/src/multiGrid/plugins/{MultiStackedBar.ts → MultiStackedBars.ts} +10 -10
  79. package/src/multiGrid/plugins/OverlappingStackedValueAxes.ts +1 -0
  80. package/src/multiValue/defaults.ts +277 -12
  81. package/src/multiValue/index.ts +5 -1
  82. package/src/multiValue/multiValueObservables.ts +414 -44
  83. package/src/multiValue/plugins/OrdinalXAxis.ts +0 -0
  84. package/src/multiValue/plugins/RacingBars.ts +373 -0
  85. package/src/multiValue/plugins/RacingCounterAxis.ts +0 -0
  86. package/src/multiValue/plugins/RacingCounterTexts.ts +300 -0
  87. package/src/multiValue/plugins/RacingValueAxis.ts +115 -0
  88. package/src/multiValue/plugins/RankingAxis_legacy.ts +109 -0
  89. package/src/multiValue/plugins/Scatter.ts +13 -13
  90. package/src/multiValue/plugins/ScatterBubbles.ts +13 -13
  91. package/src/multiValue/plugins/XAxis.ts +108 -0
  92. package/src/multiValue/plugins/XYAux.ts +15 -14
  93. package/src/multiValue/plugins/XYAxes.ts +38 -528
  94. package/src/multiValue/plugins/XYAxes_legacy.ts +684 -0
  95. package/src/multiValue/plugins/{XYZoom.ts → XZoom.ts} +17 -17
  96. package/src/relationship/defaults.ts +129 -20
  97. package/src/relationship/index.ts +1 -0
  98. package/src/relationship/plugins/ForceDirected.ts +113 -87
  99. package/src/relationship/plugins/ForceDirectedBubbles.ts +1412 -0
  100. package/src/series/defaults.ts +52 -37
  101. package/src/series/plugins/Bubbles.ts +71 -39
  102. package/src/series/plugins/Pie.ts +5 -5
  103. package/src/series/plugins/PieEventTexts.ts +3 -3
  104. package/src/series/plugins/PieLabels.ts +5 -5
  105. package/src/series/plugins/Rose.ts +11 -11
  106. package/src/series/plugins/RoseLabels.ts +9 -9
  107. package/src/tree/defaults.ts +46 -22
  108. package/src/tree/plugins/TreeMap.ts +11 -3
  109. package/src/utils/commonUtils.ts +10 -1
  110. package/src/utils/d3Graphics.ts +4 -2
  111. package/src/utils/d3Utils.ts +18 -0
  112. package/src/utils/orbchartsUtils.ts +30 -16
  113. package/dist/orbcharts-plugins-basic/src/grid/plugins/GridZoom.d.ts +0 -1
  114. package/dist/orbcharts-plugins-basic/src/grid/plugins/StackedBar.d.ts +0 -1
  115. package/dist/orbcharts-plugins-basic/src/index.d.ts +0 -7
  116. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiStackedBar.d.ts +0 -1
  117. package/dist/orbcharts-plugins-basic/src/multiValue/defaults.d.ts +0 -9
  118. package/dist/orbcharts-plugins-basic/src/multiValue/multiValueObservables.d.ts +0 -33
  119. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/XYZoom.d.ts +0 -1
  120. /package/dist/{orbcharts-plugins-basic/lib → lib}/core-types.d.ts +0 -0
  121. /package/dist/{orbcharts-plugins-basic/lib → lib}/core.d.ts +0 -0
  122. /package/dist/{orbcharts-plugins-basic/lib → lib}/plugins-basic-types.d.ts +0 -0
  123. /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseGroupAxis.d.ts +0 -0
  124. /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseLegend.d.ts +0 -0
  125. /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseTooltip.d.ts +0 -0
  126. /package/dist/{orbcharts-plugins-basic/src → src}/base/types.d.ts +0 -0
  127. /package/dist/{orbcharts-plugins-basic/src → src}/const.d.ts +0 -0
  128. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/Bars.d.ts +0 -0
  129. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/BarsPN.d.ts +0 -0
  130. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/BarsTriangle.d.ts +0 -0
  131. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/Dots.d.ts +0 -0
  132. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GridLegend.d.ts +0 -0
  133. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GridTooltip.d.ts +0 -0
  134. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GroupAux.d.ts +0 -0
  135. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GroupAxis.d.ts +0 -0
  136. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/LineAreas.d.ts +0 -0
  137. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/Lines.d.ts +0 -0
  138. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/StackedValueAxis.d.ts +0 -0
  139. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/ValueAxis.d.ts +0 -0
  140. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/multiGridObservables.d.ts +0 -0
  141. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiBars.d.ts +0 -0
  142. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiBarsTriangle.d.ts +0 -0
  143. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiDots.d.ts +0 -0
  144. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiGridLegend.d.ts +0 -0
  145. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiGridTooltip.d.ts +0 -0
  146. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiGroupAxis.d.ts +0 -0
  147. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiLineAreas.d.ts +0 -0
  148. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiLines.d.ts +0 -0
  149. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiStackedValueAxis.d.ts +0 -0
  150. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiValueAxis.d.ts +0 -0
  151. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/OverlappingStackedValueAxes.d.ts +0 -0
  152. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/OverlappingValueAxes.d.ts +0 -0
  153. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/MultiValueLegend.d.ts +0 -0
  154. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/MultiValueTooltip.d.ts +0 -0
  155. /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/Ranking.d.ts → src/multiValue/plugins/OrdinalBubbles.d.ts} +0 -0
  156. /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/RankingAxis.d.ts → src/multiValue/plugins/OrdinalXAxis.d.ts} +0 -0
  157. /package/dist/{orbcharts-plugins-basic/src/noneData/plugins/Container.d.ts → src/multiValue/plugins/RacingCounterAxis.d.ts} +0 -0
  158. /package/dist/{orbcharts-plugins-basic/src/noneData/plugins/Tooltip.d.ts → src/multiValue/plugins/RankingAxis_legacy.d.ts} +0 -0
  159. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/Scatter.d.ts +0 -0
  160. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/ScatterBubbles.d.ts +0 -0
  161. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/XYAux.d.ts +0 -0
  162. /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/XYAxes.d.ts → src/multiValue/plugins/XYAxes_legacy.d.ts} +0 -0
  163. /package/dist/{orbcharts-plugins-basic/src → src}/noneData/defaults.d.ts +0 -0
  164. /package/dist/{orbcharts-plugins-basic/src → src}/noneData/index.d.ts +0 -0
  165. /package/dist/{orbcharts-plugins-basic/src/relationship/plugins/ForceDirectedBubbles.d.ts → src/noneData/plugins/Container.d.ts} +0 -0
  166. /package/dist/{orbcharts-plugins-basic/src/series/plugins/Waffle.d.ts → src/noneData/plugins/Tooltip.d.ts} +0 -0
  167. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/ForceDirected.d.ts +0 -0
  168. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/RelationshipLegend.d.ts +0 -0
  169. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/RelationshipTooltip.d.ts +0 -0
  170. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/relationshipObservables.d.ts +0 -0
  171. /package/dist/{orbcharts-plugins-basic/src → src}/series/defaults.d.ts +0 -0
  172. /package/dist/{orbcharts-plugins-basic/src → src}/series/index.d.ts +0 -0
  173. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/Bubbles.d.ts +0 -0
  174. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/Pie.d.ts +0 -0
  175. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/PieEventTexts.d.ts +0 -0
  176. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/PieLabels.d.ts +0 -0
  177. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/Rose.d.ts +0 -0
  178. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/RoseLabels.d.ts +0 -0
  179. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/SeriesLegend.d.ts +0 -0
  180. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/SeriesTooltip.d.ts +0 -0
  181. /package/{src/multiValue/plugins/Ranking.ts → dist/src/series/plugins/Waffle.d.ts} +0 -0
  182. /package/dist/{orbcharts-plugins-basic/src → src}/series/seriesObservables.d.ts +0 -0
  183. /package/dist/{orbcharts-plugins-basic/src → src}/series/seriesUtils.d.ts +0 -0
  184. /package/dist/{orbcharts-plugins-basic/src → src}/tree/defaults.d.ts +0 -0
  185. /package/dist/{orbcharts-plugins-basic/src → src}/tree/index.d.ts +0 -0
  186. /package/dist/{orbcharts-plugins-basic/src → src}/tree/plugins/TreeLegend.d.ts +0 -0
  187. /package/dist/{orbcharts-plugins-basic/src → src}/tree/plugins/TreeMap.d.ts +0 -0
  188. /package/dist/{orbcharts-plugins-basic/src → src}/tree/plugins/TreeTooltip.d.ts +0 -0
  189. /package/dist/{orbcharts-plugins-basic/src → src}/utils/observables.d.ts +0 -0
  190. /package/dist/{orbcharts-plugins-basic/src → src}/utils/orbchartsUtils.d.ts +0 -0
  191. /package/dist/{orbcharts-plugins-basic/vite.config.d.ts → vite.config.d.ts} +0 -0
  192. /package/src/multiValue/plugins/{RankingAxis.ts → OrdinalBubbles.ts} +0 -0
@@ -13,16 +13,16 @@ import type { DefinePluginConfig } from '../../../lib/core-types'
13
13
  import type { DataFormatterMultiValue } from '../../../lib/core-types'
14
14
  import {
15
15
  defineMultiValuePlugin, createValueToAxisScale } from '../../../lib/core'
16
- import { DEFAULT_X_Y_ZOOM_PARAMS } from '../defaults'
16
+ import { DEFAULT_X_ZOOM_PARAMS } from '../defaults'
17
17
  import { getClassName, getUniID } from '../../utils/orbchartsUtils'
18
18
  import { LAYER_INDEX_OF_ROOT } from '../../const'
19
19
 
20
- const pluginName = 'XYZoom'
20
+ const pluginName = 'XZoom'
21
21
  const rectClassName = getClassName(pluginName, 'rect')
22
22
 
23
- const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_X_Y_ZOOM_PARAMS> = {
23
+ const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_X_ZOOM_PARAMS> = {
24
24
  name: pluginName,
25
- defaultParams: DEFAULT_X_Y_ZOOM_PARAMS,
25
+ defaultParams: DEFAULT_X_ZOOM_PARAMS,
26
26
  layerIndex: LAYER_INDEX_OF_ROOT,
27
27
  validator: (params, { validateColumns }) => {
28
28
  return {
@@ -33,7 +33,7 @@ const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_X_Y_ZOO
33
33
  }
34
34
  }
35
35
 
36
- export const XYZoom = defineMultiValuePlugin(pluginConfig)(({ selection, rootSelection, name, observer, subject }) => {
36
+ export const XZoom = defineMultiValuePlugin(pluginConfig)(({ selection, rootSelection, name, observer, subject }) => {
37
37
 
38
38
  const destroy$ = new Subject()
39
39
 
@@ -119,15 +119,15 @@ export const XYZoom = defineMultiValuePlugin(pluginConfig)(({ selection, rootSel
119
119
  combineLatest({
120
120
  initXAxis: initXAxis$,
121
121
  layout: observer.layout$,
122
- minMaxXY: observer.minMaxXY$
122
+ xyMinMax: observer.xyMinMax$
123
123
  }).pipe(
124
124
  takeUntil(destroy$),
125
125
  switchMap(async (d) => d),
126
126
  ).subscribe(data => {
127
127
 
128
128
  const xScale: d3.ScaleLinear<number, number> = createValueToAxisScale({
129
- maxValue: data.minMaxXY.maxX,
130
- minValue: data.minMaxXY.minX,
129
+ maxValue: data.xyMinMax.maxX,
130
+ minValue: data.xyMinMax.minX,
131
131
  axisWidth: data.layout.width,
132
132
  scaleDomain: data.initXAxis.scaleDomain,
133
133
  scaleRange: data.initXAxis.scaleRange,
@@ -141,15 +141,15 @@ export const XYZoom = defineMultiValuePlugin(pluginConfig)(({ selection, rootSel
141
141
  combineLatest({
142
142
  initYAxis: initYAxis$,
143
143
  layout: observer.layout$,
144
- minMaxXY: observer.minMaxXY$
144
+ xyMinMax: observer.xyMinMax$
145
145
  }).pipe(
146
146
  takeUntil(destroy$),
147
147
  switchMap(async (d) => d),
148
148
  ).subscribe(data => {
149
149
 
150
150
  const yScale: d3.ScaleLinear<number, number> = createValueToAxisScale({
151
- maxValue: data.minMaxXY.maxY,
152
- minValue: data.minMaxXY.minY,
151
+ maxValue: data.xyMinMax.maxY,
152
+ minValue: data.xyMinMax.minY,
153
153
  axisWidth: data.layout.height,
154
154
  scaleDomain: data.initYAxis.scaleDomain,
155
155
  scaleRange: data.initYAxis.scaleRange,
@@ -163,15 +163,15 @@ export const XYZoom = defineMultiValuePlugin(pluginConfig)(({ selection, rootSel
163
163
  const minMaxScaleDomain$ = combineLatest({
164
164
  initXAxis: initXAxis$,
165
165
  initYAxis: initYAxis$,
166
- minMaxXY: observer.minMaxXY$
166
+ xyMinMax: observer.xyMinMax$
167
167
  }).pipe(
168
168
  takeUntil(destroy$),
169
169
  switchMap(async (d) => d),
170
170
  map(data => {
171
- let minX = data.minMaxXY.minX
172
- let maxX = data.minMaxXY.maxX
173
- let minY = data.minMaxXY.minY
174
- let maxY = data.minMaxXY.maxY
171
+ let minX = data.xyMinMax.minX
172
+ let maxX = data.xyMinMax.maxX
173
+ let minY = data.xyMinMax.minY
174
+ let maxY = data.xyMinMax.maxY
175
175
 
176
176
  // 原始設定為auto時要額外判斷
177
177
  if (data.initXAxis.scaleDomain[0] === 'auto' && minX > 0) {
@@ -202,7 +202,7 @@ export const XYZoom = defineMultiValuePlugin(pluginConfig)(({ selection, rootSel
202
202
  // fullDataFormatter: fullDataFormatter$.pipe(first()), // 只用第一次資料來計算scale才不會造成每次變動都受到影響
203
203
  fullDataFormatter: observer.fullDataFormatter$,
204
204
  // groupMax: groupMax$,
205
- // minMaxXY: observer.minMaxXY$,
205
+ // xyMinMax: observer.xyMinMax$,
206
206
  minMaxScaleDomain: minMaxScaleDomain$,
207
207
  // layout: observer.layout$,
208
208
  // axisSize: observer.gridAxesSize$
@@ -1,30 +1,56 @@
1
1
  import type {
2
2
  ForceDirectedParams,
3
+ ForceDirectedBubblesParams,
3
4
  RelationshipLegendParams,
4
5
  RelationshipTooltipParams
5
6
  } from '../../lib/plugins-basic-types'
6
7
 
7
8
 
8
9
  export const DEFAULT_FORCE_DIRECTED_PARAMS: ForceDirectedParams = {
9
- node: {
10
- dotRadius: 10,
11
- dotFillColorType: 'label',
12
- dotStrokeColorType: 'label',
13
- dotStrokeWidth: 1,
14
- dotStyleFn: (node) => '',
15
- labelColorType: 'primary',
16
- labelSizeFixed: false,
17
- labelStyleFn: (node) => 'text-shadow:0 1px 0 #fff, 1px 0 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff'
10
+ // node: {
11
+ // dotRadius: 10,
12
+ // dotFillColorType: 'label',
13
+ // dotStrokeColorType: 'label',
14
+ // dotStrokeWidth: 1,
15
+ // dotStyleFn: (node) => '',
16
+ // labelColorType: 'primary',
17
+ // labelSizeFixed: false,
18
+ // labelStyleFn: (node) => 'text-shadow:0 1px 0 #fff, 1px 0 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff'
19
+ // },
20
+ // edge: {
21
+ // arrowColorType: 'primary',
22
+ // arrowStrokeWidth: 1.5,
23
+ // arrowWidth: 5,
24
+ // arrowHeight: 5,
25
+ // arrowStyleFn: (node) => '',
26
+ // labelColorType: 'secondary',
27
+ // labelSizeFixed: false,
28
+ // labelStyleFn: (node) => ''
29
+ // },
30
+ dot: {
31
+ radius: 10,
32
+ fillColorType: 'label',
33
+ strokeColorType: 'label',
34
+ strokeWidth: 1,
35
+ styleFn: (node) => '',
18
36
  },
19
- edge: {
20
- arrowColorType: 'primary',
21
- arrowStrokeWidth: 1.5,
22
- arrowWidth: 5,
23
- arrowHeight: 5,
24
- arrowStyleFn: (node) => '',
25
- labelColorType: 'secondary',
26
- labelSizeFixed: false,
27
- labelStyleFn: (node) => ''
37
+ dotLabel: {
38
+ colorType: 'primary',
39
+ sizeFixed: false,
40
+ // styleFn: (node) => 'text-shadow:0 1px 0 #fff, 1px 0 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff'
41
+ styleFn: (node) => ''
42
+ },
43
+ arrow: {
44
+ colorType: 'primary',
45
+ strokeWidth: 1.5,
46
+ pointerWidth: 5,
47
+ pointerHeight: 5,
48
+ styleFn: (node) => '',
49
+ },
50
+ arrowLabel: {
51
+ colorType: 'primary',
52
+ sizeFixed: false,
53
+ styleFn: (node) => ''
28
54
  },
29
55
  force: {
30
56
  nodeStrength: -500, // 泡泡引力
@@ -44,6 +70,65 @@ export const DEFAULT_FORCE_DIRECTED_PARAMS: ForceDirectedParams = {
44
70
  max: Infinity
45
71
  }
46
72
  }
73
+ DEFAULT_FORCE_DIRECTED_PARAMS.dot.styleFn.toString = () => `(node) => ''`
74
+ DEFAULT_FORCE_DIRECTED_PARAMS.dotLabel.styleFn.toString = () => `(node) => ''`
75
+ DEFAULT_FORCE_DIRECTED_PARAMS.arrow.styleFn.toString = () => `(edge) => ''`
76
+ DEFAULT_FORCE_DIRECTED_PARAMS.arrowLabel.styleFn.toString = () => `(edge) => ''`
77
+
78
+ export const DEFAULT_FORCE_DIRECTED_BUBBLES_PARAMS: ForceDirectedBubblesParams = {
79
+ bubble: {
80
+ radiusMin: 15,
81
+ radiusMax: 45,
82
+ arcScaleType: 'area',
83
+ fillColorType: 'label',
84
+ strokeColorType: 'label',
85
+ strokeWidth: 1,
86
+ styleFn: (node) => '',
87
+ },
88
+ bubbleLabel: {
89
+ fillRate: 0.9,
90
+ lineHeight: 1,
91
+ maxLineLength: 6,
92
+ wordBreakAll: true,
93
+ colorType: 'labelContrast',
94
+ styleFn: (node) => ''
95
+ },
96
+ arrow: {
97
+ colorType: 'primary',
98
+ strokeWidthMin: 1.5,
99
+ strokeWidthMax: 4.5,
100
+ pointerWidth: 5,
101
+ pointerHeight: 5,
102
+ styleFn: (node) => '',
103
+ },
104
+ arrowLabel: {
105
+ colorType: 'primary',
106
+ sizeFixed: false,
107
+ styleFn: (node) => ''
108
+ },
109
+ force: {
110
+ nodeStrength: -500, // 泡泡引力
111
+ linkDistance: 130, // 連結長度
112
+ velocityDecay: 0.1, // 衰減數
113
+ alphaDecay: 0.05
114
+ // collisionSpacing: 2 // 泡泡間距
115
+ },
116
+ zoomable: true,
117
+ transform: {
118
+ x: 0,
119
+ y: 0,
120
+ k: 1
121
+ },
122
+ scaleExtent: {
123
+ min: 0,
124
+ max: Infinity
125
+ }
126
+ }
127
+ DEFAULT_FORCE_DIRECTED_BUBBLES_PARAMS.bubble.styleFn.toString = () => `(node) => ''`
128
+ DEFAULT_FORCE_DIRECTED_BUBBLES_PARAMS.bubbleLabel.styleFn.toString = () => `(node) => ''`
129
+ DEFAULT_FORCE_DIRECTED_BUBBLES_PARAMS.arrow.styleFn.toString = () => `(edge) => ''`
130
+ DEFAULT_FORCE_DIRECTED_BUBBLES_PARAMS.arrowLabel.styleFn.toString = () => `(edge) => ''`
131
+
47
132
 
48
133
  export const DEFAULT_RELATIONSHIP_LEGEND_PARAMS: RelationshipLegendParams = {
49
134
  placement: 'right-end',
@@ -67,6 +152,7 @@ export const DEFAULT_RELATIONSHIP_TOOLTIP_PARAMS: RelationshipTooltipParams = {
67
152
  renderFn: (eventData, { styles, utils }) => {
68
153
  const hasCategoryLabel = eventData.categoryLabel ? true : false
69
154
  const hasDatumLabel = eventData.datum.label ? true : false
155
+ const valueText = utils.toCurrency(eventData.datum.value)
70
156
  const bulletWidth = styles.textSizePx * 0.7
71
157
  const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
72
158
  const categorySvg = hasCategoryLabel
@@ -78,8 +164,19 @@ export const DEFAULT_RELATIONSHIP_TOOLTIP_PARAMS: RelationshipTooltipParams = {
78
164
  const datumLabelSvg = hasDatumLabel
79
165
  ? `<tspan>${eventData.datum.label}</tspan> `
80
166
  : ''
167
+ const categoryLabelTextWidth = hasCategoryLabel
168
+ ? utils.measureTextWidth(`${eventData.categoryLabel}${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(categoryLabelTextWidth, datumLabelTextWidth)
174
+ const lineEndX = hasDatumLabel
175
+ ? maxTextWidth + styles.textSizePx * 0.5
176
+ : 0
177
+ const valueTextAnchor = hasDatumLabel ? 'end' : 'start'
81
178
  const datumSvg = `<text font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
82
- ${datumLabelSvg}<tspan font-weight="bold">${eventData.datum.value}</tspan>
179
+ ${datumLabelSvg}<tspan font-weight="bold" text-anchor="${valueTextAnchor}" x="${lineEndX}">${valueText}</tspan>
83
180
  </text>`
84
181
 
85
182
  return `${categorySvg}
@@ -91,6 +188,7 @@ export const DEFAULT_RELATIONSHIP_TOOLTIP_PARAMS: RelationshipTooltipParams = {
91
188
  DEFAULT_RELATIONSHIP_TOOLTIP_PARAMS.renderFn.toString = () => `(eventData, { styles, utils }) => {
92
189
  const hasCategoryLabel = eventData.categoryLabel ? true : false
93
190
  const hasDatumLabel = eventData.datum.label ? true : false
191
+ const valueText = utils.toCurrency(eventData.datum.value)
94
192
  const bulletWidth = styles.textSizePx * 0.7
95
193
  const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
96
194
  const categorySvg = hasCategoryLabel
@@ -102,8 +200,19 @@ DEFAULT_RELATIONSHIP_TOOLTIP_PARAMS.renderFn.toString = () => `(eventData, { sty
102
200
  const datumLabelSvg = hasDatumLabel
103
201
  ? \`<tspan>\${eventData.datum.label}</tspan> \`
104
202
  : ''
203
+ const categoryLabelTextWidth = hasCategoryLabel
204
+ ? utils.measureTextWidth(\`\${eventData.categoryLabel}\${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(categoryLabelTextWidth, datumLabelTextWidth)
210
+ const lineEndX = hasDatumLabel
211
+ ? maxTextWidth + styles.textSizePx * 0.5
212
+ : 0
213
+ const valueTextAnchor = hasDatumLabel ? 'end' : 'start'
105
214
  const datumSvg = \`<text font-size="\${styles.textSizePx}" dominant-baseline="hanging" fill="\${styles.textColor}">
106
- \${datumLabelSvg}<tspan font-weight="bold">\${eventData.datum.value}</tspan>
215
+ \${datumLabelSvg}<tspan font-weight="bold" text-anchor="\${valueTextAnchor}" x="\${lineEndX}">\${valueText}</tspan>
107
216
  </text>\`
108
217
 
109
218
  return \`\${categorySvg}
@@ -1,4 +1,5 @@
1
1
  export * from './defaults'
2
2
  export { ForceDirected } from './plugins/ForceDirected'
3
+ export { ForceDirectedBubbles } from './plugins/ForceDirectedBubbles'
3
4
  export { RelationshipLegend } from './plugins/RelationshipLegend'
4
5
  export { RelationshipTooltip } from './plugins/RelationshipTooltip'