@orbcharts/core 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 (49) hide show
  1. package/dist/orbcharts-core.es.js +1905 -1896
  2. package/dist/orbcharts-core.umd.js +2 -2
  3. package/dist/src/defaults.d.ts +4 -3
  4. package/dist/src/grid/computeGridData.d.ts +4 -11
  5. package/dist/src/grid/gridObservables.d.ts +15 -18
  6. package/dist/src/multiGrid/multiGridObservables.d.ts +4 -11
  7. package/dist/src/series/seriesObservables.d.ts +26 -1
  8. package/dist/src/types/ComputedData.d.ts +1 -0
  9. package/dist/src/types/ComputedDataGrid.d.ts +0 -3
  10. package/dist/src/types/ComputedDataSeries.d.ts +1 -2
  11. package/dist/src/types/ContextObserverGrid.d.ts +11 -4
  12. package/dist/src/types/ContextObserverMultiGrid.d.ts +8 -3
  13. package/dist/src/types/ContextObserverSeries.d.ts +18 -0
  14. package/dist/src/types/DataFormatter.d.ts +8 -5
  15. package/dist/src/types/DataFormatterGrid.d.ts +13 -16
  16. package/dist/src/types/DataFormatterMultiGrid.d.ts +6 -3
  17. package/dist/src/types/DataFormatterMultiValue.d.ts +3 -0
  18. package/dist/src/types/DataFormatterRelationship.d.ts +3 -0
  19. package/dist/src/types/DataFormatterSeries.d.ts +11 -4
  20. package/dist/src/utils/orbchartsUtils.d.ts +14 -13
  21. package/package.json +1 -1
  22. package/src/base/createBaseChart.ts +10 -10
  23. package/src/defaults.ts +36 -64
  24. package/src/grid/computeGridData.ts +15 -86
  25. package/src/grid/createGridContextObserver.ts +33 -16
  26. package/src/grid/gridObservables.ts +157 -70
  27. package/src/multiGrid/computeMultiGridData.ts +77 -120
  28. package/src/multiGrid/createMultiGridContextObserver.ts +8 -8
  29. package/src/multiGrid/multiGridObservables.ts +236 -171
  30. package/src/multiValue/computeMultiValueData.ts +22 -15
  31. package/src/relationship/computeRelationshipData.ts +16 -4
  32. package/src/series/computeSeriesData.ts +51 -114
  33. package/src/series/createSeriesContextObserver.ts +59 -4
  34. package/src/series/seriesObservables.ts +162 -10
  35. package/src/tree/computeTreeData.ts +6 -3
  36. package/src/types/ComputedData.ts +1 -0
  37. package/src/types/ComputedDataGrid.ts +3 -3
  38. package/src/types/ComputedDataSeries.ts +2 -2
  39. package/src/types/ContextObserverGrid.ts +18 -10
  40. package/src/types/ContextObserverMultiGrid.ts +6 -18
  41. package/src/types/ContextObserverSeries.ts +21 -1
  42. package/src/types/DataFormatter.ts +11 -32
  43. package/src/types/DataFormatterGrid.ts +32 -20
  44. package/src/types/DataFormatterMultiGrid.ts +6 -4
  45. package/src/types/DataFormatterMultiValue.ts +3 -0
  46. package/src/types/DataFormatterRelationship.ts +3 -0
  47. package/src/types/DataFormatterSeries.ts +11 -21
  48. package/src/utils/d3Utils.ts +7 -7
  49. package/src/utils/orbchartsUtils.ts +128 -32
package/src/defaults.ts CHANGED
@@ -7,7 +7,7 @@ import type { DataMultiGrid } from './types/DataMultiGrid'
7
7
  import type { DataMultiValue } from './types/DataMultiValue'
8
8
  import type { DataTree } from './types/DataTree'
9
9
  import type { DataRelationship } from './types/DataRelationship'
10
- import type { DataFormatterBase, DataFormatterValueAxis, DataFormatterGroupAxis } from './types/DataFormatter'
10
+ import type { DataFormatterBase, DataFormatterValueAxis, DataFormatterGroupAxis, DataFormatterContainer } from './types/DataFormatter'
11
11
  import type { DataFormatterSeries } from './types/DataFormatterSeries'
12
12
  import type { DataFormatterGrid, DataFormatterGridGrid } from './types/DataFormatterGrid'
13
13
  import type { DataFormatterMultiGrid, DataFormatterMultiGridGrid } from './types/DataFormatterMultiGrid'
@@ -43,16 +43,9 @@ export const PADDING_DEFAULT: Padding = {
43
43
  left: 60
44
44
  }
45
45
 
46
- // export const HIGHLIGHT_DEFAULT: HighlightDefault = {
47
- // // trigger: 'datum',
48
- // id: null,
49
- // label: null
50
- // }
51
-
52
46
  export const CHART_PARAMS_DEFAULT: ChartParams = {
53
47
  padding: PADDING_DEFAULT,
54
48
  highlightTarget: 'datum',
55
- // highlightDefault: HIGHLIGHT_DEFAULT,
56
49
  highlightDefault: null,
57
50
  colorScheme: 'light',
58
51
  colors: {
@@ -104,45 +97,36 @@ export const DATA_RELATIONA_DEFAULTL: DataRelationship = {
104
97
 
105
98
  // -- Data Formatter --
106
99
 
107
- // 基本欄位
108
- // export const DATA_FORMATTER: DataFormatterBase<ChartType> = {
109
- // // ...GLOBAL_DEFAULT,
110
- // type: ('' as any), // 後面需複蓋掉否則會有問題
111
- // }
112
- // 有value
113
- // export const DATA_FORMATTER_WITH_VALUE: DataFormatterValue = {
114
- // valueFormat: ',.0f'
115
- // }
116
- // 有axis
117
- // export const DATA_FORMATTER_WITH_AXIS: DataFormatterAxis = {
118
- // // domainMinValue: 0,
119
- // // domainMaxValue: undefined,
120
- // // domainMinRange: undefined,
121
- // // domainMaxRange: 0.9
122
- // valueDomain: [0, 'auto'],
123
- // valueRange: [0, 0.9]
124
- // }
125
-
126
- export const DATA_FORMATTER_VALUE_AXIS: DataFormatterValueAxis = {
100
+ export const DATA_FORMATTER_VALUE_AXIS_DEFAULT: DataFormatterValueAxis = {
127
101
  position: 'left',
128
102
  scaleDomain: [0, 'auto'],
129
103
  scaleRange: [0, 0.9],
130
104
  label: '',
131
105
  }
132
106
 
133
- export const DATA_FORMATTER_GROUP_AXIS: DataFormatterGroupAxis = {
107
+ export const DATA_FORMATTER_GROUP_AXIS_DEFAULT: DataFormatterGroupAxis = {
134
108
  position: 'bottom',
135
109
  scaleDomain: [0, 'auto'],
136
110
  scalePadding: 0.5,
137
111
  label: ''
138
112
  }
139
113
 
114
+ export const DATA_FORMATTER_CONTAINER_DEFAULT: DataFormatterContainer = {
115
+ gap: 120,
116
+ rowAmount: 1,
117
+ columnAmount: 1
118
+ }
119
+
140
120
  export const DATA_FORMATTER_SERIES_DEFAULT: DataFormatterSeries = {
141
- // ...DATA_FORMATTER_WITH_VALUE,
142
121
  type: 'series',
143
- visibleFilter: (datum, rowIndex, columnIndex, context) => true,
144
- // unitLabel: '',
122
+ visibleFilter: (datum, context) => true,
123
+ sort: null,
145
124
  seriesLabels: [],
125
+ container: {
126
+ ...DATA_FORMATTER_CONTAINER_DEFAULT
127
+ },
128
+ separateSeries: false,
129
+ sumSeries: false
146
130
  // mapSeries: (datum, rowIndex, columnIndex, { data, dataFormatter }) => {
147
131
  // const seriesIndex = rowIndex >= dataFormatter.seriesLabels.length
148
132
  // ? rowIndex % dataFormatter.seriesLabels.length // 如果index大於所設定的seriesLabels的數量則從頭回來算
@@ -156,38 +140,28 @@ export const DATA_FORMATTER_SERIES_DEFAULT: DataFormatterSeries = {
156
140
  // rowIndex % chartParams.colors[chartParams.colorScheme].series.length
157
141
  // ]
158
142
  // },
159
- sort: null,
160
143
  }
161
144
 
162
145
  export const DATA_FORMATTER_GRID_GRID_DEFAULT: DataFormatterGridGrid = {
163
- visibleFilter: (datum, rowIndex, columnIndex, context) => true,
164
- gridData: {
165
- seriesDirection: 'row',
166
- rowLabels: [],
167
- columnLabels: [],
168
- },
169
- valueAxis: { ...DATA_FORMATTER_VALUE_AXIS },
170
- groupAxis: { ...DATA_FORMATTER_GROUP_AXIS, },
171
- slotIndex: 0,
172
- seriesSlotIndexes: null
146
+ seriesDirection: 'row',
147
+ rowLabels: [],
148
+ columnLabels: [],
149
+ valueAxis: { ...DATA_FORMATTER_VALUE_AXIS_DEFAULT },
150
+ groupAxis: { ...DATA_FORMATTER_GROUP_AXIS_DEFAULT, },
151
+ separateSeries: false,
152
+ // slotIndex: 0,
153
+ // seriesSlotIndexes: null
173
154
  }
174
155
 
175
156
  export const DATA_FORMATTER_GRID_DEFAULT: DataFormatterGrid = {
176
- // ...DATA_FORMATTER_WITH_VALUE,
177
157
  type: 'grid',
158
+ visibleFilter: (datum, context) => true,
178
159
  grid: {
179
160
  ...DATA_FORMATTER_GRID_GRID_DEFAULT
180
161
  },
181
162
  container: {
182
- gap: 120,
183
- rowAmount: 1,
184
- columnAmount: 1
163
+ ...DATA_FORMATTER_CONTAINER_DEFAULT
185
164
  }
186
- // visibleGroupRange: null,
187
- // colorsPredicate: (datum, rowIndex, columnIndex, { chartParams, dataFormatter }) => {
188
- // const seriesIndex = dataFormatter.grid.seriesDirection === 'row' ? rowIndex : columnIndex
189
- // return chartParams.colors[chartParams.colorScheme].series[seriesIndex]
190
- // },
191
165
  }
192
166
 
193
167
  // export const DATA_FORMATTER_MULTI_GRID_MULTI_GRID_DEFAULT: DataFormatterMultiGridMultiGrid = {
@@ -202,38 +176,38 @@ export const DATA_FORMATTER_MULTI_GRID_GRID_DEFAULT: DataFormatterMultiGridGrid
202
176
 
203
177
  export const DATA_FORMATTER_MULTI_GRID_DEFAULT: DataFormatterMultiGrid = {
204
178
  type: 'multiGrid',
205
- // visibleFilter: (datum, rowIndex, columnIndex, context) => true,
179
+ visibleFilter: (datum, context) => true,
206
180
  gridList: [
207
181
  {
208
182
  ...DATA_FORMATTER_MULTI_GRID_GRID_DEFAULT
209
183
  },
210
184
  ],
185
+ separateGrid: false,
211
186
  container: {
212
- gap: 120,
213
- rowAmount: 1,
214
- columnAmount: 1
187
+ ...DATA_FORMATTER_CONTAINER_DEFAULT
215
188
  }
216
189
  }
217
190
 
218
191
  export const DATA_FORMATTER_MULTI_VALUE_DEFAULT: DataFormatterMultiValue = {
219
192
  type: 'multiValue',
220
- visibleFilter: (datum, rowIndex, columnIndex, context) => true,
221
- // labelFormat: (datum: any) => (datum && datum.label) ?? '',
193
+ visibleFilter: (datum, context) => true,
194
+ categoryLabels: [],
222
195
  multiValue: [],
223
- xAxis: { ...DATA_FORMATTER_VALUE_AXIS },
224
- yAxis: { ...DATA_FORMATTER_VALUE_AXIS },
196
+ xAxis: { ...DATA_FORMATTER_VALUE_AXIS_DEFAULT },
197
+ yAxis: { ...DATA_FORMATTER_VALUE_AXIS_DEFAULT },
225
198
  }
226
199
 
227
200
  export const DATA_FORMATTER_TREE_DEFAULT: DataFormatterTree = {
228
201
  type: 'tree',
229
- visibleFilter: (datum, rowIndex, columnIndex, context) => true,
202
+ visibleFilter: (datum, context) => true,
230
203
  // labelFormat: (datum: any) => (datum && datum.label) ?? '',
231
204
  categoryLabels: []
232
205
  }
233
206
 
234
207
  export const DATA_FORMATTER_RELATIONAL_DEFAULT: DataFormatterRelationship = {
235
208
  type: 'relationship',
236
- visibleFilter: (datum, rowIndex, columnIndex, context) => true,
209
+ visibleFilter: (datum, context) => true,
210
+ categoryLabels: []
237
211
  // node: {
238
212
  // // labelFormat: (node: any) => (node && node.label) ?? '',
239
213
  // descriptionFormat: (node: any) => (node && node.label) ?? ''
@@ -244,5 +218,3 @@ export const DATA_FORMATTER_RELATIONAL_DEFAULT: DataFormatterRelationship = {
244
218
  // },
245
219
  }
246
220
 
247
- // -- Render Data --
248
-
@@ -2,20 +2,15 @@ import * as d3 from 'd3'
2
2
  import type { ComputedDataFn } from '../types/ComputedData'
3
3
  import type { DataGrid, DataGridDatum } from '../types/DataGrid'
4
4
  import type { DataFormatterContext } from '../types/DataFormatter'
5
- import type { DataFormatterGrid } from '../types/DataFormatterGrid'
5
+ import type { DataFormatterGrid, DataFormatterGridGrid } from '../types/DataFormatterGrid'
6
6
  import type { ComputedDataGrid, ComputedDatumGrid } from '../types/ComputedDataGrid'
7
7
  import type { Layout } from '../types/Layout'
8
8
  import { formatValueToLabel, createDefaultDatumId, createDefaultSeriesLabel, createDefaultGroupLabel } from '../utils/orbchartsUtils'
9
- import { createAxisLinearScale, createAxisPointScale } from '../utils/d3Utils'
10
9
  import { getMinAndMaxValue, transposeData, createGridSeriesLabels, createGridGroupLabels, seriesColorPredicate } from '../utils/orbchartsUtils'
11
10
 
12
- export interface DataGridDatumTemp extends DataGridDatum {
13
- // _color: string // 暫放的顏色資料
14
- _visible: boolean // 暫放的visible
15
- }
16
-
17
- export function createTransposedDataGrid (context: DataFormatterContext<'grid'>): DataGridDatumTemp[][] {
18
- const { data = [], dataFormatter, chartParams, layout } = context
11
+ // 統一 DataGrid 格式、並欄列資料轉置為一致方式
12
+ export function createTransposedDataGrid (data: DataGrid, dataFormatterGrid: DataFormatterGridGrid): DataGridDatum[][] {
13
+ // const { data = [], dataFormatter, chartParams } = context
19
14
  if (!data.length) {
20
15
  return []
21
16
  }
@@ -38,40 +33,28 @@ export function createTransposedDataGrid (context: DataFormatterContext<'grid'>)
38
33
  })
39
34
 
40
35
  // 完整的資料格式
41
- const dataGrid: DataGridDatumTemp[][] = fullData.map((d, i) => {
36
+ const dataGrid: DataGridDatum[][] = fullData.map((d, i) => {
42
37
  return d.map((_d, _i) => {
43
38
 
44
- // const _color = dataFormatter.colorsPredicate(_d, i, _i, context)
45
- const _visible = dataFormatter.grid.visibleFilter(_d, i, _i, context)
46
-
47
- const datum: DataGridDatumTemp = _d == null
39
+ const datum: DataGridDatum = _d == null
48
40
  ? {
49
41
  id: '',
50
42
  label: '',
51
- // tooltipContent: '',
52
43
  data: {},
53
44
  value: null,
54
- // _color,
55
- _visible
56
45
  }
57
46
  : typeof _d === 'number'
58
47
  ? {
59
48
  id: '',
60
49
  label: '',
61
- // tooltipContent: '',
62
50
  data: {},
63
51
  value: _d,
64
- // _color,
65
- _visible
66
52
  }
67
53
  : {
68
54
  id: _d.id ?? '',
69
55
  label: _d.label ?? '',
70
- // tooltipContent: _d.tooltipContent ?? '',
71
56
  data: _d.data ?? {},
72
57
  value: _d.value,
73
- // _color,
74
- _visible
75
58
  }
76
59
 
77
60
  return datum
@@ -79,7 +62,7 @@ export function createTransposedDataGrid (context: DataFormatterContext<'grid'>)
79
62
  })
80
63
 
81
64
  // 依seriesDirection轉置資料矩陣
82
- const transposedDataGrid = transposeData(dataFormatter.grid.gridData.seriesDirection, dataGrid)
65
+ const transposedDataGrid = transposeData(dataFormatterGrid.seriesDirection, dataGrid)
83
66
 
84
67
  return transposedDataGrid
85
68
  } catch (e) {
@@ -87,43 +70,8 @@ export function createTransposedDataGrid (context: DataFormatterContext<'grid'>)
87
70
  }
88
71
  }
89
72
 
90
- export function createGroupScale (transposedDataGrid: DataGridDatumTemp[][], dataFormatter: DataFormatterGrid, layout: Layout) {
91
- const groupAxisWidth = (dataFormatter.grid.groupAxis.position === 'top' || dataFormatter.grid.groupAxis.position === 'bottom')
92
- ? layout.width
93
- : layout.height
94
- const groupEndIndex = transposedDataGrid[0] ? transposedDataGrid[0].length - 1 : 0
95
- const groupScale: d3.ScaleLinear<number, number> = createAxisLinearScale({
96
- maxValue: groupEndIndex,
97
- minValue: 0,
98
- axisWidth: groupAxisWidth,
99
- scaleDomain: [0, groupEndIndex], // 不使用dataFormatter設定
100
- scaleRange: [0, 1] // 不使用dataFormatter設定
101
- })
102
- return groupScale
103
- }
104
-
105
- export function createSeriesValueScaleArr (transposedDataGrid: DataGridDatumTemp[][], dataFormatter: DataFormatterGrid, layout: Layout) {
106
- const valueAxisWidth = (dataFormatter.grid.valueAxis.position === 'left' || dataFormatter.grid.valueAxis.position === 'right')
107
- ? layout.height
108
- : layout.width
109
-
110
- const visibleData = transposedDataGrid.flat().filter(d => d._visible != false)
111
- const [minValue, maxValue] = getMinAndMaxValue(visibleData)
112
-
113
- return transposedDataGrid.map((seriesData, seriesIndex) => {
114
- const valueScale: d3.ScaleLinear<number, number> = createAxisLinearScale({
115
- maxValue,
116
- minValue,
117
- axisWidth: valueAxisWidth,
118
- scaleDomain: [minValue, maxValue], // 不使用dataFormatter設定
119
- scaleRange: [0, 1] // 不使用dataFormatter設定
120
- })
121
- return valueScale
122
- })
123
- }
124
-
125
73
  export const computeGridData: ComputedDataFn<'grid'> = (context) => {
126
- const { data = [], dataFormatter, chartParams, layout } = context
74
+ const { data = [], dataFormatter, chartParams } = context
127
75
  if (!data.length) {
128
76
  return []
129
77
  }
@@ -133,63 +81,45 @@ export const computeGridData: ComputedDataFn<'grid'> = (context) => {
133
81
  try {
134
82
 
135
83
  // 依seriesDirection轉置資料矩陣
136
- const transposedDataGrid = createTransposedDataGrid(context)
137
-
138
- const groupScale = createGroupScale(transposedDataGrid, dataFormatter, layout)
84
+ const transposedDataGrid = createTransposedDataGrid(data, dataFormatter.grid)
139
85
 
140
86
  const seriesLabels = createGridSeriesLabels({
141
87
  transposedDataGrid,
142
- dataFormatter,
88
+ dataFormatterGrid: dataFormatter.grid,
143
89
  chartType: 'grid'
144
90
  })
145
91
  const groupLabels = createGridGroupLabels({
146
92
  transposedDataGrid,
147
- dataFormatter,
93
+ dataFormatterGrid: dataFormatter.grid,
148
94
  chartType: 'grid'
149
95
  })
150
96
 
151
- // 每一個series的valueScale
152
- const seriesValueScaleArr = createSeriesValueScaleArr(transposedDataGrid, dataFormatter, layout)
153
-
154
- const zeroYArr = transposedDataGrid.map((series, seriesIndex) => {
155
- return seriesValueScaleArr[seriesIndex]!(0)
156
- })
157
-
158
97
  let _index = 0
159
98
  computedDataGrid = transposedDataGrid.map((seriesData, seriesIndex) => {
160
99
  return seriesData.map((groupDatum, groupIndex) => {
161
100
 
162
101
  const defaultId = createDefaultDatumId('grid', 0, seriesIndex, groupIndex)
163
- // const visible = visibleFilter(groupDatum, seriesIndex, groupIndex, context)
164
102
  const groupLabel = groupLabels[groupIndex]
165
- const valueScale = seriesValueScaleArr[seriesIndex]
166
- const axisY = valueScale(groupDatum.value ?? 0)
167
- const zeroY = zeroYArr[seriesIndex]
168
103
 
169
104
  const computedDatum: ComputedDatumGrid = {
170
105
  id: groupDatum.id ? groupDatum.id : defaultId,
171
106
  index: _index,
172
107
  label: groupDatum.label ? groupDatum.label : defaultId,
173
108
  description: groupDatum.description ?? '',
174
- // tooltipContent: groupDatum.tooltipContent ? groupDatum.tooltipContent : dataFormatter.tooltipContentFormat(groupDatum, seriesIndex, groupIndex, context),
175
109
  data: groupDatum.data,
176
110
  value: groupDatum.value,
177
- // valueLabel: formatValueToLabel(groupDatum.value, dataFormatter.valueFormat),
178
111
  gridIndex: 0,
179
- // accSeriesIndex: seriesIndex, // 預設為seriesIndex
180
112
  seriesIndex,
181
113
  seriesLabel: seriesLabels[seriesIndex],
182
114
  groupIndex,
183
115
  groupLabel,
184
- // color: groupDatum._color,
185
116
  color: seriesColorPredicate(seriesIndex, chartParams),
186
- axisX: groupScale(groupIndex),
187
- axisY,
188
- axisYFromZero: axisY - zeroY,
189
- // visible: groupDatum._visible == true && scaleDomainFilter(groupIndex) == true ? true : false // 兩者有一個false即為false
190
- visible: groupDatum._visible
117
+ visible: true // 先給一個預設值
191
118
  }
192
119
 
120
+ // 先建立物件再計算visible欄位
121
+ computedDatum.visible = dataFormatter.visibleFilter(computedDatum, context)
122
+
193
123
  _index ++
194
124
 
195
125
  return computedDatum
@@ -197,7 +127,6 @@ export const computeGridData: ComputedDataFn<'grid'> = (context) => {
197
127
  })
198
128
 
199
129
  } catch (e) {
200
- // console.error(e)
201
130
  throw Error(e)
202
131
  }
203
132
 
@@ -6,15 +6,17 @@ import {
6
6
  groupDataMapObservable,
7
7
  textSizePxObservable } from '../utils/observables'
8
8
  import {
9
+ gridComputedLayoutDataObservable,
9
10
  gridAxesTransformObservable,
10
11
  gridAxesReverseTransformObservable,
11
12
  gridGraphicTransformObservable,
12
13
  gridGraphicReverseScaleObservable,
13
14
  gridAxesSizeObservable,
14
- existSeriesLabelsObservable,
15
+ seriesLabelsObservable,
15
16
  gridVisibleComputedDataObservable,
16
- isSeriesPositionSeprateObservable,
17
- gridContainerObservable } from './gridObservables'
17
+ gridVisibleComputedLayoutDataObservable,
18
+ // isSeriesSeprateObservable,
19
+ gridContainerPositionObservable } from './gridObservables'
18
20
 
19
21
  export const createGridContextObserver: ContextObserverFn<'grid'> = ({ subject, observer }) => {
20
22
 
@@ -22,17 +24,16 @@ export const createGridContextObserver: ContextObserverFn<'grid'> = ({ subject,
22
24
  shareReplay(1)
23
25
  )
24
26
 
25
- const isSeriesPositionSeprate$ = isSeriesPositionSeprateObservable({
26
- computedData$: observer.computedData$,
27
- fullDataFormatter$: observer.fullDataFormatter$
28
- }).pipe(
29
- shareReplay(1)
30
- )
27
+ // const isSeriesSeprate$ = isSeriesSeprateObservable({
28
+ // computedData$: observer.computedData$,
29
+ // fullDataFormatter$: observer.fullDataFormatter$
30
+ // }).pipe(
31
+ // shareReplay(1)
32
+ // )
31
33
 
32
- const gridContainer$ = gridContainerObservable({
34
+ const gridContainerPosition$ = gridContainerPositionObservable({
33
35
  computedData$: observer.computedData$,
34
36
  fullDataFormatter$: observer.fullDataFormatter$,
35
- fullChartParams$: observer.fullChartParams$,
36
37
  layout$: observer.layout$,
37
38
  })
38
39
 
@@ -58,7 +59,7 @@ export const createGridContextObserver: ContextObserverFn<'grid'> = ({ subject,
58
59
  )
59
60
 
60
61
  const gridGraphicReverseScale$ = gridGraphicReverseScaleObservable({
61
- gridContainer$: gridContainer$,
62
+ gridContainerPosition$: gridContainerPosition$,
62
63
  gridAxesTransform$: gridAxesTransform$,
63
64
  gridGraphicTransform$: gridGraphicTransform$,
64
65
  })
@@ -84,7 +85,7 @@ export const createGridContextObserver: ContextObserverFn<'grid'> = ({ subject,
84
85
  shareReplay(1)
85
86
  )
86
87
 
87
- const existSeriesLabels$ = existSeriesLabelsObservable({
88
+ const seriesLabels$ = seriesLabelsObservable({
88
89
  computedData$: observer.computedData$,
89
90
  })
90
91
 
@@ -100,12 +101,26 @@ export const createGridContextObserver: ContextObserverFn<'grid'> = ({ subject,
100
101
  shareReplay(1)
101
102
  )
102
103
 
104
+ const computedLayoutData$ = gridComputedLayoutDataObservable({
105
+ computedData$: observer.computedData$,
106
+ fullDataFormatter$: observer.fullDataFormatter$,
107
+ layout$: observer.layout$,
108
+ }).pipe(
109
+ shareReplay(1)
110
+ )
111
+
103
112
  const visibleComputedData$ = gridVisibleComputedDataObservable({
104
113
  computedData$: observer.computedData$,
105
114
  }).pipe(
106
115
  shareReplay(1)
107
116
  )
108
117
 
118
+ const visibleComputedLayoutData$ = gridVisibleComputedLayoutDataObservable({
119
+ computedLayoutData$: computedLayoutData$,
120
+ }).pipe(
121
+ shareReplay(1)
122
+ )
123
+
109
124
 
110
125
  return {
111
126
  fullParams$: observer.fullParams$,
@@ -114,17 +129,19 @@ export const createGridContextObserver: ContextObserverFn<'grid'> = ({ subject,
114
129
  computedData$: observer.computedData$,
115
130
  layout$: observer.layout$,
116
131
  textSizePx$,
117
- isSeriesPositionSeprate$,
118
- gridContainer$,
132
+ // isSeriesSeprate$,
133
+ gridContainerPosition$,
119
134
  gridAxesTransform$,
120
135
  gridAxesReverseTransform$,
121
136
  gridGraphicTransform$,
122
137
  gridGraphicReverseScale$,
123
138
  gridAxesSize$,
124
139
  gridHighlight$,
125
- existSeriesLabels$,
140
+ seriesLabels$,
126
141
  SeriesDataMap$,
127
142
  GroupDataMap$,
143
+ computedLayoutData$,
128
144
  visibleComputedData$,
145
+ visibleComputedLayoutData$,
129
146
  }
130
147
  }