@orbcharts/plugins-basic 3.0.0-beta.15 → 3.0.0-beta.17

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 (228) hide show
  1. package/LICENSE +200 -200
  2. package/dist/orbcharts-plugins-basic.es.js +11839 -10485
  3. package/dist/orbcharts-plugins-basic.umd.js +231 -171
  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/GroupZoom.d.ts +1 -0
  20. package/dist/src/grid/plugins/StackedBars.d.ts +1 -0
  21. package/dist/src/index.d.ts +7 -1
  22. package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/defaults.d.ts +2 -2
  23. package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/index.d.ts +1 -1
  24. package/dist/src/multiGrid/plugins/MultiStackedBars.d.ts +1 -0
  25. package/dist/src/multiValue/defaults.d.ts +13 -0
  26. package/dist/{orbcharts-plugins-basic/src → src}/multiValue/index.d.ts +5 -1
  27. package/dist/src/multiValue/multiValueObservables.d.ts +56 -0
  28. package/dist/src/multiValue/plugins/RacingBars.d.ts +1 -0
  29. package/dist/src/multiValue/plugins/RacingCounterTexts.d.ts +3 -0
  30. package/dist/src/multiValue/plugins/RacingValueAxis.d.ts +1 -0
  31. package/dist/src/multiValue/plugins/XAxis.d.ts +1 -0
  32. package/dist/src/multiValue/plugins/XYAxes.d.ts +1 -0
  33. package/dist/src/multiValue/plugins/XZoom.d.ts +1 -0
  34. package/dist/{orbcharts-plugins-basic/src → src}/utils/commonUtils.d.ts +1 -0
  35. package/dist/{orbcharts-plugins-basic/src → src}/utils/d3Graphics.d.ts +2 -1
  36. package/lib/core-types.ts +7 -7
  37. package/lib/core.ts +6 -6
  38. package/lib/plugins-basic-types.ts +6 -6
  39. package/package.json +44 -44
  40. package/src/base/BaseBars.ts +765 -765
  41. package/src/base/BaseBarsTriangle.ts +676 -676
  42. package/src/base/BaseDots.ts +464 -464
  43. package/src/base/BaseGroupAxis.ts +691 -679
  44. package/src/base/BaseLegend.ts +684 -684
  45. package/src/base/BaseLineAreas.ts +629 -629
  46. package/src/base/BaseLines.ts +706 -706
  47. package/src/base/BaseRacingBars.ts +552 -0
  48. package/src/base/BaseRacingLabels.ts +396 -0
  49. package/src/base/BaseRacingValueLabels.ts +403 -0
  50. package/src/base/{BaseStackedBar.ts → BaseStackedBars.ts} +782 -782
  51. package/src/base/BaseTooltip.ts +386 -385
  52. package/src/base/BaseValueAxis.ts +600 -583
  53. package/src/base/BaseXAxis.ts +427 -0
  54. package/src/base/BaseYAxis.ts +389 -0
  55. package/src/base/types.ts +2 -2
  56. package/src/const.ts +30 -30
  57. package/src/grid/defaults.ts +213 -250
  58. package/src/grid/gridObservables.ts +612 -554
  59. package/src/grid/index.ts +16 -16
  60. package/src/grid/plugins/Bars.ts +69 -69
  61. package/src/grid/plugins/BarsPN.ts +66 -66
  62. package/src/grid/plugins/BarsTriangle.ts +73 -73
  63. package/src/grid/plugins/Dots.ts +68 -68
  64. package/src/grid/plugins/GridLegend.ts +107 -107
  65. package/src/grid/plugins/GridTooltip.ts +66 -66
  66. package/src/grid/plugins/GroupAux.ts +1120 -1103
  67. package/src/grid/plugins/GroupAxis.ts +73 -97
  68. package/src/grid/plugins/{GridZoom.ts → GroupZoom.ts} +218 -218
  69. package/src/grid/plugins/LineAreas.ts +65 -65
  70. package/src/grid/plugins/Lines.ts +59 -59
  71. package/src/grid/plugins/{StackedBar.ts → StackedBars.ts} +64 -64
  72. package/src/grid/plugins/StackedValueAxis.ts +96 -96
  73. package/src/grid/plugins/ValueAxis.ts +94 -94
  74. package/src/index.ts +6 -6
  75. package/src/multiGrid/defaults.ts +244 -228
  76. package/src/multiGrid/index.ts +14 -14
  77. package/src/multiGrid/multiGridObservables.ts +50 -49
  78. package/src/multiGrid/plugins/MultiBars.ts +108 -108
  79. package/src/multiGrid/plugins/MultiBarsTriangle.ts +114 -114
  80. package/src/multiGrid/plugins/MultiDots.ts +102 -102
  81. package/src/multiGrid/plugins/MultiGridLegend.ts +169 -159
  82. package/src/multiGrid/plugins/MultiGridTooltip.ts +66 -66
  83. package/src/multiGrid/plugins/MultiGroupAxis.ts +137 -137
  84. package/src/multiGrid/plugins/MultiLineAreas.ts +107 -107
  85. package/src/multiGrid/plugins/MultiLines.ts +101 -101
  86. package/src/multiGrid/plugins/{MultiStackedBar.ts → MultiStackedBars.ts} +106 -106
  87. package/src/multiGrid/plugins/MultiStackedValueAxis.ts +134 -134
  88. package/src/multiGrid/plugins/MultiValueAxis.ts +134 -134
  89. package/src/multiGrid/plugins/OverlappingStackedValueAxes.ts +300 -299
  90. package/src/multiGrid/plugins/OverlappingValueAxes.ts +300 -300
  91. package/src/multiValue/defaults.ts +388 -166
  92. package/src/multiValue/index.ts +13 -9
  93. package/src/multiValue/multiValueObservables.ts +667 -297
  94. package/src/multiValue/plugins/MultiValueLegend.ts +107 -107
  95. package/src/multiValue/plugins/MultiValueTooltip.ts +66 -66
  96. package/src/multiValue/plugins/OrdinalBubbles.ts +0 -0
  97. package/src/multiValue/plugins/OrdinalXAxis.ts +0 -0
  98. package/src/multiValue/plugins/RacingBars.ts +373 -0
  99. package/src/multiValue/plugins/RacingCounterAxis.ts +0 -0
  100. package/src/multiValue/plugins/RacingCounterTexts.ts +300 -0
  101. package/src/multiValue/plugins/RacingValueAxis.ts +115 -0
  102. package/src/multiValue/plugins/RankingAxis_legacy.ts +109 -0
  103. package/src/multiValue/plugins/Scatter.ts +426 -426
  104. package/src/multiValue/plugins/ScatterBubbles.ts +554 -554
  105. package/src/multiValue/plugins/XAxis.ts +108 -0
  106. package/src/multiValue/plugins/XYAux.ts +682 -681
  107. package/src/multiValue/plugins/XYAxes.ts +194 -684
  108. package/src/multiValue/plugins/XYAxes_legacy.ts +684 -0
  109. package/src/multiValue/plugins/{XYZoom.ts → XZoom.ts} +299 -299
  110. package/src/noneData/defaults.ts +102 -102
  111. package/src/noneData/index.ts +3 -3
  112. package/src/noneData/plugins/Container.ts +27 -27
  113. package/src/noneData/plugins/Tooltip.ts +373 -373
  114. package/src/relationship/defaults.ts +220 -218
  115. package/src/relationship/index.ts +5 -5
  116. package/src/relationship/plugins/ForceDirected.ts +1168 -1168
  117. package/src/relationship/plugins/ForceDirectedBubbles.ts +1403 -1403
  118. package/src/relationship/plugins/RelationshipLegend.ts +100 -100
  119. package/src/relationship/plugins/RelationshipTooltip.ts +66 -66
  120. package/src/relationship/relationshipObservables.ts +49 -49
  121. package/src/series/defaults.ts +221 -230
  122. package/src/series/index.ts +9 -9
  123. package/src/series/plugins/Bubbles.ts +636 -620
  124. package/src/series/plugins/Pie.ts +623 -623
  125. package/src/series/plugins/PieEventTexts.ts +284 -284
  126. package/src/series/plugins/PieLabels.ts +640 -640
  127. package/src/series/plugins/Rose.ts +516 -516
  128. package/src/series/plugins/RoseLabels.ts +600 -600
  129. package/src/series/plugins/SeriesLegend.ts +107 -107
  130. package/src/series/plugins/SeriesTooltip.ts +66 -66
  131. package/src/series/seriesObservables.ts +145 -145
  132. package/src/series/seriesUtils.ts +51 -51
  133. package/src/tree/defaults.ts +102 -100
  134. package/src/tree/index.ts +4 -4
  135. package/src/tree/plugins/TreeLegend.ts +100 -100
  136. package/src/tree/plugins/TreeMap.ts +341 -341
  137. package/src/tree/plugins/TreeTooltip.ts +66 -66
  138. package/src/utils/commonUtils.ts +31 -22
  139. package/src/utils/d3Graphics.ts +176 -174
  140. package/src/utils/d3Utils.ts +92 -92
  141. package/src/utils/observables.ts +14 -14
  142. package/src/utils/orbchartsUtils.ts +129 -129
  143. package/tsconfig.base.json +13 -13
  144. package/tsconfig.json +2 -2
  145. package/vite.config.js +22 -22
  146. package/dist/orbcharts-plugins-basic/src/grid/plugins/GridZoom.d.ts +0 -1
  147. package/dist/orbcharts-plugins-basic/src/grid/plugins/StackedBar.d.ts +0 -1
  148. package/dist/orbcharts-plugins-basic/src/index.d.ts +0 -7
  149. package/dist/orbcharts-plugins-basic/src/multiGrid/plugins/MultiStackedBar.d.ts +0 -1
  150. package/dist/orbcharts-plugins-basic/src/multiValue/defaults.d.ts +0 -9
  151. package/dist/orbcharts-plugins-basic/src/multiValue/multiValueObservables.d.ts +0 -33
  152. package/dist/orbcharts-plugins-basic/src/multiValue/plugins/XYZoom.d.ts +0 -1
  153. /package/dist/{orbcharts-plugins-basic/lib → lib}/core-types.d.ts +0 -0
  154. /package/dist/{orbcharts-plugins-basic/lib → lib}/core.d.ts +0 -0
  155. /package/dist/{orbcharts-plugins-basic/lib → lib}/plugins-basic-types.d.ts +0 -0
  156. /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseGroupAxis.d.ts +0 -0
  157. /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseLegend.d.ts +0 -0
  158. /package/dist/{orbcharts-plugins-basic/src → src}/base/BaseTooltip.d.ts +0 -0
  159. /package/dist/{orbcharts-plugins-basic/src → src}/base/types.d.ts +0 -0
  160. /package/dist/{orbcharts-plugins-basic/src → src}/const.d.ts +0 -0
  161. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/Bars.d.ts +0 -0
  162. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/BarsPN.d.ts +0 -0
  163. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/BarsTriangle.d.ts +0 -0
  164. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/Dots.d.ts +0 -0
  165. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GridLegend.d.ts +0 -0
  166. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GridTooltip.d.ts +0 -0
  167. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GroupAux.d.ts +0 -0
  168. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/GroupAxis.d.ts +0 -0
  169. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/LineAreas.d.ts +0 -0
  170. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/Lines.d.ts +0 -0
  171. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/StackedValueAxis.d.ts +0 -0
  172. /package/dist/{orbcharts-plugins-basic/src → src}/grid/plugins/ValueAxis.d.ts +0 -0
  173. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/multiGridObservables.d.ts +0 -0
  174. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiBars.d.ts +0 -0
  175. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiBarsTriangle.d.ts +0 -0
  176. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiDots.d.ts +0 -0
  177. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiGridLegend.d.ts +0 -0
  178. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiGridTooltip.d.ts +0 -0
  179. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiGroupAxis.d.ts +0 -0
  180. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiLineAreas.d.ts +0 -0
  181. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiLines.d.ts +0 -0
  182. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiStackedValueAxis.d.ts +0 -0
  183. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/MultiValueAxis.d.ts +0 -0
  184. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/OverlappingStackedValueAxes.d.ts +0 -0
  185. /package/dist/{orbcharts-plugins-basic/src → src}/multiGrid/plugins/OverlappingValueAxes.d.ts +0 -0
  186. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/MultiValueLegend.d.ts +0 -0
  187. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/MultiValueTooltip.d.ts +0 -0
  188. /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/Ranking.d.ts → src/multiValue/plugins/OrdinalBubbles.d.ts} +0 -0
  189. /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/RankingAxis.d.ts → src/multiValue/plugins/OrdinalXAxis.d.ts} +0 -0
  190. /package/dist/{orbcharts-plugins-basic/src/noneData/plugins/Container.d.ts → src/multiValue/plugins/RacingCounterAxis.d.ts} +0 -0
  191. /package/dist/{orbcharts-plugins-basic/src/noneData/plugins/Tooltip.d.ts → src/multiValue/plugins/RankingAxis_legacy.d.ts} +0 -0
  192. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/Scatter.d.ts +0 -0
  193. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/ScatterBubbles.d.ts +0 -0
  194. /package/dist/{orbcharts-plugins-basic/src → src}/multiValue/plugins/XYAux.d.ts +0 -0
  195. /package/dist/{orbcharts-plugins-basic/src/multiValue/plugins/XYAxes.d.ts → src/multiValue/plugins/XYAxes_legacy.d.ts} +0 -0
  196. /package/dist/{orbcharts-plugins-basic/src → src}/noneData/defaults.d.ts +0 -0
  197. /package/dist/{orbcharts-plugins-basic/src → src}/noneData/index.d.ts +0 -0
  198. /package/dist/{orbcharts-plugins-basic/src/series/plugins/Waffle.d.ts → src/noneData/plugins/Container.d.ts} +0 -0
  199. /package/{src/multiValue/plugins/Ranking.ts → dist/src/noneData/plugins/Tooltip.d.ts} +0 -0
  200. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/defaults.d.ts +0 -0
  201. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/index.d.ts +0 -0
  202. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/ForceDirected.d.ts +0 -0
  203. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/ForceDirectedBubbles.d.ts +0 -0
  204. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/RelationshipLegend.d.ts +0 -0
  205. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/plugins/RelationshipTooltip.d.ts +0 -0
  206. /package/dist/{orbcharts-plugins-basic/src → src}/relationship/relationshipObservables.d.ts +0 -0
  207. /package/dist/{orbcharts-plugins-basic/src → src}/series/defaults.d.ts +0 -0
  208. /package/dist/{orbcharts-plugins-basic/src → src}/series/index.d.ts +0 -0
  209. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/Bubbles.d.ts +0 -0
  210. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/Pie.d.ts +0 -0
  211. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/PieEventTexts.d.ts +0 -0
  212. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/PieLabels.d.ts +0 -0
  213. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/Rose.d.ts +0 -0
  214. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/RoseLabels.d.ts +0 -0
  215. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/SeriesLegend.d.ts +0 -0
  216. /package/dist/{orbcharts-plugins-basic/src → src}/series/plugins/SeriesTooltip.d.ts +0 -0
  217. /package/{src/multiValue/plugins/RankingAxis.ts → dist/src/series/plugins/Waffle.d.ts} +0 -0
  218. /package/dist/{orbcharts-plugins-basic/src → src}/series/seriesObservables.d.ts +0 -0
  219. /package/dist/{orbcharts-plugins-basic/src → src}/series/seriesUtils.d.ts +0 -0
  220. /package/dist/{orbcharts-plugins-basic/src → src}/tree/defaults.d.ts +0 -0
  221. /package/dist/{orbcharts-plugins-basic/src → src}/tree/index.d.ts +0 -0
  222. /package/dist/{orbcharts-plugins-basic/src → src}/tree/plugins/TreeLegend.d.ts +0 -0
  223. /package/dist/{orbcharts-plugins-basic/src → src}/tree/plugins/TreeMap.d.ts +0 -0
  224. /package/dist/{orbcharts-plugins-basic/src → src}/tree/plugins/TreeTooltip.d.ts +0 -0
  225. /package/dist/{orbcharts-plugins-basic/src → src}/utils/d3Utils.d.ts +0 -0
  226. /package/dist/{orbcharts-plugins-basic/src → src}/utils/observables.d.ts +0 -0
  227. /package/dist/{orbcharts-plugins-basic/src → src}/utils/orbchartsUtils.d.ts +0 -0
  228. /package/dist/{orbcharts-plugins-basic/vite.config.d.ts → vite.config.d.ts} +0 -0
@@ -1,229 +1,245 @@
1
- import type {
2
- MultiGridLegendParams,
3
- MultiBarsParams,
4
- MultiStackedBarParams,
5
- MultiBarsTriangleParams,
6
- MultiLinesParams,
7
- MultiLineAreasParams,
8
- MultiDotsParams,
9
- MultiGroupAxisParams,
10
- MultiGridTooltipParams,
11
- MultiValueAxisParams,
12
- MultiStackedValueAxisParams,
13
- OverlappingValueAxesParams,
14
- OverlappingStackedValueAxesParams
15
- } from '../../lib/plugins-basic-types'
16
- import { measureTextWidth } from '../utils/commonUtils'
17
-
18
- export const DEFAULT_MULTI_GRID_LEGEND_PARAMS: MultiGridLegendParams = {
19
- // position: 'right',
20
- // justify: 'end',
21
- placement: 'bottom',
22
- padding: 28,
23
- backgroundFill: 'none',
24
- backgroundStroke: 'none',
25
- gap: 10,
26
- listRectWidth: 14,
27
- listRectHeight: 14,
28
- listRectRadius: 0,
29
- gridList: [
30
- {
31
- listRectWidth: 14,
32
- listRectHeight: 14,
33
- listRectRadius: 0,
34
- }
35
- ],
36
- textColorType: 'primary'
37
- }
38
-
39
- export const DEFAULT_MULTI_GROUP_AXIS_PARAMS: MultiGroupAxisParams = {
40
- // labelAnchor: 'start',
41
- labelOffset: [0, 0],
42
- labelColorType: 'primary',
43
- axisLineVisible: true,
44
- axisLineColorType: 'primary',
45
- ticks: 'all',
46
- tickFormat: text => text,
47
- tickLineVisible: true,
48
- tickPadding: 20,
49
- tickFullLine: false,
50
- tickFullLineDasharray: 'none',
51
- tickColorType: 'secondary',
52
- tickTextRotate: 0,
53
- tickTextColorType: 'primary',
54
- gridIndexes: [0]
55
- }
56
- DEFAULT_MULTI_GROUP_AXIS_PARAMS.tickFormat.toString = () => `text => text`
57
-
58
- export const DEFAULT_MULTI_VALUE_AXIS_PARAMS: MultiValueAxisParams = {
59
- // labelAnchor: 'end',
60
- labelOffset: [0, 0],
61
- labelColorType: 'primary',
62
- axisLineVisible: false,
63
- axisLineColorType: 'primary',
64
- ticks: 4,
65
- tickFormat: ',.0f',
66
- tickLineVisible: true,
67
- tickPadding: 20,
68
- tickFullLine: true,
69
- tickFullLineDasharray: 'none',
70
- tickColorType: 'secondary',
71
- tickTextRotate: 0,
72
- tickTextColorType: 'primary',
73
- gridIndexes: 'all'
74
- }
75
-
76
- export const DEFAULT_MULTI_STACKED_VALUE_AXIS_PARAMS: MultiStackedValueAxisParams = {
77
- ...DEFAULT_MULTI_VALUE_AXIS_PARAMS
78
- }
79
-
80
- export const DEFAULT_MULTI_BARS_PARAMS: MultiBarsParams = {
81
- barWidth: 0,
82
- barPadding: 1,
83
- barGroupPadding: 40,
84
- barRadius: false,
85
- gridIndexes: [0]
86
- }
87
-
88
- export const DEFAULT_MULTI_STACKED_BAR_PARAMS: MultiStackedBarParams = {
89
- barWidth: 0,
90
- barGroupPadding: 10,
91
- barRadius: false,
92
- gridIndexes: [0]
93
- }
94
-
95
- export const DEFAULT_MULTI_BARS_TRIANGLE_PARAMS: MultiBarsTriangleParams = {
96
- barWidth: 0,
97
- barPadding: 1,
98
- barGroupPadding: 20,
99
- linearGradientOpacity: [1, 0],
100
- gridIndexes: [0]
101
- }
102
-
103
- export const DEFAULT_MULTI_LINES_PARAMS: MultiLinesParams = {
104
- lineCurve: 'curveLinear',
105
- lineWidth: 2,
106
- gridIndexes: [1]
107
- }
108
-
109
- export const DEFAULT_MULTI_LINE_AREAS_PARAMS: MultiLineAreasParams = {
110
- lineCurve: 'curveLinear',
111
- linearGradientOpacity: [1, 0],
112
- gridIndexes: [1]
113
- }
114
-
115
- export const DEFAULT_MULTI_DOTS_PARAMS: MultiDotsParams = {
116
- radius: 4,
117
- fillColorType: 'background',
118
- strokeColorType: 'label',
119
- strokeWidth: 2,
120
- onlyShowHighlighted: false,
121
- gridIndexes: [1]
122
- }
123
-
124
- export const DEFAULT_OVERLAPPING_VALUE_AXES_PARAMS: OverlappingValueAxesParams = {
125
- firstAxis: {
126
- // labelAnchor: 'end',
127
- labelOffset: [0, 0],
128
- labelColorType: 'primary',
129
- axisLineVisible: false,
130
- axisLineColorType: 'primary',
131
- ticks: 4,
132
- tickFormat: ',.0f',
133
- tickLineVisible: true,
134
- tickPadding: 20,
135
- tickFullLine: true,
136
- tickFullLineDasharray: 'none',
137
- tickColorType: 'secondary',
138
- tickTextRotate: 0,
139
- tickTextColorType: 'primary',
140
- },
141
- secondAxis: {
142
- // labelAnchor: 'end',
143
- labelOffset: [0, 0],
144
- labelColorType: 'primary',
145
- axisLineVisible: false,
146
- axisLineColorType: 'primary',
147
- ticks: 4,
148
- tickFormat: ',.0f',
149
- tickLineVisible: true,
150
- tickPadding: 20,
151
- tickFullLine: true,
152
- tickFullLineDasharray: 'none',
153
- tickColorType: 'secondary',
154
- tickTextRotate: 0,
155
- tickTextColorType: 'primary',
156
- },
157
- gridIndexes: [0, 1]
158
- }
159
-
160
- export const DEFAULT_OVERLAPPING_STACKED_VALUE_AXES_PARAMS: OverlappingStackedValueAxesParams = {
161
- ...DEFAULT_OVERLAPPING_VALUE_AXES_PARAMS
162
- }
163
-
164
- export const DEFAULT_MULTI_GRID_TOOLTIP_PARAMS: MultiGridTooltipParams = {
165
- backgroundColorType: 'background',
166
- strokeColorType: 'primary',
167
- backgroundOpacity: 0.8,
168
- textColorType: 'primary',
169
- offset: [20, 5],
170
- padding: 10,
171
- renderFn: (eventData, { styles, utils }) => {
172
- const bulletWidth = styles.textSizePx * 0.7
173
- const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
174
-
175
- const titleSvg = `<g><text dominant-baseline="hanging" font-size="${styles.textSizePx}" fill="${styles.textColor}">${eventData.groupLabel}</text></g>`
176
- const groupLabelTextWidth = utils.measureTextWidth(eventData.groupLabel, styles.textSizePx)
177
- const listTextWidth = eventData.group.reduce((acc, group) => {
178
- const text = `${group.seriesLabel}${group.value}`
179
- const _maxTextWidth = utils.measureTextWidth(text, styles.textSizePx)
180
- return _maxTextWidth > acc ? _maxTextWidth : acc
181
- }, 0)
182
- const maxTextWidth = Math.max(groupLabelTextWidth, listTextWidth)
183
- const lineEndX = maxTextWidth + styles.textSizePx * 3
184
- const contentSvg = eventData.group
185
- .map((group, i) => {
186
- const y = i * styles.textSizePx * 1.5
187
- const isHighlight = group.id === (eventData.datum && eventData.datum.id)
188
- return `<g transform="translate(0, ${styles.textSizePx * 2})">
189
- <rect width="${bulletWidth}" height="${bulletWidth}" x="${offset}" y="${y + offset}" rx="${bulletWidth / 2}" fill="${group.color}"></rect>
190
- <text x="${styles.textSizePx * 1.5}" y="${y}" font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
191
- <tspan font-weight="${isHighlight ? 'bold' : ''}">${group.seriesLabel}</tspan>
192
- <tspan font-weight="bold" text-anchor="end" x="${lineEndX}">${group.value}</tspan>
193
- </text>
194
- </g>`
195
- })
196
- .join('')
197
- return `${titleSvg}
198
- ${contentSvg}`
199
- }
200
- }
201
- DEFAULT_MULTI_GRID_TOOLTIP_PARAMS.renderFn.toString = () => `(eventData, { styles, utils }) => {
202
- const bulletWidth = styles.textSizePx * 0.7
203
- const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
204
-
205
- const titleSvg = \`<g><text dominant-baseline="hanging" font-size="\${styles.textSizePx}" fill="\${styles.textColor}">\${eventData.groupLabel}</text></g>\`
206
- const groupLabelTextWidth = utils.measureTextWidth(eventData.groupLabel, styles.textSizePx)
207
- const listTextWidth = eventData.group.reduce((acc, group) => {
208
- const text = \`\${group.seriesLabel}\${group.value}\`
209
- const _maxTextWidth = utils.measureTextWidth(text, styles.textSizePx)
210
- return _maxTextWidth > acc ? _maxTextWidth : acc
211
- }, 0)
212
- const maxTextWidth = Math.max(groupLabelTextWidth, listTextWidth)
213
- const lineEndX = maxTextWidth + styles.textSizePx * 3
214
- const contentSvg = eventData.group
215
- .map((group, i) => {
216
- const y = i * styles.textSizePx * 1.5
217
- const isHighlight = group.id === (eventData.datum && eventData.datum.id)
218
- return \`<g transform="translate(0, \${styles.textSizePx * 2})">
219
- <rect width="\${bulletWidth}" height="\${bulletWidth}" x="\${offset}" y="\${y + offset}" rx="\${bulletWidth / 2}" fill="\${group.color}"></rect>
220
- <text x="\${styles.textSizePx * 1.5}" y="\${y}" font-size="\${styles.textSizePx}" dominant-baseline="hanging" fill="\${styles.textColor}">
221
- <tspan font-weight="\${isHighlight ? 'bold' : ''}">\${group.seriesLabel}</tspan>
222
- <tspan font-weight="bold" text-anchor="end" x="\${lineEndX}">\${group.value}</tspan>
223
- </text>
224
- </g>\`
225
- })
226
- .join('')
227
- return \`\${titleSvg}
228
- \${contentSvg}\`
1
+ import type {
2
+ MultiGridLegendParams,
3
+ MultiBarsParams,
4
+ MultiStackedBarsParams,
5
+ MultiBarsTriangleParams,
6
+ MultiLinesParams,
7
+ MultiLineAreasParams,
8
+ MultiDotsParams,
9
+ MultiGroupAxisParams,
10
+ MultiGridTooltipParams,
11
+ MultiValueAxisParams,
12
+ MultiStackedValueAxisParams,
13
+ OverlappingValueAxesParams,
14
+ OverlappingStackedValueAxesParams
15
+ } from '../../lib/plugins-basic-types'
16
+ import { measureTextWidth } from '../utils/commonUtils'
17
+
18
+ export const DEFAULT_MULTI_GRID_LEGEND_PARAMS: MultiGridLegendParams = {
19
+ // position: 'right',
20
+ // justify: 'end',
21
+ placement: 'bottom',
22
+ padding: 28,
23
+ backgroundFill: 'none',
24
+ backgroundStroke: 'none',
25
+ gap: 10,
26
+ listRectWidth: 14,
27
+ listRectHeight: 14,
28
+ listRectRadius: 0,
29
+ gridList: [
30
+ {
31
+ listRectWidth: 14,
32
+ listRectHeight: 14,
33
+ listRectRadius: 0,
34
+ }
35
+ ],
36
+ textColorType: 'primary'
37
+ }
38
+
39
+ export const DEFAULT_MULTI_GROUP_AXIS_PARAMS: MultiGroupAxisParams = {
40
+ // labelAnchor: 'start',
41
+ labelOffset: [0, 0],
42
+ labelColorType: 'primary',
43
+ axisLineVisible: true,
44
+ axisLineColorType: 'primary',
45
+ ticks: 'all',
46
+ tickFormat: text => text,
47
+ tickLineVisible: true,
48
+ tickPadding: 20,
49
+ tickFullLine: false,
50
+ tickFullLineDasharray: 'none',
51
+ tickColorType: 'secondary',
52
+ tickTextRotate: 0,
53
+ tickTextColorType: 'primary',
54
+ gridIndexes: [0]
55
+ }
56
+ DEFAULT_MULTI_GROUP_AXIS_PARAMS.tickFormat.toString = () => `text => text`
57
+
58
+ export const DEFAULT_MULTI_VALUE_AXIS_PARAMS: MultiValueAxisParams = {
59
+ // labelAnchor: 'end',
60
+ labelOffset: [0, 0],
61
+ labelColorType: 'primary',
62
+ axisLineVisible: false,
63
+ axisLineColorType: 'primary',
64
+ ticks: 4,
65
+ // tickFormat: ',.0f',
66
+ tickFormat: num => {
67
+ if (num === null || Number.isNaN(num) == true) {
68
+ return num || 0
69
+ }
70
+ var parts = num.toString().split('.')
71
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
72
+ return parts.join('.')
73
+ },
74
+ tickLineVisible: true,
75
+ tickPadding: 20,
76
+ tickFullLine: true,
77
+ tickFullLineDasharray: 'none',
78
+ tickColorType: 'secondary',
79
+ tickTextRotate: 0,
80
+ tickTextColorType: 'primary',
81
+ gridIndexes: 'all'
82
+ }
83
+ DEFAULT_MULTI_VALUE_AXIS_PARAMS.tickFormat.toString = () => `num => {
84
+ if (num === null || Number.isNaN(num) == true) {
85
+ return num || 0
86
+ }
87
+ var parts = num.toString().split('.')
88
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
89
+ return parts.join('.')
90
+ }`
91
+
92
+ export const DEFAULT_MULTI_STACKED_VALUE_AXIS_PARAMS: MultiStackedValueAxisParams = {
93
+ ...DEFAULT_MULTI_VALUE_AXIS_PARAMS
94
+ }
95
+
96
+ export const DEFAULT_MULTI_BARS_PARAMS: MultiBarsParams = {
97
+ barWidth: 0,
98
+ barPadding: 1,
99
+ barGroupPadding: 40,
100
+ barRadius: false,
101
+ gridIndexes: [0]
102
+ }
103
+
104
+ export const DEFAULT_MULTI_STACKED_BAR_PARAMS: MultiStackedBarsParams = {
105
+ barWidth: 0,
106
+ barGroupPadding: 10,
107
+ barRadius: false,
108
+ gridIndexes: [0]
109
+ }
110
+
111
+ export const DEFAULT_MULTI_BARS_TRIANGLE_PARAMS: MultiBarsTriangleParams = {
112
+ barWidth: 0,
113
+ barPadding: 1,
114
+ barGroupPadding: 20,
115
+ linearGradientOpacity: [1, 0],
116
+ gridIndexes: [0]
117
+ }
118
+
119
+ export const DEFAULT_MULTI_LINES_PARAMS: MultiLinesParams = {
120
+ lineCurve: 'curveLinear',
121
+ lineWidth: 2,
122
+ gridIndexes: [1]
123
+ }
124
+
125
+ export const DEFAULT_MULTI_LINE_AREAS_PARAMS: MultiLineAreasParams = {
126
+ lineCurve: 'curveLinear',
127
+ linearGradientOpacity: [1, 0],
128
+ gridIndexes: [1]
129
+ }
130
+
131
+ export const DEFAULT_MULTI_DOTS_PARAMS: MultiDotsParams = {
132
+ radius: 4,
133
+ fillColorType: 'background',
134
+ strokeColorType: 'label',
135
+ strokeWidth: 2,
136
+ onlyShowHighlighted: false,
137
+ gridIndexes: [1]
138
+ }
139
+
140
+ export const DEFAULT_OVERLAPPING_VALUE_AXES_PARAMS: OverlappingValueAxesParams = {
141
+ firstAxis: {
142
+ // labelAnchor: 'end',
143
+ labelOffset: [0, 0],
144
+ labelColorType: 'primary',
145
+ axisLineVisible: false,
146
+ axisLineColorType: 'primary',
147
+ ticks: 4,
148
+ tickFormat: ',.0f',
149
+ tickLineVisible: true,
150
+ tickPadding: 20,
151
+ tickFullLine: true,
152
+ tickFullLineDasharray: 'none',
153
+ tickColorType: 'secondary',
154
+ tickTextRotate: 0,
155
+ tickTextColorType: 'primary',
156
+ },
157
+ secondAxis: {
158
+ // labelAnchor: 'end',
159
+ labelOffset: [0, 0],
160
+ labelColorType: 'primary',
161
+ axisLineVisible: false,
162
+ axisLineColorType: 'primary',
163
+ ticks: 4,
164
+ tickFormat: ',.0f',
165
+ tickLineVisible: true,
166
+ tickPadding: 20,
167
+ tickFullLine: true,
168
+ tickFullLineDasharray: 'none',
169
+ tickColorType: 'secondary',
170
+ tickTextRotate: 0,
171
+ tickTextColorType: 'primary',
172
+ },
173
+ gridIndexes: [0, 1]
174
+ }
175
+
176
+ export const DEFAULT_OVERLAPPING_STACKED_VALUE_AXES_PARAMS: OverlappingStackedValueAxesParams = {
177
+ ...DEFAULT_OVERLAPPING_VALUE_AXES_PARAMS
178
+ }
179
+
180
+ export const DEFAULT_MULTI_GRID_TOOLTIP_PARAMS: MultiGridTooltipParams = {
181
+ backgroundColorType: 'background',
182
+ strokeColorType: 'primary',
183
+ backgroundOpacity: 0.8,
184
+ textColorType: 'primary',
185
+ offset: [20, 5],
186
+ padding: 10,
187
+ renderFn: (eventData, { styles, utils }) => {
188
+ const bulletWidth = styles.textSizePx * 0.7
189
+ const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
190
+
191
+ const titleSvg = `<g><text dominant-baseline="hanging" font-size="${styles.textSizePx}" fill="${styles.textColor}">${eventData.groupLabel}</text></g>`
192
+ const groupLabelTextWidth = utils.measureTextWidth(eventData.groupLabel, styles.textSizePx)
193
+ const listTextWidth = eventData.group.reduce((acc, group) => {
194
+ const text = `${group.seriesLabel}${group.value}`
195
+ const _maxTextWidth = utils.measureTextWidth(text, styles.textSizePx)
196
+ return _maxTextWidth > acc ? _maxTextWidth : acc
197
+ }, 0)
198
+ const maxTextWidth = Math.max(groupLabelTextWidth, listTextWidth)
199
+ const lineEndX = maxTextWidth + styles.textSizePx * 3
200
+ const contentSvg = eventData.group
201
+ .map((group, i) => {
202
+ const y = i * styles.textSizePx * 1.5
203
+ const isHighlight = group.id === (eventData.datum && eventData.datum.id)
204
+ return `<g transform="translate(0, ${styles.textSizePx * 2})">
205
+ <rect width="${bulletWidth}" height="${bulletWidth}" x="${offset}" y="${y + offset}" rx="${bulletWidth / 2}" fill="${group.color}"></rect>
206
+ <text x="${styles.textSizePx * 1.5}" y="${y}" font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
207
+ <tspan font-weight="${isHighlight ? 'bold' : ''}">${group.seriesLabel}</tspan>
208
+ <tspan font-weight="bold" text-anchor="end" x="${lineEndX}">${utils.toCurrency(group.value)}</tspan>
209
+ </text>
210
+ </g>`
211
+ })
212
+ .join('')
213
+ return `${titleSvg}
214
+ ${contentSvg}`
215
+ }
216
+ }
217
+ DEFAULT_MULTI_GRID_TOOLTIP_PARAMS.renderFn.toString = () => `(eventData, { styles, utils }) => {
218
+ const bulletWidth = styles.textSizePx * 0.7
219
+ const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
220
+
221
+ const titleSvg = \`<g><text dominant-baseline="hanging" font-size="\${styles.textSizePx}" fill="\${styles.textColor}">\${eventData.groupLabel}</text></g>\`
222
+ const groupLabelTextWidth = utils.measureTextWidth(eventData.groupLabel, styles.textSizePx)
223
+ const listTextWidth = eventData.group.reduce((acc, group) => {
224
+ const text = \`\${group.seriesLabel}\${group.value}\`
225
+ const _maxTextWidth = utils.measureTextWidth(text, styles.textSizePx)
226
+ return _maxTextWidth > acc ? _maxTextWidth : acc
227
+ }, 0)
228
+ const maxTextWidth = Math.max(groupLabelTextWidth, listTextWidth)
229
+ const lineEndX = maxTextWidth + styles.textSizePx * 3
230
+ const contentSvg = eventData.group
231
+ .map((group, i) => {
232
+ const y = i * styles.textSizePx * 1.5
233
+ const isHighlight = group.id === (eventData.datum && eventData.datum.id)
234
+ return \`<g transform="translate(0, \${styles.textSizePx * 2})">
235
+ <rect width="\${bulletWidth}" height="\${bulletWidth}" x="\${offset}" y="\${y + offset}" rx="\${bulletWidth / 2}" fill="\${group.color}"></rect>
236
+ <text x="\${styles.textSizePx * 1.5}" y="\${y}" font-size="\${styles.textSizePx}" dominant-baseline="hanging" fill="\${styles.textColor}">
237
+ <tspan font-weight="\${isHighlight ? 'bold' : ''}">\${group.seriesLabel}</tspan>
238
+ <tspan font-weight="bold" text-anchor="end" x="\${lineEndX}">\${utils.toCurrency(group.value)}</tspan>
239
+ </text>
240
+ </g>\`
241
+ })
242
+ .join('')
243
+ return \`\${titleSvg}
244
+ \${contentSvg}\`
229
245
  }`
@@ -1,15 +1,15 @@
1
- export * from './defaults'
2
- // export * from './types'
3
- export { MultiGridLegend } from './plugins/MultiGridLegend'
4
- export { MultiBars } from './plugins/MultiBars'
5
- export { MultiStackedBar } from './plugins/MultiStackedBar'
6
- export { MultiBarsTriangle } from './plugins/MultiBarsTriangle'
7
- export { MultiLines } from './plugins/MultiLines'
8
- export { MultiLineAreas } from './plugins/MultiLineAreas'
9
- export { MultiDots } from './plugins/MultiDots'
10
- export { MultiGroupAxis } from './plugins/MultiGroupAxis'
11
- export { MultiValueAxis } from './plugins/MultiValueAxis'
12
- export { MultiGridTooltip } from './plugins/MultiGridTooltip'
13
- export { MultiStackedValueAxis } from './plugins/MultiStackedValueAxis'
14
- export { OverlappingValueAxes } from './plugins/OverlappingValueAxes'
1
+ export * from './defaults'
2
+ // export * from './types'
3
+ export { MultiGridLegend } from './plugins/MultiGridLegend'
4
+ export { MultiBars } from './plugins/MultiBars'
5
+ export { MultiStackedBars } from './plugins/MultiStackedBars'
6
+ export { MultiBarsTriangle } from './plugins/MultiBarsTriangle'
7
+ export { MultiLines } from './plugins/MultiLines'
8
+ export { MultiLineAreas } from './plugins/MultiLineAreas'
9
+ export { MultiDots } from './plugins/MultiDots'
10
+ export { MultiGroupAxis } from './plugins/MultiGroupAxis'
11
+ export { MultiValueAxis } from './plugins/MultiValueAxis'
12
+ export { MultiGridTooltip } from './plugins/MultiGridTooltip'
13
+ export { MultiStackedValueAxis } from './plugins/MultiStackedValueAxis'
14
+ export { OverlappingValueAxes } from './plugins/OverlappingValueAxes'
15
15
  export { OverlappingStackedValueAxes } from './plugins/OverlappingStackedValueAxes'
@@ -1,49 +1,50 @@
1
- import type { Observable } from 'rxjs'
2
- import {
3
- Subject,
4
- takeUntil,
5
- of,
6
- map,
7
- reduce,
8
- switchMap,
9
- combineLatest,
10
- distinctUntilChanged,
11
- shareReplay
12
- } from 'rxjs'
13
- import type {
14
- ContextObserverMultiGrid,
15
- ComputedDataGrid,
16
- DataFormatterGrid,
17
- ContextObserverGridDetail,
18
- ContextObserverMultiGridDetail } from '../../lib/core-types'
19
-
20
- // 可設定多個gridIndex的params
21
- interface MultiGridPluginParams {
22
- gridIndexes: number[] | 'all'
23
- }
24
-
25
- // 對應grid資料的plugin所需Observable(必須有gridIndexes)
26
- export const multiGridPluginDetailObservables = (observer: ContextObserverMultiGrid<MultiGridPluginParams>): Observable<ContextObserverMultiGridDetail[]> => {
27
- const gridIndexes$ = observer.fullParams$.pipe(
28
- map(fullParams => fullParams.gridIndexes),
29
- distinctUntilChanged(),
30
- shareReplay(1)
31
- )
32
-
33
- return combineLatest({
34
- multiGridEachDetail: observer.multiGridEachDetail$,
35
- gridIndexes: gridIndexes$,
36
- }).pipe(
37
- map(data => {
38
- // 對應所有grid
39
- if (data.gridIndexes === 'all') {
40
- return data.multiGridEachDetail
41
- }
42
- // 自訂對應grid
43
- return data.gridIndexes.map(gridIndex => {
44
- return data.multiGridEachDetail[gridIndex] ?? data.multiGridEachDetail[0]
45
- })
46
- })
47
- )
48
- }
49
-
1
+ import type { Observable } from 'rxjs'
2
+ import {
3
+ Subject,
4
+ takeUntil,
5
+ of,
6
+ map,
7
+ reduce,
8
+ switchMap,
9
+ combineLatest,
10
+ distinctUntilChanged,
11
+ shareReplay
12
+ } from 'rxjs'
13
+ import type {
14
+ ContextObserverMultiGrid,
15
+ ComputedDataGrid,
16
+ DataFormatterGrid,
17
+ ContextObserverGridDetail,
18
+ ContextObserverMultiGridDetail } from '../../lib/core-types'
19
+
20
+ // 可設定多個gridIndex的params
21
+ interface MultiGridPluginParams {
22
+ gridIndexes: number[] | 'all'
23
+ }
24
+
25
+ // 對應grid資料的plugin所需Observable(必須有gridIndexes)
26
+ export const multiGridPluginDetailObservables = (observer: ContextObserverMultiGrid<MultiGridPluginParams>): Observable<ContextObserverMultiGridDetail[]> => {
27
+ const gridIndexes$ = observer.fullParams$.pipe(
28
+ map(fullParams => fullParams.gridIndexes),
29
+ distinctUntilChanged(),
30
+ shareReplay(1)
31
+ )
32
+
33
+ return combineLatest({
34
+ multiGridEachDetail: observer.multiGridEachDetail$,
35
+ gridIndexes: gridIndexes$,
36
+ }).pipe(
37
+ switchMap(async d => d),
38
+ map(data => {
39
+ // 對應所有grid
40
+ if (data.gridIndexes === 'all') {
41
+ return data.multiGridEachDetail
42
+ }
43
+ // 自訂對應grid
44
+ return data.gridIndexes.map(gridIndex => {
45
+ return data.multiGridEachDetail[gridIndex] ?? data.multiGridEachDetail[0]
46
+ })
47
+ })
48
+ )
49
+ }
50
+