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

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 (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$),