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

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 (57) hide show
  1. package/dist/orbcharts-plugins-basic.es.js +7770 -7580
  2. package/dist/orbcharts-plugins-basic.umd.js +8 -8
  3. package/dist/src/base/BaseBarStack.d.ts +6 -4
  4. package/dist/src/base/BaseBars.d.ts +6 -4
  5. package/dist/src/base/BaseBarsTriangle.d.ts +7 -4
  6. package/dist/src/base/BaseDots.d.ts +5 -3
  7. package/dist/src/base/BaseGroupAxis.d.ts +3 -3
  8. package/dist/src/base/BaseLineAreas.d.ts +6 -3
  9. package/dist/src/base/BaseLines.d.ts +6 -3
  10. package/dist/src/base/BaseValueAxis.d.ts +3 -3
  11. package/dist/src/grid/gridObservables.d.ts +4 -4
  12. package/dist/src/multiGrid/multiGridObservables.d.ts +2 -6
  13. package/dist/src/series/plugins/PieEventTexts.d.ts +3 -1
  14. package/dist/src/series/seriesObservables.d.ts +21 -0
  15. package/dist/src/series/seriesUtils.d.ts +3 -3
  16. package/package.json +2 -2
  17. package/src/base/BaseBarStack.ts +105 -208
  18. package/src/base/BaseBars.ts +78 -64
  19. package/src/base/BaseBarsTriangle.ts +76 -63
  20. package/src/base/BaseDots.ts +41 -178
  21. package/src/base/BaseGroupAxis.ts +13 -13
  22. package/src/base/BaseLineAreas.ts +85 -81
  23. package/src/base/BaseLines.ts +82 -75
  24. package/src/base/BaseValueAxis.ts +14 -15
  25. package/src/grid/gridObservables.ts +22 -38
  26. package/src/grid/plugins/BarStack.ts +16 -3
  27. package/src/grid/plugins/Bars.ts +18 -4
  28. package/src/grid/plugins/BarsDiverging.ts +6 -4
  29. package/src/grid/plugins/BarsTriangle.ts +20 -4
  30. package/src/grid/plugins/Dots.ts +4 -2
  31. package/src/grid/plugins/GroupAux.ts +1 -2
  32. package/src/grid/plugins/GroupAxis.ts +15 -3
  33. package/src/grid/plugins/LineAreas.ts +5 -2
  34. package/src/grid/plugins/Lines.ts +5 -2
  35. package/src/grid/plugins/ScalingArea.ts +0 -1
  36. package/src/grid/plugins/ValueAxis.ts +15 -3
  37. package/src/grid/plugins/ValueStackAxis.ts +14 -5
  38. package/src/multiGrid/multiGridObservables.ts +14 -261
  39. package/src/multiGrid/plugins/MultiBarStack.ts +22 -8
  40. package/src/multiGrid/plugins/MultiBars.ts +21 -7
  41. package/src/multiGrid/plugins/MultiBarsTriangle.ts +22 -7
  42. package/src/multiGrid/plugins/MultiDots.ts +7 -5
  43. package/src/multiGrid/plugins/MultiGridLegend.ts +1 -1
  44. package/src/multiGrid/plugins/MultiGroupAxis.ts +19 -7
  45. package/src/multiGrid/plugins/MultiLineAreas.ts +9 -6
  46. package/src/multiGrid/plugins/MultiLines.ts +9 -6
  47. package/src/multiGrid/plugins/MultiValueAxis.ts +19 -7
  48. package/src/multiGrid/plugins/OverlappingValueAxes.ts +52 -47
  49. package/src/noneData/defaults.ts +3 -0
  50. package/src/series/defaults.ts +13 -3
  51. package/src/series/plugins/Bubbles.ts +139 -88
  52. package/src/series/plugins/Pie.ts +307 -352
  53. package/src/series/plugins/PieEventTexts.ts +102 -38
  54. package/src/series/plugins/PieLabels.ts +95 -48
  55. package/src/series/seriesObservables.ts +145 -0
  56. package/src/series/seriesUtils.ts +4 -4
  57. package/tsconfig.json +1 -1
@@ -336,7 +336,7 @@ export const GroupAux = defineGridPlugin(pluginName, DEFAULT_GROUP_AREA_PARAMS)(
336
336
  ? data.computedData[0].length
337
337
  : 0
338
338
 
339
- let _labels = data.fullDataFormatter.grid.gridData.seriesDirection === 'row'
339
+ let _labels = data.fullDataFormatter.grid.seriesDirection === 'row'
340
340
  // ? data.fullDataFormatter.grid.columnLabels
341
341
  // : data.fullDataFormatter.grid.rowLabels
342
342
  ? (data.computedData[0] ?? []).map(d => d.groupLabel)
@@ -391,7 +391,6 @@ export const GroupAux = defineGridPlugin(pluginName, DEFAULT_GROUP_AREA_PARAMS)(
391
391
  groupScale: groupScale$,
392
392
  }).pipe(
393
393
  takeUntil(destroy$),
394
- // 轉換後會退訂前一個未完成的訂閱事件,因此可以取到「同時間」最後一次的訂閱事件
395
394
  switchMap(async (d) => d),
396
395
  ).subscribe(data => {
397
396
 
@@ -1,5 +1,10 @@
1
1
  import {
2
- Subject } from 'rxjs'
2
+ Subject,
3
+ takeUntil,
4
+ map,
5
+ distinctUntilChanged,
6
+ shareReplay
7
+ } from 'rxjs'
3
8
  import {
4
9
  defineGridPlugin } from '@orbcharts/core'
5
10
  import { DEFAULT_GROUP_AXIS_PARAMS } from '../defaults'
@@ -11,6 +16,13 @@ export const GroupAxis = defineGridPlugin(pluginName, DEFAULT_GROUP_AXIS_PARAMS)
11
16
 
12
17
  const destroy$ = new Subject()
13
18
 
19
+ const isSeriesSeprate$ = observer.fullDataFormatter$.pipe(
20
+ takeUntil(destroy$),
21
+ map(d => d.grid.separateSeries),
22
+ distinctUntilChanged(),
23
+ shareReplay(1)
24
+ )
25
+
14
26
  const unsubscribeBaseGroupAxis = createBaseGroupAxis(pluginName, {
15
27
  selection,
16
28
  computedData$: observer.computedData$,
@@ -20,8 +32,8 @@ export const GroupAxis = defineGridPlugin(pluginName, DEFAULT_GROUP_AXIS_PARAMS)
20
32
  gridAxesTransform$: observer.gridAxesTransform$,
21
33
  gridAxesReverseTransform$: observer.gridAxesReverseTransform$,
22
34
  gridAxesSize$: observer.gridAxesSize$,
23
- gridContainer$: observer.gridContainer$,
24
- isSeriesPositionSeprate$: observer.isSeriesPositionSeprate$,
35
+ gridContainerPosition$: observer.gridContainerPosition$,
36
+ isSeriesSeprate$,
25
37
  })
26
38
 
27
39
  return () => {
@@ -14,7 +14,10 @@ export const LineAreas = defineGridPlugin(pluginName, DEFAULT_LINE_AREAS_PARAMS)
14
14
  const unsubscribeBaseBars = createBaseLineAreas(pluginName, {
15
15
  selection,
16
16
  computedData$: observer.computedData$,
17
- existSeriesLabels$: observer.existSeriesLabels$,
17
+ visibleComputedData$: observer.visibleComputedData$,
18
+ computedLayoutData$: observer.computedLayoutData$,
19
+ visibleComputedLayoutData$: observer.visibleComputedLayoutData$,
20
+ seriesLabels$: observer.seriesLabels$,
18
21
  SeriesDataMap$: observer.SeriesDataMap$,
19
22
  GroupDataMap$: observer.GroupDataMap$,
20
23
  fullParams$: observer.fullParams$,
@@ -24,7 +27,7 @@ export const LineAreas = defineGridPlugin(pluginName, DEFAULT_LINE_AREAS_PARAMS)
24
27
  gridGraphicTransform$: observer.gridGraphicTransform$,
25
28
  gridAxesSize$: observer.gridAxesSize$,
26
29
  gridHighlight$: observer.gridHighlight$,
27
- gridContainer$: observer.gridContainer$,
30
+ gridContainerPosition$: observer.gridContainerPosition$,
28
31
  layout$: observer.layout$,
29
32
  event$: subject.event$,
30
33
  })
@@ -14,7 +14,10 @@ export const Lines = defineGridPlugin(pluginName, DEFAULT_LINES_PARAMS)(({ selec
14
14
  const unsubscribeBaseBars = createBaseLines(pluginName, {
15
15
  selection,
16
16
  computedData$: observer.computedData$,
17
- existSeriesLabels$: observer.existSeriesLabels$,
17
+ computedLayoutData$: observer.computedLayoutData$,
18
+ visibleComputedData$: observer.visibleComputedData$,
19
+ visibleComputedLayoutData$: observer.visibleComputedLayoutData$,
20
+ seriesLabels$: observer.seriesLabels$,
18
21
  SeriesDataMap$: observer.SeriesDataMap$,
19
22
  GroupDataMap$: observer.GroupDataMap$,
20
23
  fullParams$: observer.fullParams$,
@@ -24,7 +27,7 @@ export const Lines = defineGridPlugin(pluginName, DEFAULT_LINES_PARAMS)(({ selec
24
27
  gridGraphicTransform$: observer.gridGraphicTransform$,
25
28
  gridAxesSize$: observer.gridAxesSize$,
26
29
  gridHighlight$: observer.gridHighlight$,
27
- gridContainer$: observer.gridContainer$,
30
+ gridContainerPosition$: observer.gridContainerPosition$,
28
31
  event$: subject.event$,
29
32
  })
30
33
 
@@ -76,7 +76,6 @@ export const ScalingArea = defineGridPlugin(pluginName, DEFAULT_SCALING_AREA_PAR
76
76
  axisSize: observer.gridAxesSize$
77
77
  }).pipe(
78
78
  takeUntil(destroy$),
79
- // 轉換後會退訂前一個未完成的訂閱事件,因此可以取到「同時間」最後一次的訂閱事件
80
79
  switchMap(async (d) => d),
81
80
  ).subscribe(data => {
82
81
  const groupMin = 0
@@ -1,5 +1,10 @@
1
1
  import {
2
- Subject } from 'rxjs'
2
+ Subject,
3
+ takeUntil,
4
+ map,
5
+ distinctUntilChanged,
6
+ shareReplay
7
+ } from 'rxjs'
3
8
  import {
4
9
  defineGridPlugin } from '@orbcharts/core'
5
10
  import { DEFAULT_VALUE_AXIS_PARAMS } from '../defaults'
@@ -12,6 +17,13 @@ export const ValueAxis = defineGridPlugin(pluginName, DEFAULT_VALUE_AXIS_PARAMS)
12
17
 
13
18
  const destroy$ = new Subject()
14
19
 
20
+ const isSeriesSeprate$ = observer.fullDataFormatter$.pipe(
21
+ takeUntil(destroy$),
22
+ map(d => d.grid.separateSeries),
23
+ distinctUntilChanged(),
24
+ shareReplay(1)
25
+ )
26
+
15
27
  const unsubscribeBaseValueAxis = createBaseValueAxis(pluginName, {
16
28
  selection,
17
29
  computedData$: observer.computedData$,
@@ -21,8 +33,8 @@ export const ValueAxis = defineGridPlugin(pluginName, DEFAULT_VALUE_AXIS_PARAMS)
21
33
  gridAxesTransform$: observer.gridAxesTransform$,
22
34
  gridAxesReverseTransform$: observer.gridAxesReverseTransform$,
23
35
  gridAxesSize$: observer.gridAxesSize$,
24
- gridContainer$: observer.gridContainer$,
25
- isSeriesPositionSeprate$: observer.isSeriesPositionSeprate$,
36
+ gridContainerPosition$: observer.gridContainerPosition$,
37
+ isSeriesSeprate$,
26
38
  })
27
39
 
28
40
  return () => {
@@ -1,6 +1,8 @@
1
1
  import {
2
2
  takeUntil,
3
3
  map,
4
+ distinctUntilChanged,
5
+ shareReplay,
4
6
  switchMap,
5
7
  iif,
6
8
  Subject } from 'rxjs'
@@ -47,11 +49,18 @@ export const ValueStackAxis = defineGridPlugin(pluginName, DEFAULT_VALUE_STACK_A
47
49
  }),
48
50
  )
49
51
 
52
+ const isSeriesSeprate$ = observer.fullDataFormatter$.pipe(
53
+ takeUntil(destroy$),
54
+ map(d => d.grid.separateSeries),
55
+ distinctUntilChanged(),
56
+ shareReplay(1)
57
+ )
58
+
50
59
  const unsubscribeBaseValueAxis = createBaseValueAxis(pluginName, {
51
60
  selection,
52
- computedData$: observer.isSeriesPositionSeprate$.pipe(
53
- switchMap(isSeriesPositionSeprate => {
54
- return iif(() => isSeriesPositionSeprate, observer.computedData$, stackedData$)
61
+ computedData$: isSeriesSeprate$.pipe(
62
+ switchMap(isSeriesSeprate => {
63
+ return iif(() => isSeriesSeprate, observer.computedData$, stackedData$)
55
64
  })
56
65
  ),
57
66
  fullParams$: observer.fullParams$,
@@ -60,8 +69,8 @@ export const ValueStackAxis = defineGridPlugin(pluginName, DEFAULT_VALUE_STACK_A
60
69
  gridAxesTransform$: observer.gridAxesTransform$,
61
70
  gridAxesReverseTransform$: observer.gridAxesReverseTransform$,
62
71
  gridAxesSize$: observer.gridAxesSize$,
63
- gridContainer$: observer.gridContainer$,
64
- isSeriesPositionSeprate$: observer.isSeriesPositionSeprate$,
72
+ gridContainerPosition$: observer.gridContainerPosition$,
73
+ isSeriesSeprate$,
65
74
  })
66
75
 
67
76
  return () => {
@@ -10,280 +10,33 @@ import {
10
10
  distinctUntilChanged,
11
11
  shareReplay
12
12
  } from 'rxjs'
13
- import type { ContextObserverMultiGrid, ComputedDataGrid, DataFormatterGrid, ContextObserverGridDetail } from '@orbcharts/core'
14
- // import { DATA_FORMATTER_MULTI_GRID_GRID_DEFAULT } from '@orbcharts/core/src/defaults'
15
-
16
- // interface GridPluginParams {
17
- // gridIndex: number
18
- // }
19
-
20
- // interface GridPluginObservables extends ContextObserverGridDetail {
21
- // gridComputedData$: Observable<ComputedDataGrid>
22
- // gridDataFormatter$: Observable<DataFormatterGrid>
23
- // }
24
-
25
- // // 對應grid資料的plugin所需Observable(必須有gridIndex)
26
- // export const gridPluginObservables = (observer: ContextObserverMultiGrid<GridPluginParams>): GridPluginObservables => {
27
- // const gridIndex$ = observer.fullParams$.pipe(
28
- // map(fullParams => fullParams.gridIndex),
29
- // distinctUntilChanged(),
30
- // shareReplay(1)
31
- // )
32
-
33
- // const gridComputedData$: Observable<ComputedDataGrid> = combineLatest({
34
- // computedData: observer.computedData$,
35
- // gridIndex: gridIndex$,
36
- // }).pipe(
37
- // map((data) => {
38
- // return data.computedData[data.gridIndex] ?? data.computedData[0]
39
- // })
40
- // )
41
-
42
- // const gridDataFormatter$: Observable<DataFormatterGrid> = combineLatest({
43
- // fullDataFormatter: observer.fullDataFormatter$,
44
- // gridIndex: gridIndex$,
45
- // }).pipe(
46
- // map((data) => {
47
- // const defaultGrid = data.fullDataFormatter.gridList[0] // ?? DATA_FORMATTER_MULTI_GRID_GRID_DEFAULT
48
-
49
- // return {
50
- // type: 'grid',
51
- // grid: {
52
- // ...data.fullDataFormatter.gridList[data.gridIndex] ?? defaultGrid
53
- // },
54
- // container: {
55
- // ...data.fullDataFormatter.container
56
- // }
57
- // }
58
- // })
59
- // )
60
-
61
- // const gridDetail$ = combineLatest({
62
- // multiGridEachDetail: observer.multiGridEachDetail$,
63
- // gridIndex: gridIndex$,
64
- // }).pipe(
65
- // switchMap(async d => d),
66
- // map(data => {
67
- // return data.multiGridEachDetail[data.gridIndex] ?? data.multiGridEachDetail[0]
68
- // }),
69
- // shareReplay(1)
70
- // )
71
-
72
- // const isSeriesPositionSeprate$ = gridDetail$.pipe(
73
- // switchMap(d => d.isSeriesPositionSeprate$)
74
- // )
75
-
76
- // const gridContainer$ = gridDetail$.pipe(
77
- // switchMap(d => d.gridContainer$)
78
- // )
79
-
80
- // const gridAxesTransform$ = gridDetail$.pipe(
81
- // switchMap(d => d.gridAxesTransform$)
82
- // )
83
-
84
- // const gridAxesReverseTransform$ = gridDetail$.pipe(
85
- // switchMap(d => d.gridAxesReverseTransform$)
86
- // )
87
-
88
- // const gridAxesSize$ = gridDetail$.pipe(
89
- // switchMap(d => d.gridAxesSize$)
90
- // )
91
-
92
- // const gridGraphicTransform$ = gridDetail$.pipe(
93
- // switchMap(d => d.gridGraphicTransform$)
94
- // )
95
-
96
- // const gridGraphicReverseScale$ = gridDetail$.pipe(
97
- // switchMap(d => d.gridGraphicReverseScale$)
98
- // )
99
-
100
- // const gridHighlight$ = gridDetail$.pipe(
101
- // switchMap(d => d.gridHighlight$)
102
- // )
103
-
104
- // const existSeriesLabels$ = gridDetail$.pipe(
105
- // switchMap(d => d.existSeriesLabels$)
106
- // )
107
-
108
- // const SeriesDataMap$ = gridDetail$.pipe(
109
- // switchMap(d => d.SeriesDataMap$)
110
- // )
111
-
112
- // const GroupDataMap$ = gridDetail$.pipe(
113
- // switchMap(d => d.GroupDataMap$)
114
- // )
115
-
116
- // const visibleComputedData$ = gridDetail$.pipe(
117
- // switchMap(d => d.visibleComputedData$)
118
- // )
119
-
120
-
121
-
122
- // return {
123
- // gridComputedData$,
124
- // gridDataFormatter$,
125
- // gridAxesTransform$,
126
- // gridGraphicTransform$,
127
- // gridGraphicReverseScale$,
128
- // gridAxesReverseTransform$,
129
- // gridAxesSize$,
130
- // gridHighlight$,
131
- // existSeriesLabels$,
132
- // SeriesDataMap$,
133
- // GroupDataMap$,
134
- // visibleComputedData$,
135
- // isSeriesPositionSeprate$,
136
- // gridContainer$
137
- // }
138
- // }
13
+ import type {
14
+ ContextObserverMultiGrid,
15
+ ComputedDataGrid,
16
+ DataFormatterGrid,
17
+ ContextObserverGridDetail,
18
+ ContextObserverMultiGridDetail } from '@orbcharts/core'
139
19
 
140
20
  // 可設定多個gridIndex的params
141
21
  interface MultiGridPluginParams {
142
22
  gridIndexes: number[]
143
23
  }
144
24
 
145
- interface MultiGridDetailObservables extends ContextObserverGridDetail {
146
- gridComputedData$: Observable<ComputedDataGrid>
147
- gridDataFormatter$: Observable<DataFormatterGrid>
148
- }
149
-
150
-
151
25
  // 對應grid資料的plugin所需Observable(必須有gridIndexes)
152
- export const multiGridDetailObservables = (observer: ContextObserverMultiGrid<MultiGridPluginParams>): Observable<MultiGridDetailObservables[]> => {
26
+ export const multiGridPluginObservables = (observer: ContextObserverMultiGrid<MultiGridPluginParams>): Observable<ContextObserverMultiGridDetail[]> => {
153
27
  const gridIndexes$ = observer.fullParams$.pipe(
154
28
  map(fullParams => fullParams.gridIndexes),
155
29
  distinctUntilChanged(),
156
30
  shareReplay(1)
157
31
  )
158
- const destroy$ = new Subject()
159
-
160
- // 合併所有gridHighlight$
161
- const gridHighlight$ = observer.multiGridEachDetail$.pipe(
162
- // switchMap(data => concat(...data.map(d => d.gridHighlight$))),
163
- switchMap(data => {
164
- return combineLatest(data.map(d => d.gridHighlight$))
165
- }),
166
- map(d => d.flat()),
167
- shareReplay(1)
168
- )
169
-
170
- return gridIndexes$.pipe(
171
- map(gridIndexes => {
172
- return gridIndexes.map(gridIndex => {
173
- // 每次重新計算時,清除之前的訂閱
174
- destroy$.next(undefined)
175
-
176
- const gridIndex$ = of(gridIndex).pipe(
177
- takeUntil(destroy$),
178
- shareReplay(1)
179
- )
180
32
 
181
- const gridComputedData$: Observable<ComputedDataGrid> = combineLatest({
182
- computedData: observer.computedData$,
183
- gridIndex: gridIndex$,
184
- }).pipe(
185
- takeUntil(destroy$),
186
- map((data) => {
187
- return data.computedData[data.gridIndex] ?? data.computedData[0]
188
- })
189
- )
190
-
191
- const gridDataFormatter$: Observable<DataFormatterGrid> = combineLatest({
192
- fullDataFormatter: observer.fullDataFormatter$,
193
- gridIndex: gridIndex$,
194
- }).pipe(
195
- takeUntil(destroy$),
196
- map((data) => {
197
- const defaultGrid = data.fullDataFormatter.gridList[0] // ?? DATA_FORMATTER_MULTI_GRID_GRID_DEFAULT
198
-
199
- return {
200
- type: 'grid',
201
- grid: {
202
- ...data.fullDataFormatter.gridList[data.gridIndex] ?? defaultGrid
203
- },
204
- container: {
205
- ...data.fullDataFormatter.container
206
- }
207
- }
208
- })
209
- )
210
-
211
- const gridDetail$ = combineLatest({
212
- multiGridEachDetail: observer.multiGridEachDetail$,
213
- gridIndex: gridIndex$,
214
- }).pipe(
215
- takeUntil(destroy$),
216
- switchMap(async d => d),
217
- map(data => {
218
- return data.multiGridEachDetail[data.gridIndex] ?? data.multiGridEachDetail[0]
219
- }),
220
- shareReplay(1)
221
- )
222
-
223
- const isSeriesPositionSeprate$ = gridDetail$.pipe(
224
- switchMap(d => d.isSeriesPositionSeprate$)
225
- )
226
-
227
- const gridContainer$ = gridDetail$.pipe(
228
- switchMap(d => d.gridContainer$)
229
- )
230
-
231
- const gridAxesTransform$ = gridDetail$.pipe(
232
- switchMap(d => d.gridAxesTransform$)
233
- )
234
-
235
- const gridAxesReverseTransform$ = gridDetail$.pipe(
236
- switchMap(d => d.gridAxesReverseTransform$)
237
- )
238
-
239
- const gridAxesSize$ = gridDetail$.pipe(
240
- switchMap(d => d.gridAxesSize$)
241
- )
242
-
243
- const gridGraphicTransform$ = gridDetail$.pipe(
244
- switchMap(d => d.gridGraphicTransform$)
245
- )
246
-
247
- const gridGraphicReverseScale$ = gridDetail$.pipe(
248
- switchMap(d => d.gridGraphicReverseScale$)
249
- )
250
-
251
- // const gridHighlight$ = gridDetail$.pipe(
252
- // switchMap(d => d.gridHighlight$)
253
- // )
254
-
255
- const existSeriesLabels$ = gridDetail$.pipe(
256
- switchMap(d => d.existSeriesLabels$)
257
- )
258
-
259
- const SeriesDataMap$ = gridDetail$.pipe(
260
- switchMap(d => d.SeriesDataMap$)
261
- )
262
-
263
- const GroupDataMap$ = gridDetail$.pipe(
264
- switchMap(d => d.GroupDataMap$)
265
- )
266
-
267
- const visibleComputedData$ = gridDetail$.pipe(
268
- switchMap(d => d.visibleComputedData$)
269
- )
270
-
271
- return {
272
- gridComputedData$,
273
- gridDataFormatter$,
274
- gridAxesTransform$,
275
- gridGraphicTransform$,
276
- gridGraphicReverseScale$,
277
- gridAxesReverseTransform$,
278
- gridAxesSize$,
279
- gridHighlight$,
280
- existSeriesLabels$,
281
- SeriesDataMap$,
282
- GroupDataMap$,
283
- visibleComputedData$,
284
- isSeriesPositionSeprate$,
285
- gridContainer$
286
- }
33
+ return combineLatest({
34
+ multiGridEachDetail: observer.multiGridEachDetail$,
35
+ gridIndexes: gridIndexes$,
36
+ }).pipe(
37
+ map(data => {
38
+ return data.gridIndexes.map(gridIndex => {
39
+ return data.multiGridEachDetail[gridIndex] ?? data.multiGridEachDetail[0]
287
40
  })
288
41
  })
289
42
  )
@@ -1,11 +1,16 @@
1
1
  import * as d3 from 'd3'
2
2
  import {
3
- Subject } from 'rxjs'
3
+ Subject,
4
+ map,
5
+ distinctUntilChanged,
6
+ shareReplay,
7
+ takeUntil
8
+ } from 'rxjs'
4
9
  import {
5
10
  defineMultiGridPlugin } from '@orbcharts/core'
6
11
  import { DEFAULT_MULTI_BAR_STACK_PARAMS } from '../defaults'
7
12
  import { createBaseBarStack } from '../../base/BaseBarStack'
8
- import { multiGridDetailObservables } from '../multiGridObservables'
13
+ import { multiGridPluginObservables } from '../multiGridObservables'
9
14
  import { getClassName, getUniID } from '../../utils/orbchartsUtils'
10
15
 
11
16
  const pluginName = 'MultiBarStack'
@@ -17,7 +22,7 @@ export const MultiBarStack = defineMultiGridPlugin(pluginName, DEFAULT_MULTI_BAR
17
22
 
18
23
  const unsubscribeFnArr: (() => void)[] = []
19
24
 
20
- const multiGridPlugin$ = multiGridDetailObservables(observer)
25
+ const multiGridPlugin$ = multiGridPluginObservables(observer)
21
26
 
22
27
  multiGridPlugin$.subscribe(data => {
23
28
  // 每次重新計算時,清除之前的訂閱
@@ -31,23 +36,32 @@ export const MultiBarStack = defineMultiGridPlugin(pluginName, DEFAULT_MULTI_BAR
31
36
 
32
37
  const gridSelection = d3.select(g[i])
33
38
 
39
+ const isSeriesSeprate$ = d.dataFormatter$.pipe(
40
+ takeUntil(destroy$),
41
+ map(d => d.grid.separateSeries),
42
+ distinctUntilChanged(),
43
+ shareReplay(1)
44
+ )
45
+
34
46
  unsubscribeFnArr[i] = createBaseBarStack(pluginName, {
35
47
  selection: gridSelection,
36
- computedData$: d.gridComputedData$,
48
+ computedData$: d.computedData$,
37
49
  visibleComputedData$: d.visibleComputedData$,
38
- existSeriesLabels$: d.existSeriesLabels$,
50
+ computedLayoutData$: d.computedLayoutData$,
51
+ visibleComputedLayoutData$: d.visibleComputedLayoutData$,
52
+ seriesLabels$: d.seriesLabels$,
39
53
  SeriesDataMap$: d.SeriesDataMap$,
40
54
  GroupDataMap$: d.GroupDataMap$,
41
55
  fullParams$: observer.fullParams$,
42
- fullDataFormatter$: d.gridDataFormatter$,
56
+ fullDataFormatter$: d.dataFormatter$,
43
57
  fullChartParams$: observer.fullChartParams$,
44
58
  gridAxesTransform$: d.gridAxesTransform$,
45
59
  gridGraphicTransform$: d.gridGraphicTransform$,
46
60
  gridGraphicReverseScale$: d.gridGraphicReverseScale$,
47
61
  gridAxesSize$: d.gridAxesSize$,
48
62
  gridHighlight$: d.gridHighlight$,
49
- gridContainer$: d.gridContainer$,
50
- isSeriesPositionSeprate$: d.isSeriesPositionSeprate$,
63
+ gridContainerPosition$: d.gridContainerPosition$,
64
+ isSeriesSeprate$,
51
65
  event$: subject.event$ as Subject<any>,
52
66
  })
53
67
  })
@@ -1,11 +1,16 @@
1
1
  import * as d3 from 'd3'
2
2
  import {
3
- Subject } from 'rxjs'
3
+ Subject,
4
+ map,
5
+ distinctUntilChanged,
6
+ shareReplay,
7
+ takeUntil
8
+ } from 'rxjs'
4
9
  import {
5
10
  defineMultiGridPlugin } from '@orbcharts/core'
6
11
  import { DEFAULT_MULTI_BARS_PARAMS } from '../defaults'
7
12
  import { createBaseBars } from '../../base/BaseBars'
8
- import { multiGridDetailObservables } from '../multiGridObservables'
13
+ import { multiGridPluginObservables } from '../multiGridObservables'
9
14
  import { getClassName, getUniID } from '../../utils/orbchartsUtils'
10
15
 
11
16
  const pluginName = 'MultiBars'
@@ -17,7 +22,7 @@ export const MultiBars = defineMultiGridPlugin(pluginName, DEFAULT_MULTI_BARS_PA
17
22
 
18
23
  const unsubscribeFnArr: (() => void)[] = []
19
24
 
20
- const multiGridPlugin$ = multiGridDetailObservables(observer)
25
+ const multiGridPlugin$ = multiGridPluginObservables(observer)
21
26
 
22
27
  multiGridPlugin$.subscribe(data => {
23
28
  // 每次重新計算時,清除之前的訂閱
@@ -31,11 +36,20 @@ export const MultiBars = defineMultiGridPlugin(pluginName, DEFAULT_MULTI_BARS_PA
31
36
 
32
37
  const gridSelection = d3.select(g[i])
33
38
 
39
+ const isSeriesSeprate$ = d.dataFormatter$.pipe(
40
+ takeUntil(destroy$),
41
+ map(d => d.grid.separateSeries),
42
+ distinctUntilChanged(),
43
+ shareReplay(1)
44
+ )
45
+
34
46
  unsubscribeFnArr[i] = createBaseBars(pluginName, {
35
47
  selection: gridSelection,
36
- computedData$: d.gridComputedData$,
48
+ computedData$: d.computedData$,
37
49
  visibleComputedData$: d.visibleComputedData$,
38
- existSeriesLabels$: d.existSeriesLabels$,
50
+ computedLayoutData$: d.computedLayoutData$,
51
+ visibleComputedLayoutData$: d.visibleComputedLayoutData$,
52
+ seriesLabels$: d.seriesLabels$,
39
53
  SeriesDataMap$: d.SeriesDataMap$,
40
54
  GroupDataMap$: d.GroupDataMap$,
41
55
  fullParams$: observer.fullParams$,
@@ -45,8 +59,8 @@ export const MultiBars = defineMultiGridPlugin(pluginName, DEFAULT_MULTI_BARS_PA
45
59
  gridGraphicReverseScale$: d.gridGraphicReverseScale$,
46
60
  gridAxesSize$: d.gridAxesSize$,
47
61
  gridHighlight$: d.gridHighlight$,
48
- gridContainer$: d.gridContainer$,
49
- isSeriesPositionSeprate$: d.isSeriesPositionSeprate$,
62
+ gridContainerPosition$: d.gridContainerPosition$,
63
+ isSeriesSeprate$,
50
64
  event$: subject.event$ as Subject<any>,
51
65
  })
52
66
  })
@@ -1,11 +1,16 @@
1
1
  import * as d3 from 'd3'
2
2
  import {
3
- Subject } from 'rxjs'
3
+ Subject,
4
+ map,
5
+ distinctUntilChanged,
6
+ shareReplay,
7
+ takeUntil
8
+ } from 'rxjs'
4
9
  import {
5
10
  defineMultiGridPlugin } from '@orbcharts/core'
6
11
  import { DEFAULT_MULTI_BARS_TRIANGLE_PARAMS } from '../defaults'
7
12
  import { createBaseBarsTriangle } from '../../base/BaseBarsTriangle'
8
- import { multiGridDetailObservables } from '../multiGridObservables'
13
+ import { multiGridPluginObservables } from '../multiGridObservables'
9
14
  import { getClassName, getUniID } from '../../utils/orbchartsUtils'
10
15
 
11
16
  const pluginName = 'MultiBarsTriangle'
@@ -17,7 +22,7 @@ export const MultiBarsTriangle = defineMultiGridPlugin(pluginName, DEFAULT_MULTI
17
22
 
18
23
  const unsubscribeFnArr: (() => void)[] = []
19
24
 
20
- const multiGridPlugin$ = multiGridDetailObservables(observer)
25
+ const multiGridPlugin$ = multiGridPluginObservables(observer)
21
26
 
22
27
  multiGridPlugin$.subscribe(data => {
23
28
  // 每次重新計算時,清除之前的訂閱
@@ -31,21 +36,31 @@ export const MultiBarsTriangle = defineMultiGridPlugin(pluginName, DEFAULT_MULTI
31
36
 
32
37
  const gridSelection = d3.select(g[i])
33
38
 
39
+ const isSeriesSeprate$ = d.dataFormatter$.pipe(
40
+ takeUntil(destroy$),
41
+ map(d => d.grid.separateSeries),
42
+ distinctUntilChanged(),
43
+ shareReplay(1)
44
+ )
45
+
34
46
  unsubscribeFnArr[i] = createBaseBarsTriangle(pluginName, {
35
47
  selection: gridSelection,
36
- computedData$: d.gridComputedData$,
48
+ computedData$: d.computedData$,
37
49
  visibleComputedData$: d.visibleComputedData$,
38
- existSeriesLabels$: d.existSeriesLabels$,
50
+ computedLayoutData$: d.computedLayoutData$,
51
+ visibleComputedLayoutData$: d.visibleComputedLayoutData$,
52
+ seriesLabels$: d.seriesLabels$,
39
53
  SeriesDataMap$: d.SeriesDataMap$,
40
54
  GroupDataMap$: d.GroupDataMap$,
41
55
  fullParams$: observer.fullParams$,
42
56
  fullChartParams$: observer.fullChartParams$,
57
+ fullDataFormatter$: d.dataFormatter$,
43
58
  gridAxesTransform$: d.gridAxesTransform$,
44
59
  gridGraphicTransform$: d.gridGraphicTransform$,
45
60
  gridAxesSize$: d.gridAxesSize$,
46
61
  gridHighlight$: d.gridHighlight$,
47
- gridContainer$: d.gridContainer$,
48
- isSeriesPositionSeprate$: d.isSeriesPositionSeprate$,
62
+ gridContainerPosition$: d.gridContainerPosition$,
63
+ isSeriesSeprate$: isSeriesSeprate$,
49
64
  event$: subject.event$ as Subject<any>,
50
65
  })
51
66
  })