@orbcharts/plugins-basic 3.0.0-beta.9 → 3.0.0

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 (237) hide show
  1. package/dist/lib/plugins-basic-types.d.ts +1 -0
  2. package/dist/orbcharts-plugins-basic.es.js +12358 -10836
  3. package/dist/orbcharts-plugins-basic.umd.js +273 -110
  4. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseBars.d.ts +3 -3
  5. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseBarsTriangle.d.ts +3 -3
  6. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseDots.d.ts +3 -3
  7. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseLineAreas.d.ts +3 -3
  8. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseLines.d.ts +3 -3
  9. package/dist/src/base/BaseRacingBars.d.ts +23 -0
  10. package/dist/src/base/BaseRacingLabels.d.ts +20 -0
  11. package/dist/src/base/BaseRacingValueLabels.d.ts +20 -0
  12. package/dist/{orbcharts-plugins-basic/src/base/BaseStackedBar.d.ts → src/base/BaseStackedBars.d.ts} +7 -7
  13. package/dist/{orbcharts-plugins-basic/src → src}/base/BaseValueAxis.d.ts +4 -7
  14. package/dist/src/base/BaseXAxis.d.ts +20 -0
  15. package/dist/src/base/BaseYAxis.d.ts +18 -0
  16. package/dist/{orbcharts-plugins-basic/src → src}/grid/defaults.d.ts +3 -3
  17. package/dist/{orbcharts-plugins-basic/src → src}/grid/gridObservables.d.ts +8 -1
  18. package/dist/{orbcharts-plugins-basic/src → src}/grid/index.d.ts +2 -2
  19. package/dist/src/grid/plugins/Bars.d.ts +1 -0
  20. package/dist/src/grid/plugins/BarsPN.d.ts +1 -0
  21. package/dist/src/grid/plugins/BarsTriangle.d.ts +1 -0
  22. package/dist/src/grid/plugins/Dots.d.ts +1 -0
  23. package/dist/src/grid/plugins/GridLegend.d.ts +1 -0
  24. package/dist/src/grid/plugins/GridTooltip.d.ts +1 -0
  25. package/dist/src/grid/plugins/GroupAux.d.ts +3 -0
  26. package/dist/src/grid/plugins/GroupAxis.d.ts +1 -0
  27. package/dist/src/grid/plugins/GroupZoom.d.ts +1 -0
  28. package/dist/src/grid/plugins/LineAreas.d.ts +1 -0
  29. package/dist/src/grid/plugins/Lines.d.ts +1 -0
  30. package/dist/src/grid/plugins/StackedBars.d.ts +1 -0
  31. package/dist/src/grid/plugins/StackedValueAxis.d.ts +1 -0
  32. package/dist/src/grid/plugins/ValueAxis.d.ts +1 -0
  33. package/dist/src/index.d.ts +7 -1
  34. package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/defaults.d.ts +2 -2
  35. package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/index.d.ts +1 -1
  36. package/dist/src/multiGrid/plugins/MultiBars.d.ts +1 -0
  37. package/dist/src/multiGrid/plugins/MultiBarsTriangle.d.ts +1 -0
  38. package/dist/src/multiGrid/plugins/MultiDots.d.ts +1 -0
  39. package/dist/src/multiGrid/plugins/MultiGridLegend.d.ts +1 -0
  40. package/dist/src/multiGrid/plugins/MultiGridTooltip.d.ts +1 -0
  41. package/dist/src/multiGrid/plugins/MultiGroupAxis.d.ts +1 -0
  42. package/dist/src/multiGrid/plugins/MultiLineAreas.d.ts +1 -0
  43. package/dist/src/multiGrid/plugins/MultiLines.d.ts +1 -0
  44. package/dist/src/multiGrid/plugins/MultiStackedBars.d.ts +1 -0
  45. package/dist/src/multiGrid/plugins/MultiStackedValueAxis.d.ts +1 -0
  46. package/dist/src/multiGrid/plugins/MultiValueAxis.d.ts +1 -0
  47. package/dist/src/multiGrid/plugins/OverlappingStackedValueAxes.d.ts +1 -0
  48. package/dist/src/multiGrid/plugins/OverlappingValueAxes.d.ts +1 -0
  49. package/dist/src/multiValue/defaults.d.ts +13 -0
  50. package/dist/{orbcharts-plugins-basic/src → src}/multiValue/index.d.ts +5 -1
  51. package/dist/src/multiValue/multiValueObservables.d.ts +56 -0
  52. package/dist/src/multiValue/plugins/MultiValueLegend.d.ts +1 -0
  53. package/dist/src/multiValue/plugins/MultiValueTooltip.d.ts +1 -0
  54. package/dist/src/multiValue/plugins/RacingBars.d.ts +1 -0
  55. package/dist/src/multiValue/plugins/RacingCounterTexts.d.ts +3 -0
  56. package/dist/src/multiValue/plugins/RacingValueAxis.d.ts +1 -0
  57. package/dist/src/multiValue/plugins/Scatter.d.ts +3 -0
  58. package/dist/src/multiValue/plugins/ScatterBubbles.d.ts +3 -0
  59. package/dist/src/multiValue/plugins/XAxis.d.ts +1 -0
  60. package/dist/src/multiValue/plugins/XYAux.d.ts +3 -0
  61. package/dist/src/multiValue/plugins/XYAxes.d.ts +1 -0
  62. package/dist/src/multiValue/plugins/XYAxes_legacy.d.ts +3 -0
  63. package/dist/src/multiValue/plugins/XZoom.d.ts +1 -0
  64. package/dist/src/relationship/plugins/ForceDirected.d.ts +3 -0
  65. package/dist/src/relationship/plugins/ForceDirectedBubbles.d.ts +3 -0
  66. package/dist/src/relationship/plugins/RelationshipLegend.d.ts +1 -0
  67. package/dist/src/relationship/plugins/RelationshipTooltip.d.ts +1 -0
  68. package/dist/src/series/plugins/Bubbles.d.ts +3 -0
  69. package/dist/src/series/plugins/Pie.d.ts +3 -0
  70. package/dist/src/series/plugins/PieEventTexts.d.ts +3 -0
  71. package/dist/src/series/plugins/PieLabels.d.ts +3 -0
  72. package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/Rose.d.ts +1 -1
  73. package/dist/src/series/plugins/RoseLabels.d.ts +3 -0
  74. package/dist/src/series/plugins/SeriesLegend.d.ts +1 -0
  75. package/dist/src/series/plugins/SeriesTooltip.d.ts +1 -0
  76. package/dist/src/tree/plugins/TreeLegend.d.ts +1 -0
  77. package/dist/src/tree/plugins/TreeMap.d.ts +3 -0
  78. package/dist/src/tree/plugins/TreeTooltip.d.ts +1 -0
  79. package/dist/{orbcharts-plugins-basic/src → src}/utils/commonUtils.d.ts +1 -0
  80. package/dist/{orbcharts-plugins-basic/src → src}/utils/d3Graphics.d.ts +2 -1
  81. package/dist/{orbcharts-plugins-basic/src → src}/utils/d3Utils.d.ts +1 -0
  82. package/lib/core.ts +1 -1
  83. package/lib/plugins-basic-types.ts +2 -2
  84. package/package.json +4 -4
  85. package/src/base/BaseBars.ts +15 -15
  86. package/src/base/BaseBarsTriangle.ts +15 -15
  87. package/src/base/BaseDots.ts +14 -14
  88. package/src/base/BaseGroupAxis.ts +18 -6
  89. package/src/base/BaseLineAreas.ts +12 -12
  90. package/src/base/BaseLines.ts +11 -11
  91. package/src/base/BaseRacingBars.ts +552 -0
  92. package/src/base/BaseRacingLabels.ts +396 -0
  93. package/src/base/BaseRacingValueLabels.ts +403 -0
  94. package/src/base/{BaseStackedBar.ts → BaseStackedBars.ts} +26 -26
  95. package/src/base/BaseTooltip.ts +2 -1
  96. package/src/base/BaseValueAxis.ts +70 -53
  97. package/src/base/BaseXAxis.ts +427 -0
  98. package/src/base/BaseYAxis.ts +389 -0
  99. package/src/grid/defaults.ts +44 -77
  100. package/src/grid/gridObservables.ts +58 -0
  101. package/src/grid/index.ts +2 -2
  102. package/src/grid/plugins/Bars.ts +2 -2
  103. package/src/grid/plugins/BarsPN.ts +2 -2
  104. package/src/grid/plugins/BarsTriangle.ts +2 -2
  105. package/src/grid/plugins/Dots.ts +2 -2
  106. package/src/grid/plugins/GridLegend.ts +7 -7
  107. package/src/grid/plugins/GroupAux.ts +41 -24
  108. package/src/grid/plugins/GroupAxis.ts +0 -24
  109. package/src/grid/plugins/{GridZoom.ts → GroupZoom.ts} +5 -5
  110. package/src/grid/plugins/LineAreas.ts +2 -2
  111. package/src/grid/plugins/Lines.ts +2 -2
  112. package/src/grid/plugins/{StackedBar.ts → StackedBars.ts} +9 -9
  113. package/src/multiGrid/defaults.ts +44 -24
  114. package/src/multiGrid/index.ts +1 -1
  115. package/src/multiGrid/multiGridObservables.ts +1 -0
  116. package/src/multiGrid/plugins/MultiBars.ts +3 -3
  117. package/src/multiGrid/plugins/MultiBarsTriangle.ts +3 -3
  118. package/src/multiGrid/plugins/MultiDots.ts +3 -3
  119. package/src/multiGrid/plugins/MultiGridLegend.ts +20 -10
  120. package/src/multiGrid/plugins/MultiLineAreas.ts +3 -3
  121. package/src/multiGrid/plugins/MultiLines.ts +3 -3
  122. package/src/multiGrid/plugins/{MultiStackedBar.ts → MultiStackedBars.ts} +10 -10
  123. package/src/multiGrid/plugins/OverlappingStackedValueAxes.ts +1 -0
  124. package/src/multiValue/defaults.ts +277 -12
  125. package/src/multiValue/index.ts +5 -1
  126. package/src/multiValue/multiValueObservables.ts +414 -44
  127. package/src/multiValue/plugins/OrdinalBubbles.ts +0 -0
  128. package/src/multiValue/plugins/OrdinalXAxis.ts +0 -0
  129. package/src/multiValue/plugins/RacingBars.ts +373 -0
  130. package/src/multiValue/plugins/RacingCounterAxis.ts +0 -0
  131. package/src/multiValue/plugins/RacingCounterTexts.ts +300 -0
  132. package/src/multiValue/plugins/RacingValueAxis.ts +115 -0
  133. package/src/multiValue/plugins/RankingAxis_legacy.ts +109 -0
  134. package/src/multiValue/plugins/Scatter.ts +13 -13
  135. package/src/multiValue/plugins/ScatterBubbles.ts +13 -13
  136. package/src/multiValue/plugins/XAxis.ts +108 -0
  137. package/src/multiValue/plugins/XYAux.ts +15 -14
  138. package/src/multiValue/plugins/XYAxes.ts +38 -528
  139. package/src/multiValue/plugins/XYAxes_legacy.ts +684 -0
  140. package/src/multiValue/plugins/{XYZoom.ts → XZoom.ts} +17 -17
  141. package/src/relationship/defaults.ts +42 -16
  142. package/src/relationship/plugins/ForceDirected.ts +26 -19
  143. package/src/relationship/plugins/ForceDirectedBubbles.ts +46 -25
  144. package/src/series/defaults.ts +51 -36
  145. package/src/series/plugins/Bubbles.ts +67 -37
  146. package/src/series/plugins/Pie.ts +5 -5
  147. package/src/series/plugins/PieEventTexts.ts +3 -3
  148. package/src/series/plugins/PieLabels.ts +5 -5
  149. package/src/series/plugins/Rose.ts +11 -11
  150. package/src/series/plugins/RoseLabels.ts +9 -9
  151. package/src/tree/defaults.ts +46 -22
  152. package/src/tree/plugins/TreeMap.ts +11 -3
  153. package/src/utils/commonUtils.ts +10 -1
  154. package/src/utils/d3Graphics.ts +4 -2
  155. package/src/utils/d3Utils.ts +18 -0
  156. package/src/utils/orbchartsUtils.ts +30 -16
  157. package/dist/orbcharts-plugins-basic/lib/plugins-basic-types.d.ts +0 -1
  158. package/dist/orbcharts-plugins-basic/src/grid/plugins/Bars.d.ts +0 -1
  159. package/dist/orbcharts-plugins-basic/src/grid/plugins/BarsPN.d.ts +0 -1
  160. package/dist/orbcharts-plugins-basic/src/grid/plugins/BarsTriangle.d.ts +0 -1
  161. package/dist/orbcharts-plugins-basic/src/grid/plugins/Dots.d.ts +0 -1
  162. package/dist/orbcharts-plugins-basic/src/grid/plugins/GridLegend.d.ts +0 -1
  163. package/dist/orbcharts-plugins-basic/src/grid/plugins/GridTooltip.d.ts +0 -1
  164. package/dist/orbcharts-plugins-basic/src/grid/plugins/GridZoom.d.ts +0 -1
  165. package/dist/orbcharts-plugins-basic/src/grid/plugins/GroupAux.d.ts +0 -3
  166. package/dist/orbcharts-plugins-basic/src/grid/plugins/GroupAxis.d.ts +0 -1
  167. package/dist/orbcharts-plugins-basic/src/grid/plugins/LineAreas.d.ts +0 -1
  168. package/dist/orbcharts-plugins-basic/src/grid/plugins/Lines.d.ts +0 -1
  169. package/dist/orbcharts-plugins-basic/src/grid/plugins/StackedBar.d.ts +0 -1
  170. package/dist/orbcharts-plugins-basic/src/grid/plugins/StackedValueAxis.d.ts +0 -1
  171. package/dist/orbcharts-plugins-basic/src/grid/plugins/ValueAxis.d.ts +0 -1
  172. package/dist/orbcharts-plugins-basic/src/index.d.ts +0 -7
  173. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiBars.d.ts +0 -1
  174. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiBarsTriangle.d.ts +0 -1
  175. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiDots.d.ts +0 -1
  176. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiGridLegend.d.ts +0 -1
  177. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiGridTooltip.d.ts +0 -1
  178. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiGroupAxis.d.ts +0 -1
  179. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiLineAreas.d.ts +0 -1
  180. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiLines.d.ts +0 -1
  181. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiStackedBar.d.ts +0 -1
  182. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiStackedValueAxis.d.ts +0 -1
  183. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiValueAxis.d.ts +0 -1
  184. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/OverlappingStackedValueAxes.d.ts +0 -1
  185. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/OverlappingValueAxes.d.ts +0 -1
  186. package/dist/orbcharts-plugins-basic/src/multiValue/defaults.d.ts +0 -9
  187. package/dist/orbcharts-plugins-basic/src/multiValue/multiValueObservables.d.ts +0 -33
  188. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/MultiValueLegend.d.ts +0 -1
  189. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/MultiValueTooltip.d.ts +0 -1
  190. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/Scatter.d.ts +0 -3
  191. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/ScatterBubbles.d.ts +0 -3
  192. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/XYAux.d.ts +0 -3
  193. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/XYAxes.d.ts +0 -3
  194. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/XYZoom.d.ts +0 -1
  195. package/dist/orbcharts-plugins-basic/src/relationship/plugins/ForceDirected.d.ts +0 -3
  196. package/dist/orbcharts-plugins-basic/src/relationship/plugins/ForceDirectedBubbles.d.ts +0 -3
  197. package/dist/orbcharts-plugins-basic/src/relationship/plugins/RelationshipLegend.d.ts +0 -1
  198. package/dist/orbcharts-plugins-basic/src/relationship/plugins/RelationshipTooltip.d.ts +0 -1
  199. package/dist/orbcharts-plugins-basic/src/series/plugins/Bubbles.d.ts +0 -3
  200. package/dist/orbcharts-plugins-basic/src/series/plugins/Pie.d.ts +0 -3
  201. package/dist/orbcharts-plugins-basic/src/series/plugins/PieEventTexts.d.ts +0 -3
  202. package/dist/orbcharts-plugins-basic/src/series/plugins/PieLabels.d.ts +0 -3
  203. package/dist/orbcharts-plugins-basic/src/series/plugins/RoseLabels.d.ts +0 -3
  204. package/dist/orbcharts-plugins-basic/src/series/plugins/SeriesLegend.d.ts +0 -1
  205. package/dist/orbcharts-plugins-basic/src/series/plugins/SeriesTooltip.d.ts +0 -1
  206. package/dist/orbcharts-plugins-basic/src/tree/plugins/TreeLegend.d.ts +0 -1
  207. package/dist/orbcharts-plugins-basic/src/tree/plugins/TreeMap.d.ts +0 -3
  208. package/dist/orbcharts-plugins-basic/src/tree/plugins/TreeTooltip.d.ts +0 -1
  209. /package/dist/{orbcharts-plugins-basic/lib → lib}/core-types.d.ts +0 -0
  210. /package/dist/{orbcharts-plugins-basic/lib → lib}/core.d.ts +0 -0
  211. /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseGroupAxis.d.ts +0 -0
  212. /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseLegend.d.ts +0 -0
  213. /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseTooltip.d.ts +0 -0
  214. /package/dist/{orbcharts-plugins-basic/src → src}/base/types.d.ts +0 -0
  215. /package/dist/{orbcharts-plugins-basic/src → src}/const.d.ts +0 -0
  216. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/multiGridObservables.d.ts +0 -0
  217. /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/Ranking.d.ts → src/multiValue/plugins/OrdinalBubbles.d.ts} +0 -0
  218. /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/RankingAxis.d.ts → src/multiValue/plugins/OrdinalXAxis.d.ts} +0 -0
  219. /package/dist/{orbcharts-plugins-basic/src/noneData/plugins/Container.d.ts → src/multiValue/plugins/RacingCounterAxis.d.ts} +0 -0
  220. /package/dist/{orbcharts-plugins-basic/src/noneData/plugins/Tooltip.d.ts → src/multiValue/plugins/RankingAxis_legacy.d.ts} +0 -0
  221. /package/dist/{orbcharts-plugins-basic/src → src}/noneData/defaults.d.ts +0 -0
  222. /package/dist/{orbcharts-plugins-basic/src → src}/noneData/index.d.ts +0 -0
  223. /package/dist/{orbcharts-plugins-basic/src/series/plugins/Waffle.d.ts → src/noneData/plugins/Container.d.ts} +0 -0
  224. /package/{src/multiValue/plugins/Ranking.ts → dist/src/noneData/plugins/Tooltip.d.ts} +0 -0
  225. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/defaults.d.ts +0 -0
  226. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/index.d.ts +0 -0
  227. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/relationshipObservables.d.ts +0 -0
  228. /package/dist/{orbcharts-plugins-basic/src → src}/series/defaults.d.ts +0 -0
  229. /package/dist/{orbcharts-plugins-basic/src → src}/series/index.d.ts +0 -0
  230. /package/{src/multiValue/plugins/RankingAxis.ts → dist/src/series/plugins/Waffle.d.ts} +0 -0
  231. /package/dist/{orbcharts-plugins-basic/src → src}/series/seriesObservables.d.ts +0 -0
  232. /package/dist/{orbcharts-plugins-basic/src → src}/series/seriesUtils.d.ts +0 -0
  233. /package/dist/{orbcharts-plugins-basic/src → src}/tree/defaults.d.ts +0 -0
  234. /package/dist/{orbcharts-plugins-basic/src → src}/tree/index.d.ts +0 -0
  235. /package/dist/{orbcharts-plugins-basic/src → src}/utils/observables.d.ts +0 -0
  236. /package/dist/{orbcharts-plugins-basic/src → src}/utils/orbchartsUtils.d.ts +0 -0
  237. /package/dist/{orbcharts-plugins-basic/vite.config.d.ts → vite.config.d.ts} +0 -0
@@ -0,0 +1,115 @@
1
+ import {
2
+ Observable,
3
+ Subject,
4
+ combineLatest,
5
+ takeUntil,
6
+ of,
7
+ map,
8
+ distinctUntilChanged,
9
+ switchMap,
10
+ shareReplay
11
+ } from 'rxjs'
12
+ import type {
13
+ DefinePluginConfig,
14
+ } from '../../../lib/core-types'
15
+ import {
16
+ defineMultiValuePlugin,
17
+ } from '../../../lib/core'
18
+ import { DEFAULT_RACING_VALUE_AXIS_PARAMS } from '../defaults'
19
+ import { LAYER_INDEX_OF_AXIS } from '../../const'
20
+ import { createBaseXAxis } from '../../base/BaseXAxis'
21
+
22
+ const pluginName = 'RacingValueAxis'
23
+
24
+
25
+ const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_RACING_VALUE_AXIS_PARAMS> = {
26
+ name: pluginName,
27
+ defaultParams: DEFAULT_RACING_VALUE_AXIS_PARAMS,
28
+ layerIndex: LAYER_INDEX_OF_AXIS,
29
+ validator: (params, { validateColumns }) => {
30
+ const result = validateColumns(params, {
31
+ labelOffset: {
32
+ toBe: '[number, number]',
33
+ test: (value: any) => {
34
+ return Array.isArray(value)
35
+ && value.length === 2
36
+ && typeof value[0] === 'number'
37
+ && typeof value[1] === 'number'
38
+ }
39
+ },
40
+ labelColorType: {
41
+ toBeOption: 'ColorType',
42
+ },
43
+ axisLineVisible: {
44
+ toBeTypes: ['boolean']
45
+ },
46
+ axisLineColorType: {
47
+ toBeOption: 'ColorType',
48
+ },
49
+ ticks: {
50
+ toBeTypes: ['number', 'null']
51
+ },
52
+ tickFormat: {
53
+ toBeTypes: ['string', 'Function']
54
+ },
55
+ tickLineVisible: {
56
+ toBeTypes: ['boolean']
57
+ },
58
+ tickPadding: {
59
+ toBeTypes: ['number']
60
+ },
61
+ tickFullLine: {
62
+ toBeTypes: ['boolean']
63
+ },
64
+ tickFullLineDasharray: {
65
+ toBeTypes: ['string']
66
+ },
67
+ tickColorType: {
68
+ toBeOption: 'ColorType',
69
+ },
70
+ tickTextColorType: {
71
+ toBeOption: 'ColorType',
72
+ }
73
+ })
74
+ if (result.status === 'error') {
75
+ return result
76
+ }
77
+ return result
78
+ }
79
+ }
80
+
81
+
82
+
83
+ export const RacingValueAxis = defineMultiValuePlugin(pluginConfig)(({ selection, name, observer, subject }) => {
84
+
85
+ const destroy$ = new Subject()
86
+
87
+ // 過渡速度和圖形一致
88
+ const transitionDuration$ = observer.fullChartParams$.pipe(
89
+ takeUntil(destroy$),
90
+ map(d => d.transitionDuration),
91
+ distinctUntilChanged()
92
+ )
93
+
94
+ const unsubscribeBaseXAxis = createBaseXAxis(pluginName, {
95
+ selection,
96
+ position$: of('top'),
97
+ transitionDuration$,
98
+ computedData$: observer.computedData$,
99
+ fullParams$: observer.fullParams$,
100
+ fullDataFormatter$: observer.fullDataFormatter$,
101
+ fullChartParams$: observer.fullChartParams$,
102
+ isCategorySeprate$: observer.isCategorySeprate$,
103
+ containerPosition$: observer.containerPosition$,
104
+ // layout$: observer.layout$,
105
+ containerSize$: observer.containerSize$,
106
+ xScale$: observer.xScale$,
107
+ // filteredXYMinMaxData$: observer.filteredXYMinMaxData$,
108
+ // xyMinMax$: observer.xyMinMax$,
109
+ })
110
+
111
+ return () => {
112
+ destroy$.next(undefined)
113
+ unsubscribeBaseXAxis()
114
+ }
115
+ })
@@ -0,0 +1,109 @@
1
+ // import * as d3 from 'd3'
2
+ // import {
3
+ // Observable,
4
+ // Subject,
5
+ // combineLatest,
6
+ // takeUntil,
7
+ // map,
8
+ // distinctUntilChanged,
9
+ // switchMap,
10
+ // shareReplay
11
+ // } from 'rxjs'
12
+ // import type {
13
+ // ColorType,
14
+ // ChartParams,
15
+ // ComputedDatumMultiValue,
16
+ // ComputedDataMultiValue,
17
+ // ComputedXYDatumMultiValue,
18
+ // ContainerPositionScaled,
19
+ // DataFormatterMultiValue,
20
+ // DefinePluginConfig,
21
+ // TransformData,
22
+ // Layout
23
+ // } from '../../../lib/core-types'
24
+ // import { defineMultiValuePlugin } from '../../../lib/core'
25
+ // import { createBaseRacingAxis } from '../../base/BaseRacingAxis'
26
+ // import { DEFAULT_RANKING_AXIS_PARAMS } from '../defaults'
27
+ // import { LAYER_INDEX_OF_AXIS } from '../../const'
28
+
29
+ // const pluginName = 'RacingAxis'
30
+
31
+ // const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_RANKING_AXIS_PARAMS> = {
32
+ // name: pluginName,
33
+ // defaultParams: DEFAULT_RANKING_AXIS_PARAMS,
34
+ // layerIndex: LAYER_INDEX_OF_AXIS,
35
+ // validator: (params, { validateColumns }) => {
36
+ // const result = validateColumns(params, {
37
+ // labelOffset: {
38
+ // toBe: '[number, number]',
39
+ // test: (value: any) => {
40
+ // return Array.isArray(value)
41
+ // && value.length === 2
42
+ // && typeof value[0] === 'number'
43
+ // && typeof value[1] === 'number'
44
+ // }
45
+ // },
46
+ // labelColorType: {
47
+ // toBeOption: 'ColorType',
48
+ // },
49
+ // axisLineVisible: {
50
+ // toBeTypes: ['boolean']
51
+ // },
52
+ // axisLineColorType: {
53
+ // toBeOption: 'ColorType',
54
+ // },
55
+ // // ticks: {
56
+ // // toBeTypes: ['number', 'null']
57
+ // // },
58
+ // // tickFormat: {
59
+ // // toBeTypes: ['string', 'Function']
60
+ // // },
61
+ // tickLineVisible: {
62
+ // toBeTypes: ['boolean']
63
+ // },
64
+ // tickPadding: {
65
+ // toBeTypes: ['number']
66
+ // },
67
+ // // tickFullLine: {
68
+ // // toBeTypes: ['boolean']
69
+ // // },
70
+ // // tickFullLineDasharray: {
71
+ // // toBeTypes: ['string']
72
+ // // },
73
+ // tickColorType: {
74
+ // toBeOption: 'ColorType',
75
+ // },
76
+ // tickTextColorType: {
77
+ // toBeOption: 'ColorType',
78
+ // }
79
+ // })
80
+ // if (result.status === 'error') {
81
+ // return result
82
+ // }
83
+ // return result
84
+ // }
85
+ // }
86
+
87
+ // export const RacingAxis = defineMultiValuePlugin(pluginConfig)(({ selection, name, observer, subject }) => {
88
+
89
+ // const destroy$ = new Subject()
90
+
91
+ // const unsubscribeBaseRacingAxis = createBaseRacingAxis(pluginName, {
92
+ // selection,
93
+ // computedData$: observer.computedData$,
94
+ // visibleComputedData$: observer.visibleComputedData$,
95
+ // fullParams$: observer.fullParams$,
96
+ // fullDataFormatter$: observer.fullDataFormatter$,
97
+ // fullChartParams$: observer.fullChartParams$,
98
+ // xyMinMax$: observer.xyMinMax$,
99
+ // textSizePx$: observer.textSizePx$,
100
+ // layout$: observer.layout$,
101
+ // containerPosition$: observer.containerPosition$,
102
+ // isCategorySeprate$: observer.isCategorySeprate$,
103
+ // })
104
+
105
+ // return () => {
106
+ // destroy$.next(undefined)
107
+ // unsubscribeBaseRacingAxis()
108
+ // }
109
+ // })
@@ -11,7 +11,7 @@ import {
11
11
  import type {
12
12
  ComputedDatumMultiValue,
13
13
  ComputedDataMultiValue,
14
- ComputedLayoutDataMultiValue,
14
+ ComputedXYDataMultiValue,
15
15
  DefinePluginConfig,
16
16
  EventMultiValue,
17
17
  ChartParams,
@@ -68,11 +68,11 @@ const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_SCATTER
68
68
  }
69
69
  }
70
70
 
71
- function renderDots ({ graphicGSelection, circleGClassName, circleClassName, visibleComputedLayoutData, fullParams, fullChartParams, graphicReverseScale }: {
71
+ function renderDots ({ graphicGSelection, circleGClassName, circleClassName, visibleComputedXYData, fullParams, fullChartParams, graphicReverseScale }: {
72
72
  graphicGSelection: d3.Selection<SVGGElement, any, any, any>
73
73
  circleGClassName: string
74
74
  circleClassName: string
75
- visibleComputedLayoutData: ComputedLayoutDataMultiValue
75
+ visibleComputedXYData: ComputedXYDataMultiValue
76
76
  fullParams: ScatterParams
77
77
  fullChartParams: ChartParams
78
78
  graphicReverseScale: [number, number][]
@@ -89,7 +89,7 @@ function renderDots ({ graphicGSelection, circleGClassName, circleClassName, vis
89
89
  .each((categoryData, categoryIndex, g) => {
90
90
  d3.select(g[categoryIndex])
91
91
  .selectAll<SVGGElement, ComputedDatumMultiValue>('g')
92
- .data(visibleComputedLayoutData[categoryIndex], d => d.id)
92
+ .data(visibleComputedXYData[categoryIndex], d => d.id)
93
93
  .join(
94
94
  enter => {
95
95
  // enterDuration
@@ -234,19 +234,19 @@ export const Scatter = defineMultiValuePlugin(pluginConfig)(({ selection, name,
234
234
  pluginName,
235
235
  clipPathID,
236
236
  categoryLabels$: observer.categoryLabels$,
237
- multiValueContainerPosition$: observer.multiValueContainerPosition$,
238
- multiValueGraphicTransform$: observer.multiValueGraphicTransform$
237
+ containerPosition$: observer.containerPosition$,
238
+ graphicTransform$: observer.graphicTransform$
239
239
  })
240
240
 
241
241
  const graphicReverseScale$: Observable<[number, number][]> = combineLatest({
242
242
  computedData: observer.computedData$,
243
- multiValueGraphicReverseScale: observer.multiValueGraphicReverseScale$
243
+ graphicReverseScale: observer.graphicReverseScale$
244
244
  }).pipe(
245
245
  takeUntil(destroy$),
246
246
  switchMap(async data => data),
247
247
  map(data => {
248
248
  return data.computedData.map((series, categoryIndex) => {
249
- return data.multiValueGraphicReverseScale[categoryIndex]
249
+ return data.graphicReverseScale[categoryIndex]
250
250
  })
251
251
  })
252
252
  )
@@ -272,7 +272,7 @@ export const Scatter = defineMultiValuePlugin(pluginConfig)(({ selection, name,
272
272
 
273
273
  const graphicSelection$ = combineLatest({
274
274
  graphicGSelection: graphicGSelection$,
275
- visibleComputedLayoutData: observer.visibleComputedLayoutData$,
275
+ visibleComputedXYData: observer.visibleComputedXYData$,
276
276
  graphicReverseScale: graphicReverseScale$,
277
277
  fullChartParams: observer.fullChartParams$,
278
278
  fullParams: observer.fullParams$,
@@ -284,7 +284,7 @@ export const Scatter = defineMultiValuePlugin(pluginConfig)(({ selection, name,
284
284
  graphicGSelection: data.graphicGSelection,
285
285
  circleGClassName,
286
286
  circleClassName,
287
- visibleComputedLayoutData: data.visibleComputedLayoutData,
287
+ visibleComputedXYData: data.visibleComputedXYData,
288
288
  fullParams: data.fullParams,
289
289
  fullChartParams: data.fullChartParams,
290
290
  graphicReverseScale: data.graphicReverseScale
@@ -389,7 +389,7 @@ export const Scatter = defineMultiValuePlugin(pluginConfig)(({ selection, name,
389
389
 
390
390
  combineLatest({
391
391
  graphicSelection: graphicSelection$,
392
- highlight: observer.multiValueHighlight$.pipe(
392
+ highlight: observer.highlight$.pipe(
393
393
  map(data => data.map(d => d.id))
394
394
  ),
395
395
  fullChartParams: observer.fullChartParams$
@@ -408,8 +408,8 @@ export const Scatter = defineMultiValuePlugin(pluginConfig)(({ selection, name,
408
408
  // console.log('graphicGSelection$', data)
409
409
  // })
410
410
 
411
- // observer.visibleComputedLayoutData$.subscribe(data => {
412
- // console.log('visibleComputedLayoutData$', data)
411
+ // observer.visibleComputedXYData$.subscribe(data => {
412
+ // console.log('visibleComputedXYData$', data)
413
413
  // })
414
414
 
415
415
  // observer.fullChartParams$.subscribe(data => {
@@ -14,8 +14,8 @@ import {
14
14
  import type {
15
15
  ComputedDatumMultiValue,
16
16
  ComputedDataMultiValue,
17
- ComputedLayoutDatumMultiValue,
18
- ComputedLayoutDataMultiValue,
17
+ ComputedXYDatumMultiValue,
18
+ ComputedXYDataMultiValue,
19
19
  DefinePluginConfig,
20
20
  EventMultiValue,
21
21
  ChartParams,
@@ -42,7 +42,7 @@ type ClipPathDatum = {
42
42
  height: number;
43
43
  }
44
44
 
45
- interface BubbleDatum extends ComputedLayoutDatumMultiValue {
45
+ interface BubbleDatum extends ComputedXYDatumMultiValue {
46
46
  r: number
47
47
  opacity: number
48
48
  }
@@ -91,7 +91,7 @@ function renderDots ({ graphicGSelection, circleGClassName, circleClassName, bub
91
91
  graphicGSelection: d3.Selection<SVGGElement, any, any, any>
92
92
  circleGClassName: string
93
93
  circleClassName: string
94
- // visibleComputedLayoutData: ComputedLayoutDataMultiValue
94
+ // visibleComputedLayoutData: ComputedXYDataMultiValue
95
95
  bubbleData: BubbleDatum[][]
96
96
  fullParams: ScatterBubblesParams
97
97
  fullChartParams: ChartParams
@@ -254,19 +254,19 @@ export const ScatterBubbles = defineMultiValuePlugin(pluginConfig)(({ selection,
254
254
  pluginName,
255
255
  clipPathID,
256
256
  categoryLabels$: observer.categoryLabels$,
257
- multiValueContainerPosition$: observer.multiValueContainerPosition$,
258
- multiValueGraphicTransform$: observer.multiValueGraphicTransform$
257
+ containerPosition$: observer.containerPosition$,
258
+ graphicTransform$: observer.graphicTransform$
259
259
  })
260
260
 
261
261
  const graphicReverseScale$: Observable<[number, number][]> = combineLatest({
262
262
  computedData: observer.computedData$,
263
- multiValueGraphicReverseScale: observer.multiValueGraphicReverseScale$
263
+ graphicReverseScale: observer.graphicReverseScale$
264
264
  }).pipe(
265
265
  takeUntil(destroy$),
266
266
  switchMap(async data => data),
267
267
  map(data => {
268
268
  return data.computedData.map((series, categoryIndex) => {
269
- return data.multiValueGraphicReverseScale[categoryIndex]
269
+ return data.graphicReverseScale[categoryIndex]
270
270
  })
271
271
  })
272
272
  )
@@ -290,13 +290,13 @@ export const ScatterBubbles = defineMultiValuePlugin(pluginConfig)(({ selection,
290
290
  })
291
291
  })
292
292
 
293
- const filteredValueList$ = observer.filteredMinMaxXYData$.pipe(
293
+ const filteredValueList$ = observer.filteredXYMinMaxData$.pipe(
294
294
  takeUntil(destroy$),
295
295
  map(data => data.datumList.flat().map(d => d.value[2] ?? 0)),
296
296
  shareReplay(1)
297
297
  )
298
298
 
299
- const filteredMinMaxValue$ = observer.filteredMinMaxXYData$.pipe(
299
+ const filteredMinMaxValue$ = observer.filteredXYMinMaxData$.pipe(
300
300
  takeUntil(destroy$),
301
301
  map(data => {
302
302
  return getMinMax(data.datumList.flat().map(d => d.value[2] ?? 0))
@@ -376,7 +376,7 @@ export const ScatterBubbles = defineMultiValuePlugin(pluginConfig)(({ selection,
376
376
  )
377
377
 
378
378
  const bubbleData$ = combineLatest({
379
- computedLayoutData: observer.computedLayoutData$,
379
+ visibleComputedXYData: observer.visibleComputedXYData$,
380
380
  opacityScale: opacityScale$,
381
381
  radiusScale: radiusScale$,
382
382
  scaleFactor: scaleFactor$,
@@ -385,7 +385,7 @@ export const ScatterBubbles = defineMultiValuePlugin(pluginConfig)(({ selection,
385
385
  takeUntil(destroy$),
386
386
  switchMap(async (d) => d),
387
387
  map(data => {
388
- return data.computedLayoutData.map(category => {
388
+ return data.visibleComputedXYData.map(category => {
389
389
  return category.map(_d => {
390
390
  const d: BubbleDatum = _d as BubbleDatum
391
391
  d.r = data.radiusScale(d.value[2]) * data.scaleFactor * adjustmentFactor
@@ -517,7 +517,7 @@ export const ScatterBubbles = defineMultiValuePlugin(pluginConfig)(({ selection,
517
517
 
518
518
  combineLatest({
519
519
  graphicSelection: graphicSelection$,
520
- highlight: observer.multiValueHighlight$.pipe(
520
+ highlight: observer.highlight$.pipe(
521
521
  map(data => data.map(d => d.id))
522
522
  ),
523
523
  fullChartParams: observer.fullChartParams$
@@ -0,0 +1,108 @@
1
+ import {
2
+ Observable,
3
+ Subject,
4
+ combineLatest,
5
+ takeUntil,
6
+ of,
7
+ map,
8
+ distinctUntilChanged,
9
+ switchMap,
10
+ shareReplay
11
+ } from 'rxjs'
12
+ import type {
13
+ DefinePluginConfig,
14
+ } from '../../../lib/core-types'
15
+ import {
16
+ defineMultiValuePlugin,
17
+ } from '../../../lib/core'
18
+ import { DEFAULT_X_AXIS_PARAMS } from '../defaults'
19
+ import { LAYER_INDEX_OF_AXIS } from '../../const'
20
+ import { createBaseXAxis } from '../../base/BaseXAxis'
21
+
22
+ const pluginName = 'XAxis'
23
+
24
+
25
+ const pluginConfig: DefinePluginConfig<typeof pluginName, typeof DEFAULT_X_AXIS_PARAMS> = {
26
+ name: pluginName,
27
+ defaultParams: DEFAULT_X_AXIS_PARAMS,
28
+ layerIndex: LAYER_INDEX_OF_AXIS,
29
+ validator: (params, { validateColumns }) => {
30
+ const result = validateColumns(params, {
31
+ labelOffset: {
32
+ toBe: '[number, number]',
33
+ test: (value: any) => {
34
+ return Array.isArray(value)
35
+ && value.length === 2
36
+ && typeof value[0] === 'number'
37
+ && typeof value[1] === 'number'
38
+ }
39
+ },
40
+ labelColorType: {
41
+ toBeOption: 'ColorType',
42
+ },
43
+ axisLineVisible: {
44
+ toBeTypes: ['boolean']
45
+ },
46
+ axisLineColorType: {
47
+ toBeOption: 'ColorType',
48
+ },
49
+ ticks: {
50
+ toBeTypes: ['number', 'null']
51
+ },
52
+ tickFormat: {
53
+ toBeTypes: ['string', 'Function']
54
+ },
55
+ tickLineVisible: {
56
+ toBeTypes: ['boolean']
57
+ },
58
+ tickPadding: {
59
+ toBeTypes: ['number']
60
+ },
61
+ tickFullLine: {
62
+ toBeTypes: ['boolean']
63
+ },
64
+ tickFullLineDasharray: {
65
+ toBeTypes: ['string']
66
+ },
67
+ tickColorType: {
68
+ toBeOption: 'ColorType',
69
+ },
70
+ tickTextColorType: {
71
+ toBeOption: 'ColorType',
72
+ }
73
+ })
74
+ if (result.status === 'error') {
75
+ return result
76
+ }
77
+ return result
78
+ }
79
+ }
80
+
81
+
82
+
83
+ export const XAxis = defineMultiValuePlugin(pluginConfig)(({ selection, name, observer, subject }) => {
84
+
85
+ const destroy$ = new Subject()
86
+
87
+ const unsubscribeBaseXAxis = createBaseXAxis(pluginName, {
88
+ selection,
89
+ position$: of('bottom'),
90
+ transitionDuration$: of(100),
91
+ computedData$: observer.computedData$,
92
+ fullParams$: observer.fullParams$,
93
+ fullDataFormatter$: observer.fullDataFormatter$,
94
+ fullChartParams$: observer.fullChartParams$,
95
+ isCategorySeprate$: observer.isCategorySeprate$,
96
+ containerPosition$: observer.containerPosition$,
97
+ // layout$: observer.layout$,
98
+ containerSize$: observer.containerSize$,
99
+ xScale$: observer.xScale$,
100
+ // filteredXYMinMaxData$: observer.filteredXYMinMaxData$,
101
+ // xyMinMax$: observer.xyMinMax$,
102
+ })
103
+
104
+ return () => {
105
+ destroy$.next(undefined)
106
+ unsubscribeBaseXAxis()
107
+ }
108
+ })
@@ -395,7 +395,8 @@ function renderLabel ({ selection, labelData, fullParams, fullDataFormatter, ful
395
395
  textSizePx,
396
396
  groupAxisPosition: i === 0
397
397
  ? 'bottom' // x axis
398
- : 'left' // y axis
398
+ : 'left', // y axis
399
+ isContainerRotated: false
399
400
  })
400
401
  })
401
402
  })
@@ -446,8 +447,8 @@ export const XYAux = defineMultiValuePlugin(pluginConfig)(({ selection, rootSele
446
447
  )
447
448
  })
448
449
  ),
449
- multiValueContainerPosition$: observer.multiValueContainerPosition$,
450
- multiValueGraphicTransform$: observer.multiValueGraphicTransform$
450
+ containerPosition$: observer.containerPosition$,
451
+ graphicTransform$: observer.graphicTransform$
451
452
  })
452
453
 
453
454
  observer.layout$.pipe(
@@ -476,9 +477,9 @@ export const XYAux = defineMultiValuePlugin(pluginConfig)(({ selection, rootSele
476
477
  // console.log('r:', r)
477
478
  // })
478
479
 
479
- const columnAmount$ = observer.multiValueContainerPosition$.pipe(
480
- map(multiValueContainerPosition => {
481
- const maxColumnIndex = multiValueContainerPosition.reduce((acc, current) => {
480
+ const columnAmount$ = observer.containerPosition$.pipe(
481
+ map(containerPosition => {
482
+ const maxColumnIndex = containerPosition.reduce((acc, current) => {
482
483
  return current.columnIndex > acc ? current.columnIndex : acc
483
484
  }, 0)
484
485
  return maxColumnIndex + 1
@@ -486,9 +487,9 @@ export const XYAux = defineMultiValuePlugin(pluginConfig)(({ selection, rootSele
486
487
  distinctUntilChanged()
487
488
  )
488
489
 
489
- const rowAmount$ = observer.multiValueContainerPosition$.pipe(
490
- map(multiValueContainerPosition => {
491
- const maxRowIndex = multiValueContainerPosition.reduce((acc, current) => {
490
+ const rowAmount$ = observer.containerPosition$.pipe(
491
+ map(containerPosition => {
492
+ const maxRowIndex = containerPosition.reduce((acc, current) => {
492
493
  return current.rowIndex > acc ? current.rowIndex : acc
493
494
  }, 0)
494
495
  return maxRowIndex + 1
@@ -496,13 +497,13 @@ export const XYAux = defineMultiValuePlugin(pluginConfig)(({ selection, rootSele
496
497
  distinctUntilChanged()
497
498
  )
498
499
 
499
- const textReverseTransform$ = observer.multiValueContainerPosition$.pipe(
500
+ const textReverseTransform$ = observer.containerPosition$.pipe(
500
501
  takeUntil(destroy$),
501
502
  switchMap(async (d) => d),
502
- map(multiValueContainerPosition => {
503
+ map(containerPosition => {
503
504
  // const axesRotateXYReverseValue = `rotateX(${data.gridAxesReverseTransform.rotateX}deg) rotateY(${data.gridAxesReverseTransform.rotateY}deg)`
504
505
  // const axesRotateReverseValue = `rotate(${data.gridAxesReverseTransform.rotate}deg)`
505
- const containerScaleReverseValue = `scale(${1 / multiValueContainerPosition[0].scale[0]}, ${1 / multiValueContainerPosition[0].scale[1]})`
506
+ const containerScaleReverseValue = `scale(${1 / containerPosition[0].scale[0]}, ${1 / containerPosition[0].scale[1]})`
506
507
  // 抵消最外層scale
507
508
  return `${containerScaleReverseValue}`
508
509
  }),
@@ -512,8 +513,8 @@ export const XYAux = defineMultiValuePlugin(pluginConfig)(({ selection, rootSele
512
513
  const xyPosition$ = multiValueXYPositionObservable({
513
514
  rootSelection,
514
515
  fullDataFormatter$: observer.fullDataFormatter$,
515
- filteredMinMaxXYData$: observer.filteredMinMaxXYData$,
516
- multiValueContainerPosition$: observer.multiValueContainerPosition$,
516
+ filteredXYMinMaxData$: observer.filteredXYMinMaxData$,
517
+ containerPosition$: observer.containerPosition$,
517
518
  layout$: observer.layout$
518
519
  }).pipe(
519
520
  takeUntil(destroy$)