@orbcharts/plugins-basic 3.0.0-alpha.42 → 3.0.0-alpha.44

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. package/dist/orbcharts-plugins-basic.es.js +6647 -6556
  2. package/dist/orbcharts-plugins-basic.umd.js +8 -8
  3. package/dist/src/base/BaseBarStack.d.ts +1 -1
  4. package/dist/src/base/BaseBars.d.ts +1 -1
  5. package/dist/src/base/BaseBarsTriangle.d.ts +1 -1
  6. package/dist/src/base/BaseDots.d.ts +1 -1
  7. package/dist/src/base/BaseLegend.d.ts +1 -0
  8. package/dist/src/base/BaseLineAreas.d.ts +1 -1
  9. package/dist/src/base/BaseLines.d.ts +1 -1
  10. package/dist/src/multiGrid/defaults.d.ts +2 -1
  11. package/dist/src/multiGrid/index.d.ts +1 -0
  12. package/dist/src/multiGrid/plugins/MultiLineAreas.d.ts +1 -0
  13. package/dist/src/multiGrid/types.d.ts +4 -4
  14. package/package.json +2 -2
  15. package/src/base/BaseBarStack.ts +4 -2
  16. package/src/base/BaseBars.ts +4 -2
  17. package/src/base/BaseBarsTriangle.ts +4 -2
  18. package/src/base/BaseDots.ts +6 -4
  19. package/src/base/BaseGroupAxis.ts +3 -3
  20. package/src/base/BaseLegend.ts +18 -13
  21. package/src/base/BaseLineAreas.ts +4 -7
  22. package/src/base/BaseLines.ts +4 -7
  23. package/src/base/BaseValueAxis.ts +3 -3
  24. package/src/grid/plugins/GridLegend.ts +2 -1
  25. package/src/grid/plugins/GroupAux.ts +7 -4
  26. package/src/multiGrid/defaults.ts +7 -0
  27. package/src/multiGrid/index.ts +1 -0
  28. package/src/multiGrid/multiGridObservables.ts +14 -3
  29. package/src/multiGrid/plugins/MultiGridLegend.ts +2 -1
  30. package/src/multiGrid/plugins/MultiLineAreas.ts +59 -0
  31. package/src/multiGrid/plugins/OverlappingValueAxes.ts +0 -1
  32. package/src/multiGrid/types.ts +5 -5
  33. package/src/noneData/plugins/Tooltip.ts +9 -3
  34. package/src/series/plugins/Bubbles.ts +4 -2
  35. package/src/series/plugins/Pie.ts +3 -1
  36. package/src/series/plugins/PieLabels.ts +4 -1
  37. package/src/series/plugins/SeriesLegend.ts +2 -1
  38. package/src/tree/plugins/TreeLegend.ts +2 -1
  39. package/src/tree/plugins/TreeMap.ts +11 -6
@@ -61,7 +61,6 @@ export const OverlappingValueAxes = defineMultiGridPlugin(pluginName, DEFAULT_OV
61
61
  } else if (fullDataFormatter.gridList[data.firstGridIndex].valueAxis.position === 'right') {
62
62
  reversePosition = 'left'
63
63
  }
64
- console.log('reversePosition', reversePosition)
65
64
  return <DataFormatterGrid>{
66
65
  type: 'grid',
67
66
  grid: {
@@ -2,17 +2,13 @@ import type { BaseBarsParams } from '../base/BaseBars'
2
2
  import type { BaseBarStackParams } from '../base/BaseBarStack'
3
3
  import type { BaseBarsTriangleParams } from '../base/BaseBarsTriangle'
4
4
  import type { BaseLinesParams } from '../base/BaseLines'
5
+ import type { BaseLineAreasParams } from '../base/BaseLineAreas'
5
6
  import type { BaseDotsParams } from '../base/BaseDots'
6
7
  import type { BaseGroupAxisParams } from '../base/BaseGroupAxis'
7
8
  import type { BaseValueAxisParams } from '../base/BaseValueAxis'
8
9
  import type {
9
10
  ChartParams, Layout, ColorType } from '@orbcharts/core'
10
11
 
11
- export interface BarsAndLinesParams {
12
- bars: BaseBarsParams
13
- lines: BaseLinesParams
14
- }
15
-
16
12
  export interface MultiGridLegendParams {
17
13
  position: 'top' | 'bottom' | 'left' | 'right'
18
14
  justify: 'start' | 'center' | 'end'
@@ -56,6 +52,10 @@ export interface MultiLinesParams extends BaseLinesParams {
56
52
  gridIndexes: number[]
57
53
  }
58
54
 
55
+ export interface MultiLineAreasParams extends BaseLineAreasParams {
56
+ gridIndexes: number[]
57
+ }
58
+
59
59
  export interface MultiDotsParams extends BaseDotsParams {
60
60
  gridIndexes: number[]
61
61
  }
@@ -17,6 +17,7 @@ import { defineNoneDataPlugin } from '@orbcharts/core'
17
17
  import { getSvgGElementSize, appendSvg } from '../../utils/d3Utils'
18
18
  import { getColor, getClassName } from '../../utils/orbchartsUtils'
19
19
  import { TOOLTIP_PARAMS } from '../defaults'
20
+ import { textSizePxObservable } from '@orbcharts/core'
20
21
 
21
22
  interface TooltipStyle {
22
23
  backgroundColor: string
@@ -25,7 +26,8 @@ interface TooltipStyle {
25
26
  offset: [number, number]
26
27
  padding: number
27
28
  textColor: string
28
- textSize: number
29
+ textSize: number | string // chartParams上的設定
30
+ textSizePx: number
29
31
  }
30
32
 
31
33
  const pluginName = 'Tooltip'
@@ -33,7 +35,7 @@ const gClassName = getClassName(pluginName, 'g')
33
35
  const boxClassName = getClassName(pluginName, 'box')
34
36
 
35
37
  function textToSvg (textArr: string[], textStyle: TooltipStyle) {
36
- const lineHeight = textStyle.textSize * 1.5
38
+ const lineHeight = textStyle.textSizePx * 1.5
37
39
  return textArr
38
40
  .filter(d => d != '')
39
41
  .map((text, i) => {
@@ -203,9 +205,12 @@ export const Tooltip: PluginConstructor<any, string, any> = defineNoneDataPlugin
203
205
  // map(d => d as EventTypeMap<typeof chartType>)
204
206
  )
205
207
 
208
+ const textSizePx$ = textSizePxObservable(observer.fullChartParams$)
209
+
206
210
  const tooltipStyle$: Observable<TooltipStyle> = combineLatest({
207
211
  fullChartParams: observer.fullChartParams$,
208
- fullParams: observer.fullParams$
212
+ fullParams: observer.fullParams$,
213
+ textSizePx: textSizePx$
209
214
  }).pipe(
210
215
  takeUntil(destroy$),
211
216
  switchMap(async d => d),
@@ -217,6 +222,7 @@ export const Tooltip: PluginConstructor<any, string, any> = defineNoneDataPlugin
217
222
  offset: data.fullParams.offset,
218
223
  padding: data.fullParams.padding,
219
224
  textSize: data.fullChartParams.styles.textSize,
225
+ textSizePx: data.textSizePx,
220
226
  textColor: getColor(data.fullParams.textColorType, data.fullChartParams),
221
227
  }
222
228
  })
@@ -148,7 +148,7 @@ function renderBubbles ({ graphicSelection, bubblesData, fullParams }: {
148
148
  .append<SVGGElement>("g")
149
149
  .attr('cursor', 'pointer')
150
150
  enter
151
- .style('font-size', 12)
151
+ .attr('font-size', 12)
152
152
  .style('fill', '#ffffff')
153
153
  .attr("text-anchor", "middle")
154
154
  .attr("transform", (d) => {
@@ -509,7 +509,9 @@ export const Bubbles = defineSeriesPlugin('Bubbles', DEFAULT_BUBBLES_PARAMS)(({
509
509
  combineLatest({
510
510
  bubblesSelection: bubblesSelection$,
511
511
  bubblesData: bubblesData$,
512
- highlight: observer.seriesHighlight$,
512
+ highlight: observer.seriesHighlight$.pipe(
513
+ map(data => data.map(d => d.id))
514
+ ),
513
515
  fullChartParams: observer.fullChartParams$,
514
516
  fullParams: observer.fullParams$,
515
517
  layout: observer.layout$
@@ -511,7 +511,9 @@ export const Pie = defineSeriesPlugin(pluginName, DEFAULT_PIE_PARAMS)(({ selecti
511
511
 
512
512
  combineLatest({
513
513
  pathSelection: pathSelection$,
514
- highlight: observer.seriesHighlight$,
514
+ highlight: observer.seriesHighlight$.pipe(
515
+ map(data => data.map(d => d.id))
516
+ ),
515
517
  fullChartParams: observer.fullChartParams$,
516
518
  arc: arc$,
517
519
  arcMouseover: arcMouseover$
@@ -3,6 +3,7 @@ import {
3
3
  combineLatest,
4
4
  switchMap,
5
5
  first,
6
+ map,
6
7
  takeUntil,
7
8
  Subject,
8
9
  BehaviorSubject } from 'rxjs'
@@ -266,7 +267,9 @@ export const PieLabels = defineSeriesPlugin(pluginName, DEFAULT_PIE_LABELS_PARAM
266
267
 
267
268
  combineLatest({
268
269
  labelSelection: labelSelection$,
269
- highlight: observer.seriesHighlight$,
270
+ highlight: observer.seriesHighlight$.pipe(
271
+ map(data => data.map(d => d.id))
272
+ ),
270
273
  fullChartParams: observer.fullChartParams$,
271
274
  }).pipe(
272
275
  takeUntil(destroy$),
@@ -47,7 +47,8 @@ export const SeriesLegend = defineSeriesPlugin(pluginName, DEFAULT_SERIES_LEGEND
47
47
  seriesLabels$,
48
48
  fullParams$,
49
49
  layout$: observer.layout$,
50
- fullChartParams$: observer.fullChartParams$
50
+ fullChartParams$: observer.fullChartParams$,
51
+ textSizePx$: observer.textSizePx$
51
52
  })
52
53
 
53
54
  return () => {
@@ -47,7 +47,8 @@ export const TreeLegend = defineTreePlugin(pluginName, DEFAULT_TREE_LEGEND_PARAM
47
47
  seriesLabels$: categoryLabels$,
48
48
  fullParams$,
49
49
  layout$: observer.layout$,
50
- fullChartParams$: observer.fullChartParams$
50
+ fullChartParams$: observer.fullChartParams$,
51
+ textSizePx$: observer.textSizePx$
51
52
  })
52
53
 
53
54
  return () => {
@@ -20,13 +20,15 @@ const pluginName = 'TreeMap'
20
20
  const treeClassName = getClassName(pluginName, 'tree')
21
21
  const tileClassName = getClassName(pluginName, 'tile')
22
22
 
23
- function renderTree ({ selection, treeData, fullParams, fullChartParams }: {
23
+ function renderTree ({ selection, treeData, fullParams, fullChartParams, textSizePx }: {
24
24
  selection: d3.Selection<any, any, any, any>
25
25
  treeData: d3.HierarchyRectangularNode<ComputedDataTree>[]
26
26
  fullParams: TreeMapParams
27
27
  fullChartParams: ChartParams
28
+ textSizePx: number
28
29
  }) {
29
- const padding = fullChartParams.styles.textSize / 2
30
+ const padding = textSizePx / 2
31
+ const lineHeight = textSizePx // 行高
30
32
 
31
33
  const cell = selection.selectAll<SVGGElement, d3.HierarchyRectangularNode<ComputedDataTree>>(`g.${treeClassName}`)
32
34
  .data(treeData, d => d.data.id)
@@ -75,7 +77,6 @@ function renderTree ({ selection, treeData, fullParams, fullChartParams }: {
75
77
  const words = d.data.label.split(/\s+/).reverse() // 以空隔分割字串
76
78
  let word;
77
79
  let line: string[] = []
78
- const lineHeight = fullChartParams.styles.textSize // 行高
79
80
  const x = textElement.attr("x")
80
81
  let y = textElement.attr("y")
81
82
  let dy = 0
@@ -180,7 +181,8 @@ export const TreeMap = defineTreePlugin(pluginName, DEFAULT_TREE_MAP_PARAMS)(({
180
181
  selection: of(selection),
181
182
  treeData: treeData$,
182
183
  fullParams: observer.fullParams$,
183
- fullChartParams: observer.fullChartParams$
184
+ fullChartParams: observer.fullChartParams$,
185
+ textSizePx: observer.textSizePx$
184
186
  }).pipe(
185
187
  takeUntil(destroy$),
186
188
  switchMap(async d => d),
@@ -189,7 +191,8 @@ export const TreeMap = defineTreePlugin(pluginName, DEFAULT_TREE_MAP_PARAMS)(({
189
191
  selection,
190
192
  treeData: data.treeData,
191
193
  fullParams: data.fullParams,
192
- fullChartParams: data.fullChartParams
194
+ fullChartParams: data.fullChartParams,
195
+ textSizePx: data.textSizePx
193
196
  })
194
197
  })
195
198
  )
@@ -281,7 +284,9 @@ export const TreeMap = defineTreePlugin(pluginName, DEFAULT_TREE_MAP_PARAMS)(({
281
284
 
282
285
  combineLatest({
283
286
  cellSelection: cellSelection$,
284
- highlight: observer.treeHighlight$,
287
+ highlight: observer.treeHighlight$.pipe(
288
+ map(data => data.map(d => d.id))
289
+ ),
285
290
  fullChartParams: observer.fullChartParams$
286
291
  }).pipe(
287
292
  takeUntil(destroy$),