@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.
- package/dist/orbcharts-plugins-basic.es.js +13170 -10984
- package/dist/orbcharts-plugins-basic.umd.js +266 -98
- package/dist/{orbcharts-plugins-basic/src → src}/base/BaseBars.d.ts +3 -3
- package/dist/{orbcharts-plugins-basic/src → src}/base/BaseBarsTriangle.d.ts +3 -3
- package/dist/{orbcharts-plugins-basic/src → src}/base/BaseDots.d.ts +3 -3
- package/dist/{orbcharts-plugins-basic/src → src}/base/BaseLineAreas.d.ts +3 -3
- package/dist/{orbcharts-plugins-basic/src → src}/base/BaseLines.d.ts +3 -3
- package/dist/src/base/BaseRacingBars.d.ts +23 -0
- package/dist/src/base/BaseRacingLabels.d.ts +20 -0
- package/dist/src/base/BaseRacingValueLabels.d.ts +20 -0
- package/dist/{orbcharts-plugins-basic/src/base/BaseStackedBar.d.ts → src/base/BaseStackedBars.d.ts} +7 -7
- package/dist/{orbcharts-plugins-basic/src → src}/base/BaseValueAxis.d.ts +4 -7
- package/dist/src/base/BaseXAxis.d.ts +20 -0
- package/dist/src/base/BaseYAxis.d.ts +18 -0
- package/dist/{orbcharts-plugins-basic/src → src}/grid/defaults.d.ts +3 -3
- package/dist/{orbcharts-plugins-basic/src → src}/grid/gridObservables.d.ts +8 -1
- package/dist/{orbcharts-plugins-basic/src → src}/grid/index.d.ts +2 -2
- package/dist/src/grid/plugins/GroupZoom.d.ts +1 -0
- package/dist/src/grid/plugins/StackedBars.d.ts +1 -0
- package/dist/src/index.d.ts +7 -1
- package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/defaults.d.ts +2 -2
- package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/index.d.ts +1 -1
- package/dist/src/multiGrid/plugins/MultiStackedBars.d.ts +1 -0
- package/dist/src/multiValue/defaults.d.ts +13 -0
- package/dist/{orbcharts-plugins-basic/src → src}/multiValue/index.d.ts +5 -1
- package/dist/src/multiValue/multiValueObservables.d.ts +56 -0
- package/dist/src/multiValue/plugins/RacingBars.d.ts +1 -0
- package/dist/src/multiValue/plugins/RacingCounterTexts.d.ts +3 -0
- package/dist/src/multiValue/plugins/RacingValueAxis.d.ts +1 -0
- package/dist/src/multiValue/plugins/XAxis.d.ts +1 -0
- package/dist/src/multiValue/plugins/XYAxes.d.ts +1 -0
- package/dist/src/multiValue/plugins/XZoom.d.ts +1 -0
- package/dist/{orbcharts-plugins-basic/src → src}/relationship/defaults.d.ts +2 -1
- package/dist/{orbcharts-plugins-basic/src → src}/relationship/index.d.ts +1 -0
- package/dist/src/relationship/plugins/ForceDirectedBubbles.d.ts +3 -0
- package/dist/{orbcharts-plugins-basic/src → src}/utils/commonUtils.d.ts +1 -0
- package/dist/{orbcharts-plugins-basic/src → src}/utils/d3Graphics.d.ts +2 -1
- package/dist/{orbcharts-plugins-basic/src → src}/utils/d3Utils.d.ts +1 -0
- package/lib/core.ts +1 -1
- package/package.json +4 -4
- package/src/base/BaseBars.ts +15 -15
- package/src/base/BaseBarsTriangle.ts +15 -15
- package/src/base/BaseDots.ts +14 -14
- package/src/base/BaseGroupAxis.ts +18 -6
- package/src/base/BaseLineAreas.ts +12 -12
- package/src/base/BaseLines.ts +11 -11
- package/src/base/BaseRacingBars.ts +552 -0
- package/src/base/BaseRacingLabels.ts +396 -0
- package/src/base/BaseRacingValueLabels.ts +403 -0
- package/src/base/{BaseStackedBar.ts → BaseStackedBars.ts} +26 -26
- package/src/base/BaseTooltip.ts +2 -1
- package/src/base/BaseValueAxis.ts +70 -53
- package/src/base/BaseXAxis.ts +427 -0
- package/src/base/BaseYAxis.ts +389 -0
- package/src/grid/defaults.ts +44 -77
- package/src/grid/gridObservables.ts +58 -0
- package/src/grid/index.ts +2 -2
- package/src/grid/plugins/Bars.ts +2 -2
- package/src/grid/plugins/BarsPN.ts +2 -2
- package/src/grid/plugins/BarsTriangle.ts +2 -2
- package/src/grid/plugins/Dots.ts +2 -2
- package/src/grid/plugins/GridLegend.ts +7 -7
- package/src/grid/plugins/GroupAux.ts +41 -24
- package/src/grid/plugins/GroupAxis.ts +0 -24
- package/src/grid/plugins/{GridZoom.ts → GroupZoom.ts} +5 -5
- package/src/grid/plugins/LineAreas.ts +2 -2
- package/src/grid/plugins/Lines.ts +2 -2
- package/src/grid/plugins/{StackedBar.ts → StackedBars.ts} +9 -9
- package/src/multiGrid/defaults.ts +44 -24
- package/src/multiGrid/index.ts +1 -1
- package/src/multiGrid/multiGridObservables.ts +1 -0
- package/src/multiGrid/plugins/MultiBars.ts +3 -3
- package/src/multiGrid/plugins/MultiBarsTriangle.ts +3 -3
- package/src/multiGrid/plugins/MultiDots.ts +3 -3
- package/src/multiGrid/plugins/MultiGridLegend.ts +20 -10
- package/src/multiGrid/plugins/MultiLineAreas.ts +3 -3
- package/src/multiGrid/plugins/MultiLines.ts +3 -3
- package/src/multiGrid/plugins/{MultiStackedBar.ts → MultiStackedBars.ts} +10 -10
- package/src/multiGrid/plugins/OverlappingStackedValueAxes.ts +1 -0
- package/src/multiValue/defaults.ts +277 -12
- package/src/multiValue/index.ts +5 -1
- package/src/multiValue/multiValueObservables.ts +414 -44
- package/src/multiValue/plugins/OrdinalXAxis.ts +0 -0
- package/src/multiValue/plugins/RacingBars.ts +373 -0
- package/src/multiValue/plugins/RacingCounterAxis.ts +0 -0
- package/src/multiValue/plugins/RacingCounterTexts.ts +300 -0
- package/src/multiValue/plugins/RacingValueAxis.ts +115 -0
- package/src/multiValue/plugins/RankingAxis_legacy.ts +109 -0
- package/src/multiValue/plugins/Scatter.ts +13 -13
- package/src/multiValue/plugins/ScatterBubbles.ts +13 -13
- package/src/multiValue/plugins/XAxis.ts +108 -0
- package/src/multiValue/plugins/XYAux.ts +15 -14
- package/src/multiValue/plugins/XYAxes.ts +38 -528
- package/src/multiValue/plugins/XYAxes_legacy.ts +684 -0
- package/src/multiValue/plugins/{XYZoom.ts → XZoom.ts} +17 -17
- package/src/relationship/defaults.ts +129 -20
- package/src/relationship/index.ts +1 -0
- package/src/relationship/plugins/ForceDirected.ts +113 -87
- package/src/relationship/plugins/ForceDirectedBubbles.ts +1412 -0
- package/src/series/defaults.ts +52 -37
- package/src/series/plugins/Bubbles.ts +71 -39
- package/src/series/plugins/Pie.ts +5 -5
- package/src/series/plugins/PieEventTexts.ts +3 -3
- package/src/series/plugins/PieLabels.ts +5 -5
- package/src/series/plugins/Rose.ts +11 -11
- package/src/series/plugins/RoseLabels.ts +9 -9
- package/src/tree/defaults.ts +46 -22
- package/src/tree/plugins/TreeMap.ts +11 -3
- package/src/utils/commonUtils.ts +10 -1
- package/src/utils/d3Graphics.ts +4 -2
- package/src/utils/d3Utils.ts +18 -0
- package/src/utils/orbchartsUtils.ts +30 -16
- package/dist/orbcharts-plugins-basic/src/grid/plugins/GridZoom.d.ts +0 -1
- package/dist/orbcharts-plugins-basic/src/grid/plugins/StackedBar.d.ts +0 -1
- package/dist/orbcharts-plugins-basic/src/index.d.ts +0 -7
- package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiStackedBar.d.ts +0 -1
- package/dist/orbcharts-plugins-basic/src/multiValue/defaults.d.ts +0 -9
- package/dist/orbcharts-plugins-basic/src/multiValue/multiValueObservables.d.ts +0 -33
- package/dist/orbcharts-plugins-basic/src/multiValue/plugins/XYZoom.d.ts +0 -1
- /package/dist/{orbcharts-plugins-basic/lib → lib}/core-types.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/lib → lib}/core.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/lib → lib}/plugins-basic-types.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseGroupAxis.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseLegend.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseTooltip.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/base/types.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/const.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/Bars.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/BarsPN.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/BarsTriangle.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/Dots.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GridLegend.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GridTooltip.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GroupAux.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GroupAxis.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/LineAreas.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/Lines.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/StackedValueAxis.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/ValueAxis.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/multiGridObservables.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiBars.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiBarsTriangle.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiDots.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiGridLegend.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiGridTooltip.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiGroupAxis.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiLineAreas.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiLines.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiStackedValueAxis.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiValueAxis.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/OverlappingStackedValueAxes.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/OverlappingValueAxes.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/MultiValueLegend.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/MultiValueTooltip.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/Ranking.d.ts → src/multiValue/plugins/OrdinalBubbles.d.ts} +0 -0
- /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/RankingAxis.d.ts → src/multiValue/plugins/OrdinalXAxis.d.ts} +0 -0
- /package/dist/{orbcharts-plugins-basic/src/noneData/plugins/Container.d.ts → src/multiValue/plugins/RacingCounterAxis.d.ts} +0 -0
- /package/dist/{orbcharts-plugins-basic/src/noneData/plugins/Tooltip.d.ts → src/multiValue/plugins/RankingAxis_legacy.d.ts} +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/Scatter.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/ScatterBubbles.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/XYAux.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/XYAxes.d.ts → src/multiValue/plugins/XYAxes_legacy.d.ts} +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/noneData/defaults.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/noneData/index.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src/relationship/plugins/ForceDirectedBubbles.d.ts → src/noneData/plugins/Container.d.ts} +0 -0
- /package/dist/{orbcharts-plugins-basic/src/series/plugins/Waffle.d.ts → src/noneData/plugins/Tooltip.d.ts} +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/ForceDirected.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/RelationshipLegend.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/RelationshipTooltip.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/relationship/relationshipObservables.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/series/defaults.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/series/index.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/Bubbles.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/Pie.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/PieEventTexts.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/PieLabels.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/Rose.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/RoseLabels.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/SeriesLegend.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/SeriesTooltip.d.ts +0 -0
- /package/{src/multiValue/plugins/Ranking.ts → dist/src/series/plugins/Waffle.d.ts} +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/series/seriesObservables.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/series/seriesUtils.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/tree/defaults.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/tree/index.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/tree/plugins/TreeLegend.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/tree/plugins/TreeMap.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/tree/plugins/TreeTooltip.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/utils/observables.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/src → src}/utils/orbchartsUtils.d.ts +0 -0
- /package/dist/{orbcharts-plugins-basic/vite.config.d.ts → vite.config.d.ts} +0 -0
- /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 {
|
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 = '
|
20
|
+
const pluginName = 'XZoom'
|
21
21
|
const rectClassName = getClassName(pluginName, 'rect')
|
22
22
|
|
23
|
-
const pluginConfig: DefinePluginConfig<typeof pluginName, typeof
|
23
|
+
const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_X_ZOOM_PARAMS> = {
|
24
24
|
name: pluginName,
|
25
|
-
defaultParams:
|
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
|
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
|
-
|
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.
|
130
|
-
minValue: data.
|
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
|
-
|
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.
|
152
|
-
minValue: data.
|
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
|
-
|
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.
|
172
|
-
let maxX = data.
|
173
|
-
let minY = data.
|
174
|
-
let maxY = data.
|
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
|
-
//
|
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
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
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">${
|
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">\${
|
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'
|