@orbcharts/plugins-basic 3.0.0-beta.2 → 3.0.0-beta.3

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 (80) hide show
  1. package/LICENSE +200 -200
  2. package/lib/core-types.ts +7 -7
  3. package/lib/core.ts +6 -6
  4. package/lib/plugins-basic-types.ts +6 -6
  5. package/package.json +44 -44
  6. package/src/base/BaseBarStack.ts +780 -780
  7. package/src/base/BaseBars.ts +765 -765
  8. package/src/base/BaseBarsTriangle.ts +674 -674
  9. package/src/base/BaseDots.ts +515 -515
  10. package/src/base/BaseGroupAxis.ts +679 -679
  11. package/src/base/BaseLegend.ts +680 -680
  12. package/src/base/BaseLineAreas.ts +629 -629
  13. package/src/base/BaseLines.ts +706 -706
  14. package/src/base/BaseTooltip.ts +385 -385
  15. package/src/base/BaseValueAxis.ts +580 -580
  16. package/src/base/types.ts +2 -2
  17. package/src/const.ts +30 -30
  18. package/src/grid/defaults.ts +244 -244
  19. package/src/grid/gridObservables.ts +545 -545
  20. package/src/grid/index.ts +16 -16
  21. package/src/grid/plugins/BarStack.ts +64 -64
  22. package/src/grid/plugins/Bars.ts +69 -69
  23. package/src/grid/plugins/BarsPN.ts +66 -66
  24. package/src/grid/plugins/BarsTriangle.ts +73 -73
  25. package/src/grid/plugins/Dots.ts +68 -68
  26. package/src/grid/plugins/GridLegend.ts +107 -107
  27. package/src/grid/plugins/GridTooltip.ts +66 -66
  28. package/src/grid/plugins/GridZoom.ts +218 -218
  29. package/src/grid/plugins/GroupAux.ts +1098 -1098
  30. package/src/grid/plugins/GroupAxis.ts +97 -97
  31. package/src/grid/plugins/LineAreas.ts +65 -65
  32. package/src/grid/plugins/Lines.ts +59 -59
  33. package/src/grid/plugins/ValueAxis.ts +93 -93
  34. package/src/grid/plugins/ValueStackAxis.ts +95 -95
  35. package/src/index.ts +9 -9
  36. package/src/multiGrid/defaults.ts +224 -224
  37. package/src/multiGrid/index.ts +14 -14
  38. package/src/multiGrid/multiGridObservables.ts +49 -49
  39. package/src/multiGrid/plugins/MultiBarStack.ts +106 -106
  40. package/src/multiGrid/plugins/MultiBars.ts +108 -108
  41. package/src/multiGrid/plugins/MultiBarsTriangle.ts +114 -114
  42. package/src/multiGrid/plugins/MultiDots.ts +102 -102
  43. package/src/multiGrid/plugins/MultiGridLegend.ts +159 -159
  44. package/src/multiGrid/plugins/MultiGridTooltip.ts +66 -66
  45. package/src/multiGrid/plugins/MultiGroupAxis.ts +137 -137
  46. package/src/multiGrid/plugins/MultiLineAreas.ts +107 -107
  47. package/src/multiGrid/plugins/MultiLines.ts +101 -101
  48. package/src/multiGrid/plugins/MultiValueAxis.ts +133 -133
  49. package/src/multiGrid/plugins/MultiValueStackAxis.ts +133 -133
  50. package/src/multiGrid/plugins/OverlappingValueAxes.ts +299 -299
  51. package/src/multiGrid/plugins/OverlappingValueStackAxes.ts +298 -298
  52. package/src/noneData/defaults.ts +102 -102
  53. package/src/noneData/index.ts +3 -3
  54. package/src/noneData/plugins/Container.ts +27 -27
  55. package/src/noneData/plugins/Tooltip.ts +373 -373
  56. package/src/series/defaults.ts +206 -206
  57. package/src/series/index.ts +9 -9
  58. package/src/series/plugins/Bubbles.ts +603 -603
  59. package/src/series/plugins/Pie.ts +623 -623
  60. package/src/series/plugins/PieEventTexts.ts +283 -283
  61. package/src/series/plugins/PieLabels.ts +640 -640
  62. package/src/series/plugins/Rose.ts +516 -516
  63. package/src/series/plugins/RoseLabels.ts +600 -600
  64. package/src/series/plugins/SeriesLegend.ts +107 -107
  65. package/src/series/plugins/SeriesTooltip.ts +66 -66
  66. package/src/series/seriesObservables.ts +145 -145
  67. package/src/series/seriesUtils.ts +51 -51
  68. package/src/tree/defaults.ts +78 -78
  69. package/src/tree/index.ts +4 -4
  70. package/src/tree/plugins/TreeLegend.ts +107 -107
  71. package/src/tree/plugins/TreeMap.ts +333 -333
  72. package/src/tree/plugins/TreeTooltip.ts +66 -66
  73. package/src/utils/commonUtils.ts +21 -21
  74. package/src/utils/d3Graphics.ts +174 -174
  75. package/src/utils/d3Utils.ts +73 -73
  76. package/src/utils/observables.ts +14 -14
  77. package/src/utils/orbchartsUtils.ts +100 -100
  78. package/tsconfig.base.json +13 -13
  79. package/tsconfig.json +2 -2
  80. package/vite.config.js +22 -22
package/src/grid/index.ts CHANGED
@@ -1,16 +1,16 @@
1
- export * from './defaults'
2
- // export * from './types'
3
- export { Lines } from './plugins/Lines'
4
- export { LineAreas } from './plugins/LineAreas'
5
- export { Bars } from './plugins/Bars'
6
- export { BarsPN } from './plugins/BarsPN'
7
- export { BarStack } from './plugins/BarStack'
8
- export { BarsTriangle } from './plugins/BarsTriangle'
9
- export { Dots } from './plugins/Dots'
10
- export { GridLegend } from './plugins/GridLegend'
11
- export { GroupAxis } from './plugins/GroupAxis'
12
- export { ValueAxis } from './plugins/ValueAxis'
13
- export { ValueStackAxis } from './plugins/ValueStackAxis'
14
- export { GridTooltip } from './plugins/GridTooltip'
15
- export { GridZoom } from './plugins/GridZoom'
16
- export { GroupAux } from './plugins/GroupAux'
1
+ export * from './defaults'
2
+ // export * from './types'
3
+ export { Lines } from './plugins/Lines'
4
+ export { LineAreas } from './plugins/LineAreas'
5
+ export { Bars } from './plugins/Bars'
6
+ export { BarsPN } from './plugins/BarsPN'
7
+ export { BarStack } from './plugins/BarStack'
8
+ export { BarsTriangle } from './plugins/BarsTriangle'
9
+ export { Dots } from './plugins/Dots'
10
+ export { GridLegend } from './plugins/GridLegend'
11
+ export { GroupAxis } from './plugins/GroupAxis'
12
+ export { ValueAxis } from './plugins/ValueAxis'
13
+ export { ValueStackAxis } from './plugins/ValueStackAxis'
14
+ export { GridTooltip } from './plugins/GridTooltip'
15
+ export { GridZoom } from './plugins/GridZoom'
16
+ export { GroupAux } from './plugins/GroupAux'
@@ -1,65 +1,65 @@
1
- import {
2
- map,
3
- distinctUntilChanged,
4
- shareReplay,
5
- takeUntil,
6
- Subject,
7
- Observable } from 'rxjs'
8
- import type { DefinePluginConfig } from '../../../lib/core-types'
9
- import { defineGridPlugin } from '../../../lib/core'
10
- import { DEFAULT_BAR_STACK_PARAMS } from '../defaults'
11
- import { LAYER_INDEX_OF_GRAPHIC } from '../../const'
12
- import { createBaseBarStack } from '../../base/BaseBarStack'
13
-
14
- const pluginName = 'BarStack'
15
-
16
- const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_BAR_STACK_PARAMS> = {
17
- name: pluginName,
18
- defaultParams: DEFAULT_BAR_STACK_PARAMS,
19
- layerIndex: 5,
20
- validator: (params, { validateColumns }) => {
21
- const result = validateColumns(params, {
22
- barWidth: {
23
- toBeTypes: ['number']
24
- },
25
- barGroupPadding: {
26
- toBeTypes: ['number']
27
- },
28
- barRadius: {
29
- toBeTypes: ['number', 'boolean']
30
- }
31
- })
32
- return result
33
- }
34
- }
35
-
36
- export const BarStack = defineGridPlugin(pluginConfig)(({ selection, name, subject, observer }) => {
37
- const destroy$ = new Subject()
38
-
39
- const unsubscribeBaseBars = createBaseBarStack(pluginName, {
40
- selection,
41
- computedData$: observer.computedData$,
42
- computedLayoutData$: observer.computedLayoutData$,
43
- visibleComputedData$: observer.visibleComputedData$,
44
- visibleComputedLayoutData$: observer.visibleComputedLayoutData$,
45
- seriesLabels$: observer.seriesLabels$,
46
- SeriesDataMap$: observer.SeriesDataMap$,
47
- GroupDataMap$: observer.GroupDataMap$,
48
- fullParams$: observer.fullParams$,
49
- fullDataFormatter$: observer.fullDataFormatter$,
50
- fullChartParams$: observer.fullChartParams$,
51
- gridAxesTransform$: observer.gridAxesTransform$,
52
- gridGraphicTransform$: observer.gridGraphicTransform$,
53
- gridGraphicReverseScale$: observer.gridGraphicReverseScale$,
54
- gridAxesSize$: observer.gridAxesSize$,
55
- gridHighlight$: observer.gridHighlight$,
56
- gridContainerPosition$: observer.gridContainerPosition$,
57
- isSeriesSeprate$: observer.isSeriesSeprate$,
58
- event$: subject.event$,
59
- })
60
-
61
- return () => {
62
- destroy$.next(undefined)
63
- unsubscribeBaseBars()
64
- }
1
+ import {
2
+ map,
3
+ distinctUntilChanged,
4
+ shareReplay,
5
+ takeUntil,
6
+ Subject,
7
+ Observable } from 'rxjs'
8
+ import type { DefinePluginConfig } from '../../../lib/core-types'
9
+ import { defineGridPlugin } from '../../../lib/core'
10
+ import { DEFAULT_BAR_STACK_PARAMS } from '../defaults'
11
+ import { LAYER_INDEX_OF_GRAPHIC } from '../../const'
12
+ import { createBaseBarStack } from '../../base/BaseBarStack'
13
+
14
+ const pluginName = 'BarStack'
15
+
16
+ const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_BAR_STACK_PARAMS> = {
17
+ name: pluginName,
18
+ defaultParams: DEFAULT_BAR_STACK_PARAMS,
19
+ layerIndex: 5,
20
+ validator: (params, { validateColumns }) => {
21
+ const result = validateColumns(params, {
22
+ barWidth: {
23
+ toBeTypes: ['number']
24
+ },
25
+ barGroupPadding: {
26
+ toBeTypes: ['number']
27
+ },
28
+ barRadius: {
29
+ toBeTypes: ['number', 'boolean']
30
+ }
31
+ })
32
+ return result
33
+ }
34
+ }
35
+
36
+ export const BarStack = defineGridPlugin(pluginConfig)(({ selection, name, subject, observer }) => {
37
+ const destroy$ = new Subject()
38
+
39
+ const unsubscribeBaseBars = createBaseBarStack(pluginName, {
40
+ selection,
41
+ computedData$: observer.computedData$,
42
+ computedLayoutData$: observer.computedLayoutData$,
43
+ visibleComputedData$: observer.visibleComputedData$,
44
+ visibleComputedLayoutData$: observer.visibleComputedLayoutData$,
45
+ seriesLabels$: observer.seriesLabels$,
46
+ SeriesDataMap$: observer.SeriesDataMap$,
47
+ GroupDataMap$: observer.GroupDataMap$,
48
+ fullParams$: observer.fullParams$,
49
+ fullDataFormatter$: observer.fullDataFormatter$,
50
+ fullChartParams$: observer.fullChartParams$,
51
+ gridAxesTransform$: observer.gridAxesTransform$,
52
+ gridGraphicTransform$: observer.gridGraphicTransform$,
53
+ gridGraphicReverseScale$: observer.gridGraphicReverseScale$,
54
+ gridAxesSize$: observer.gridAxesSize$,
55
+ gridHighlight$: observer.gridHighlight$,
56
+ gridContainerPosition$: observer.gridContainerPosition$,
57
+ isSeriesSeprate$: observer.isSeriesSeprate$,
58
+ event$: subject.event$,
59
+ })
60
+
61
+ return () => {
62
+ destroy$.next(undefined)
63
+ unsubscribeBaseBars()
64
+ }
65
65
  })
@@ -1,69 +1,69 @@
1
- import {
2
- Subject,
3
- Observable,
4
- map,
5
- distinctUntilChanged,
6
- shareReplay,
7
- takeUntil
8
- } from 'rxjs'
9
- import type { DefinePluginConfig } from '../../../lib/core-types'
10
- import {
11
- defineGridPlugin } from '../../../lib/core'
12
- import { DEFAULT_BARS_PARAMS } from '../defaults'
13
- import { LAYER_INDEX_OF_GRAPHIC } from '../../const'
14
- import { createBaseBars } from '../../base/BaseBars'
15
-
16
- const pluginName = 'Bars'
17
-
18
- const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_BARS_PARAMS> = {
19
- name: pluginName,
20
- defaultParams: DEFAULT_BARS_PARAMS,
21
- layerIndex: LAYER_INDEX_OF_GRAPHIC,
22
- validator: (params, { validateColumns }) => {
23
- const result = validateColumns(params, {
24
- barWidth: {
25
- toBeTypes: ['number']
26
- },
27
- barPadding: {
28
- toBeTypes: ['number']
29
- },
30
- barGroupPadding: {
31
- toBeTypes: ['number']
32
- },
33
- barRadius: {
34
- toBeTypes: ['number', 'boolean']
35
- }
36
- })
37
- return result
38
- }
39
- }
40
-
41
- export const Bars = defineGridPlugin(pluginConfig)(({ selection, name, subject, observer }) => {
42
- const destroy$ = new Subject()
43
-
44
- const unsubscribeBaseBars = createBaseBars(pluginName, {
45
- selection,
46
- computedData$: observer.computedData$,
47
- computedLayoutData$: observer.computedLayoutData$,
48
- visibleComputedData$: observer.visibleComputedData$,
49
- visibleComputedLayoutData$: observer.visibleComputedLayoutData$,
50
- seriesLabels$: observer.seriesLabels$,
51
- SeriesDataMap$: observer.SeriesDataMap$,
52
- GroupDataMap$: observer.GroupDataMap$,
53
- fullParams$: observer.fullParams$,
54
- fullChartParams$: observer.fullChartParams$,
55
- gridAxesTransform$: observer.gridAxesTransform$,
56
- gridGraphicTransform$: observer.gridGraphicTransform$,
57
- gridGraphicReverseScale$: observer.gridGraphicReverseScale$,
58
- gridAxesSize$: observer.gridAxesSize$,
59
- gridHighlight$: observer.gridHighlight$,
60
- gridContainerPosition$: observer.gridContainerPosition$,
61
- isSeriesSeprate$: observer.isSeriesSeprate$,
62
- event$: subject.event$,
63
- })
64
-
65
- return () => {
66
- destroy$.next(undefined)
67
- unsubscribeBaseBars()
68
- }
69
- })
1
+ import {
2
+ Subject,
3
+ Observable,
4
+ map,
5
+ distinctUntilChanged,
6
+ shareReplay,
7
+ takeUntil
8
+ } from 'rxjs'
9
+ import type { DefinePluginConfig } from '../../../lib/core-types'
10
+ import {
11
+ defineGridPlugin } from '../../../lib/core'
12
+ import { DEFAULT_BARS_PARAMS } from '../defaults'
13
+ import { LAYER_INDEX_OF_GRAPHIC } from '../../const'
14
+ import { createBaseBars } from '../../base/BaseBars'
15
+
16
+ const pluginName = 'Bars'
17
+
18
+ const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_BARS_PARAMS> = {
19
+ name: pluginName,
20
+ defaultParams: DEFAULT_BARS_PARAMS,
21
+ layerIndex: LAYER_INDEX_OF_GRAPHIC,
22
+ validator: (params, { validateColumns }) => {
23
+ const result = validateColumns(params, {
24
+ barWidth: {
25
+ toBeTypes: ['number']
26
+ },
27
+ barPadding: {
28
+ toBeTypes: ['number']
29
+ },
30
+ barGroupPadding: {
31
+ toBeTypes: ['number']
32
+ },
33
+ barRadius: {
34
+ toBeTypes: ['number', 'boolean']
35
+ }
36
+ })
37
+ return result
38
+ }
39
+ }
40
+
41
+ export const Bars = defineGridPlugin(pluginConfig)(({ selection, name, subject, observer }) => {
42
+ const destroy$ = new Subject()
43
+
44
+ const unsubscribeBaseBars = createBaseBars(pluginName, {
45
+ selection,
46
+ computedData$: observer.computedData$,
47
+ computedLayoutData$: observer.computedLayoutData$,
48
+ visibleComputedData$: observer.visibleComputedData$,
49
+ visibleComputedLayoutData$: observer.visibleComputedLayoutData$,
50
+ seriesLabels$: observer.seriesLabels$,
51
+ SeriesDataMap$: observer.SeriesDataMap$,
52
+ GroupDataMap$: observer.GroupDataMap$,
53
+ fullParams$: observer.fullParams$,
54
+ fullChartParams$: observer.fullChartParams$,
55
+ gridAxesTransform$: observer.gridAxesTransform$,
56
+ gridGraphicTransform$: observer.gridGraphicTransform$,
57
+ gridGraphicReverseScale$: observer.gridGraphicReverseScale$,
58
+ gridAxesSize$: observer.gridAxesSize$,
59
+ gridHighlight$: observer.gridHighlight$,
60
+ gridContainerPosition$: observer.gridContainerPosition$,
61
+ isSeriesSeprate$: observer.isSeriesSeprate$,
62
+ event$: subject.event$,
63
+ })
64
+
65
+ return () => {
66
+ destroy$.next(undefined)
67
+ unsubscribeBaseBars()
68
+ }
69
+ })
@@ -1,66 +1,66 @@
1
- import {
2
- of,
3
- Subject,
4
- Observable } from 'rxjs'
5
- import type { DefinePluginConfig } from '../../../lib/core-types'
6
- import {
7
- defineGridPlugin } from '../../../lib/core'
8
- import { DEFAULT_BARS_PARAMS } from '../defaults'
9
- import { LAYER_INDEX_OF_GRAPHIC } from '../../const'
10
- import { createBaseBars } from '../../base/BaseBars'
11
-
12
- const pluginName = 'BarsPN'
13
-
14
- const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_BARS_PARAMS> = {
15
- name: pluginName,
16
- defaultParams: DEFAULT_BARS_PARAMS,
17
- layerIndex: LAYER_INDEX_OF_GRAPHIC,
18
- validator: (params, { validateColumns }) => {
19
- const result = validateColumns(params, {
20
- barWidth: {
21
- toBeTypes: ['number']
22
- },
23
- barPadding: {
24
- toBeTypes: ['number']
25
- },
26
- barGroupPadding: {
27
- toBeTypes: ['number']
28
- },
29
- barRadius: {
30
- toBeTypes: ['number', 'boolean']
31
- }
32
- })
33
- return result
34
- }
35
- }
36
-
37
- export const BarsPN = defineGridPlugin(pluginConfig)(({ selection, name, subject, observer }) => {
38
- const destroy$ = new Subject()
39
-
40
- const unsubscribeBaseBars = createBaseBars(pluginName, {
41
- selection,
42
- computedData$: observer.computedData$,
43
- computedLayoutData$: observer.computedLayoutData$,
44
- visibleComputedData$: observer.visibleComputedData$,
45
- visibleComputedLayoutData$: observer.visibleComputedLayoutData$,
46
- seriesLabels$: observer.seriesLabels$,
47
- SeriesDataMap$: observer.SeriesDataMap$,
48
- GroupDataMap$: observer.GroupDataMap$,
49
- fullParams$: observer.fullParams$,
50
- fullChartParams$: observer.fullChartParams$,
51
- gridAxesTransform$: observer.gridAxesTransform$,
52
- gridGraphicTransform$: observer.gridGraphicTransform$,
53
- gridGraphicReverseScale$: observer.gridGraphicReverseScale$,
54
- gridAxesSize$: observer.gridAxesSize$,
55
- gridHighlight$: observer.gridHighlight$,
56
- gridContainerPosition$: observer.gridContainerPosition$,
57
- // isSeriesSeprate$: observer.isSeriesSeprate$,
58
- isSeriesSeprate$: of(true), // hack: 永遠為true,可以強制讓每組series的bars的x位置都是一樣的
59
- event$: subject.event$,
60
- })
61
-
62
- return () => {
63
- destroy$.next(undefined)
64
- unsubscribeBaseBars()
65
- }
66
- })
1
+ import {
2
+ of,
3
+ Subject,
4
+ Observable } from 'rxjs'
5
+ import type { DefinePluginConfig } from '../../../lib/core-types'
6
+ import {
7
+ defineGridPlugin } from '../../../lib/core'
8
+ import { DEFAULT_BARS_PARAMS } from '../defaults'
9
+ import { LAYER_INDEX_OF_GRAPHIC } from '../../const'
10
+ import { createBaseBars } from '../../base/BaseBars'
11
+
12
+ const pluginName = 'BarsPN'
13
+
14
+ const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_BARS_PARAMS> = {
15
+ name: pluginName,
16
+ defaultParams: DEFAULT_BARS_PARAMS,
17
+ layerIndex: LAYER_INDEX_OF_GRAPHIC,
18
+ validator: (params, { validateColumns }) => {
19
+ const result = validateColumns(params, {
20
+ barWidth: {
21
+ toBeTypes: ['number']
22
+ },
23
+ barPadding: {
24
+ toBeTypes: ['number']
25
+ },
26
+ barGroupPadding: {
27
+ toBeTypes: ['number']
28
+ },
29
+ barRadius: {
30
+ toBeTypes: ['number', 'boolean']
31
+ }
32
+ })
33
+ return result
34
+ }
35
+ }
36
+
37
+ export const BarsPN = defineGridPlugin(pluginConfig)(({ selection, name, subject, observer }) => {
38
+ const destroy$ = new Subject()
39
+
40
+ const unsubscribeBaseBars = createBaseBars(pluginName, {
41
+ selection,
42
+ computedData$: observer.computedData$,
43
+ computedLayoutData$: observer.computedLayoutData$,
44
+ visibleComputedData$: observer.visibleComputedData$,
45
+ visibleComputedLayoutData$: observer.visibleComputedLayoutData$,
46
+ seriesLabels$: observer.seriesLabels$,
47
+ SeriesDataMap$: observer.SeriesDataMap$,
48
+ GroupDataMap$: observer.GroupDataMap$,
49
+ fullParams$: observer.fullParams$,
50
+ fullChartParams$: observer.fullChartParams$,
51
+ gridAxesTransform$: observer.gridAxesTransform$,
52
+ gridGraphicTransform$: observer.gridGraphicTransform$,
53
+ gridGraphicReverseScale$: observer.gridGraphicReverseScale$,
54
+ gridAxesSize$: observer.gridAxesSize$,
55
+ gridHighlight$: observer.gridHighlight$,
56
+ gridContainerPosition$: observer.gridContainerPosition$,
57
+ // isSeriesSeprate$: observer.isSeriesSeprate$,
58
+ isSeriesSeprate$: of(true), // hack: 永遠為true,可以強制讓每組series的bars的x位置都是一樣的
59
+ event$: subject.event$,
60
+ })
61
+
62
+ return () => {
63
+ destroy$.next(undefined)
64
+ unsubscribeBaseBars()
65
+ }
66
+ })
@@ -1,74 +1,74 @@
1
- import {
2
- Subject,
3
- Observable,
4
- takeUntil,
5
- map,
6
- distinctUntilChanged,
7
- shareReplay
8
- } from 'rxjs'
9
- import type { DefinePluginConfig } from '../../../lib/core-types'
10
- import { defineGridPlugin } from '../../../lib/core'
11
- import { DEFAULT_BARS_TRIANGLE_PARAMS } from '../defaults'
12
- import { LAYER_INDEX_OF_GRAPHIC } from '../../const'
13
- import { createBaseBarsTriangle } from '../../base/BaseBarsTriangle'
14
-
15
- const pluginName = 'BarsTriangle'
16
-
17
- const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_BARS_TRIANGLE_PARAMS> = {
18
- name: pluginName,
19
- defaultParams: DEFAULT_BARS_TRIANGLE_PARAMS,
20
- layerIndex: 5,
21
- validator: (params, { validateColumns }) => {
22
- const result = validateColumns(params, {
23
- barWidth: {
24
- toBeTypes: ['number']
25
- },
26
- barPadding: {
27
- toBeTypes: ['number']
28
- },
29
- barGroupPadding: {
30
- toBeTypes: ['number']
31
- },
32
- linearGradientOpacity: {
33
- toBe: '[number, number]',
34
- test: (value: any) => {
35
- return Array.isArray(value)
36
- && value.length === 2
37
- && typeof value[0] === 'number'
38
- && typeof value[1] === 'number'
39
- }
40
- }
41
- })
42
- return result
43
- }
44
- }
45
-
46
- export const BarsTriangle = defineGridPlugin(pluginConfig)(({ selection, name, subject, observer }) => {
47
- const destroy$ = new Subject()
48
-
49
- const unsubscribeBaseBars = createBaseBarsTriangle(pluginName, {
50
- selection,
51
- computedData$: observer.computedData$,
52
- computedLayoutData$: observer.computedLayoutData$,
53
- visibleComputedData$: observer.visibleComputedData$,
54
- visibleComputedLayoutData$: observer.visibleComputedLayoutData$,
55
- fullDataFormatter$: observer.fullDataFormatter$,
56
- seriesLabels$: observer.seriesLabels$,
57
- SeriesDataMap$: observer.SeriesDataMap$,
58
- GroupDataMap$: observer.GroupDataMap$,
59
- fullParams$: observer.fullParams$,
60
- fullChartParams$: observer.fullChartParams$,
61
- gridAxesTransform$: observer.gridAxesTransform$,
62
- gridGraphicTransform$: observer.gridGraphicTransform$,
63
- gridAxesSize$: observer.gridAxesSize$,
64
- gridHighlight$: observer.gridHighlight$,
65
- gridContainerPosition$: observer.gridContainerPosition$,
66
- isSeriesSeprate$: observer.isSeriesSeprate$,
67
- event$: subject.event$,
68
- })
69
-
70
- return () => {
71
- destroy$.next(undefined)
72
- unsubscribeBaseBars()
73
- }
1
+ import {
2
+ Subject,
3
+ Observable,
4
+ takeUntil,
5
+ map,
6
+ distinctUntilChanged,
7
+ shareReplay
8
+ } from 'rxjs'
9
+ import type { DefinePluginConfig } from '../../../lib/core-types'
10
+ import { defineGridPlugin } from '../../../lib/core'
11
+ import { DEFAULT_BARS_TRIANGLE_PARAMS } from '../defaults'
12
+ import { LAYER_INDEX_OF_GRAPHIC } from '../../const'
13
+ import { createBaseBarsTriangle } from '../../base/BaseBarsTriangle'
14
+
15
+ const pluginName = 'BarsTriangle'
16
+
17
+ const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_BARS_TRIANGLE_PARAMS> = {
18
+ name: pluginName,
19
+ defaultParams: DEFAULT_BARS_TRIANGLE_PARAMS,
20
+ layerIndex: 5,
21
+ validator: (params, { validateColumns }) => {
22
+ const result = validateColumns(params, {
23
+ barWidth: {
24
+ toBeTypes: ['number']
25
+ },
26
+ barPadding: {
27
+ toBeTypes: ['number']
28
+ },
29
+ barGroupPadding: {
30
+ toBeTypes: ['number']
31
+ },
32
+ linearGradientOpacity: {
33
+ toBe: '[number, number]',
34
+ test: (value: any) => {
35
+ return Array.isArray(value)
36
+ && value.length === 2
37
+ && typeof value[0] === 'number'
38
+ && typeof value[1] === 'number'
39
+ }
40
+ }
41
+ })
42
+ return result
43
+ }
44
+ }
45
+
46
+ export const BarsTriangle = defineGridPlugin(pluginConfig)(({ selection, name, subject, observer }) => {
47
+ const destroy$ = new Subject()
48
+
49
+ const unsubscribeBaseBars = createBaseBarsTriangle(pluginName, {
50
+ selection,
51
+ computedData$: observer.computedData$,
52
+ computedLayoutData$: observer.computedLayoutData$,
53
+ visibleComputedData$: observer.visibleComputedData$,
54
+ visibleComputedLayoutData$: observer.visibleComputedLayoutData$,
55
+ fullDataFormatter$: observer.fullDataFormatter$,
56
+ seriesLabels$: observer.seriesLabels$,
57
+ SeriesDataMap$: observer.SeriesDataMap$,
58
+ GroupDataMap$: observer.GroupDataMap$,
59
+ fullParams$: observer.fullParams$,
60
+ fullChartParams$: observer.fullChartParams$,
61
+ gridAxesTransform$: observer.gridAxesTransform$,
62
+ gridGraphicTransform$: observer.gridGraphicTransform$,
63
+ gridAxesSize$: observer.gridAxesSize$,
64
+ gridHighlight$: observer.gridHighlight$,
65
+ gridContainerPosition$: observer.gridContainerPosition$,
66
+ isSeriesSeprate$: observer.isSeriesSeprate$,
67
+ event$: subject.event$,
68
+ })
69
+
70
+ return () => {
71
+ destroy$.next(undefined)
72
+ unsubscribeBaseBars()
73
+ }
74
74
  })