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

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 (182) hide show
  1. package/LICENSE +200 -200
  2. package/dist/orbcharts-plugins-basic.es.js +15169 -10684
  3. package/dist/orbcharts-plugins-basic.umd.js +296 -83
  4. package/dist/src/base/BaseBars.d.ts +4 -4
  5. package/dist/src/base/BaseBarsTriangle.d.ts +4 -4
  6. package/dist/src/base/BaseDots.d.ts +4 -4
  7. package/dist/src/base/BaseGroupAxis.d.ts +2 -2
  8. package/dist/src/base/BaseLegend.d.ts +1 -1
  9. package/dist/src/base/BaseLineAreas.d.ts +5 -5
  10. package/dist/src/base/BaseLines.d.ts +5 -5
  11. package/dist/src/base/BaseRacingBars.d.ts +23 -0
  12. package/dist/src/base/BaseRacingLabels.d.ts +20 -0
  13. package/dist/src/base/BaseRacingValueLabels.d.ts +20 -0
  14. package/dist/src/base/{BaseBarStack.d.ts → BaseStackedBars.d.ts} +8 -8
  15. package/dist/src/base/BaseValueAxis.d.ts +6 -8
  16. package/dist/src/base/BaseXAxis.d.ts +20 -0
  17. package/dist/src/base/BaseYAxis.d.ts +18 -0
  18. package/dist/src/grid/defaults.d.ts +5 -5
  19. package/dist/src/grid/gridObservables.d.ts +12 -5
  20. package/dist/src/grid/index.d.ts +3 -3
  21. package/dist/src/grid/plugins/GroupZoom.d.ts +1 -0
  22. package/dist/src/grid/plugins/StackedBars.d.ts +1 -0
  23. package/dist/src/grid/plugins/StackedValueAxis.d.ts +1 -0
  24. package/dist/src/index.d.ts +2 -0
  25. package/dist/src/multiGrid/defaults.d.ts +4 -4
  26. package/dist/src/multiGrid/index.d.ts +3 -3
  27. package/dist/src/multiGrid/plugins/MultiStackedBars.d.ts +1 -0
  28. package/dist/src/multiGrid/plugins/MultiStackedValueAxis.d.ts +1 -0
  29. package/dist/src/multiGrid/plugins/OverlappingStackedValueAxes.d.ts +1 -0
  30. package/dist/src/multiValue/defaults.d.ts +13 -0
  31. package/dist/src/multiValue/index.d.ts +12 -0
  32. package/dist/src/multiValue/multiValueObservables.d.ts +56 -0
  33. package/dist/src/multiValue/plugins/MultiValueLegend.d.ts +1 -0
  34. package/dist/src/multiValue/plugins/MultiValueTooltip.d.ts +1 -0
  35. package/dist/src/multiValue/plugins/RacingBars.d.ts +1 -0
  36. package/dist/src/multiValue/plugins/RacingCounterTexts.d.ts +3 -0
  37. package/dist/src/multiValue/plugins/RacingValueAxis.d.ts +1 -0
  38. package/dist/src/multiValue/plugins/Scatter.d.ts +3 -0
  39. package/dist/src/multiValue/plugins/ScatterBubbles.d.ts +3 -0
  40. package/dist/src/multiValue/plugins/XAxis.d.ts +1 -0
  41. package/dist/src/multiValue/plugins/XYAux.d.ts +3 -0
  42. package/dist/src/multiValue/plugins/XYAxes.d.ts +1 -0
  43. package/dist/src/multiValue/plugins/XYAxes_legacy.d.ts +3 -0
  44. package/dist/src/multiValue/plugins/XZoom.d.ts +1 -0
  45. package/dist/src/noneData/plugins/Container.d.ts +0 -1
  46. package/dist/src/noneData/plugins/Tooltip.d.ts +0 -3
  47. package/dist/src/relationship/defaults.d.ts +6 -0
  48. package/dist/src/relationship/index.d.ts +5 -0
  49. package/dist/src/relationship/plugins/ForceDirected.d.ts +3 -0
  50. package/dist/src/relationship/plugins/ForceDirectedBubbles.d.ts +3 -0
  51. package/dist/src/relationship/plugins/RelationshipLegend.d.ts +1 -0
  52. package/dist/src/relationship/plugins/RelationshipTooltip.d.ts +1 -0
  53. package/dist/src/relationship/relationshipObservables.d.ts +1 -0
  54. package/dist/src/series/seriesObservables.d.ts +3 -3
  55. package/dist/src/utils/commonUtils.d.ts +2 -1
  56. package/dist/src/utils/d3Graphics.d.ts +2 -1
  57. package/dist/src/utils/d3Utils.d.ts +3 -2
  58. package/dist/src/utils/observables.d.ts +1 -1
  59. package/dist/src/utils/orbchartsUtils.d.ts +3 -3
  60. package/lib/core-types.ts +7 -7
  61. package/lib/core.ts +6 -6
  62. package/lib/plugins-basic-types.ts +6 -6
  63. package/package.json +44 -44
  64. package/src/base/BaseBars.ts +765 -765
  65. package/src/base/BaseBarsTriangle.ts +676 -674
  66. package/src/base/BaseDots.ts +464 -515
  67. package/src/base/BaseGroupAxis.ts +691 -679
  68. package/src/base/BaseLegend.ts +684 -680
  69. package/src/base/BaseLineAreas.ts +629 -629
  70. package/src/base/BaseLines.ts +706 -706
  71. package/src/base/BaseRacingBars.ts +552 -0
  72. package/src/base/BaseRacingLabels.ts +396 -0
  73. package/src/base/BaseRacingValueLabels.ts +403 -0
  74. package/src/base/{BaseBarStack.ts → BaseStackedBars.ts} +782 -780
  75. package/src/base/BaseTooltip.ts +386 -385
  76. package/src/base/BaseValueAxis.ts +600 -580
  77. package/src/base/BaseXAxis.ts +427 -0
  78. package/src/base/BaseYAxis.ts +389 -0
  79. package/src/base/types.ts +2 -2
  80. package/src/const.ts +30 -30
  81. package/src/grid/defaults.ts +213 -244
  82. package/src/grid/gridObservables.ts +612 -545
  83. package/src/grid/index.ts +16 -16
  84. package/src/grid/plugins/Bars.ts +69 -69
  85. package/src/grid/plugins/BarsPN.ts +66 -66
  86. package/src/grid/plugins/BarsTriangle.ts +73 -73
  87. package/src/grid/plugins/Dots.ts +68 -68
  88. package/src/grid/plugins/GridLegend.ts +107 -107
  89. package/src/grid/plugins/GridTooltip.ts +66 -66
  90. package/src/grid/plugins/GroupAux.ts +1120 -1098
  91. package/src/grid/plugins/GroupAxis.ts +73 -97
  92. package/src/grid/plugins/{GridZoom.ts → GroupZoom.ts} +218 -218
  93. package/src/grid/plugins/LineAreas.ts +65 -65
  94. package/src/grid/plugins/Lines.ts +59 -59
  95. package/src/grid/plugins/{BarStack.ts → StackedBars.ts} +64 -64
  96. package/src/grid/plugins/{ValueStackAxis.ts → StackedValueAxis.ts} +96 -95
  97. package/src/grid/plugins/ValueAxis.ts +94 -93
  98. package/src/index.ts +6 -9
  99. package/src/multiGrid/defaults.ts +244 -224
  100. package/src/multiGrid/index.ts +15 -15
  101. package/src/multiGrid/multiGridObservables.ts +50 -49
  102. package/src/multiGrid/plugins/MultiBars.ts +108 -108
  103. package/src/multiGrid/plugins/MultiBarsTriangle.ts +114 -114
  104. package/src/multiGrid/plugins/MultiDots.ts +102 -102
  105. package/src/multiGrid/plugins/MultiGridLegend.ts +169 -159
  106. package/src/multiGrid/plugins/MultiGridTooltip.ts +66 -66
  107. package/src/multiGrid/plugins/MultiGroupAxis.ts +137 -137
  108. package/src/multiGrid/plugins/MultiLineAreas.ts +107 -107
  109. package/src/multiGrid/plugins/MultiLines.ts +101 -101
  110. package/src/multiGrid/plugins/{MultiBarStack.ts → MultiStackedBars.ts} +106 -106
  111. package/src/multiGrid/plugins/{MultiValueStackAxis.ts → MultiStackedValueAxis.ts} +134 -133
  112. package/src/multiGrid/plugins/MultiValueAxis.ts +134 -133
  113. package/src/multiGrid/plugins/{OverlappingValueStackAxes.ts → OverlappingStackedValueAxes.ts} +300 -298
  114. package/src/multiGrid/plugins/OverlappingValueAxes.ts +300 -299
  115. package/src/multiValue/defaults.ts +432 -0
  116. package/src/multiValue/index.ts +13 -0
  117. package/src/multiValue/multiValueObservables.ts +667 -0
  118. package/src/multiValue/plugins/MultiValueLegend.ts +107 -0
  119. package/src/multiValue/plugins/MultiValueTooltip.ts +66 -0
  120. package/src/multiValue/plugins/RacingBars.ts +373 -0
  121. package/src/multiValue/plugins/RacingCounterTexts.ts +300 -0
  122. package/src/multiValue/plugins/RacingValueAxis.ts +115 -0
  123. package/src/multiValue/plugins/RankingAxis_legacy.ts +109 -0
  124. package/src/multiValue/plugins/Scatter.ts +426 -0
  125. package/src/multiValue/plugins/ScatterBubbles.ts +554 -0
  126. package/src/multiValue/plugins/XAxis.ts +108 -0
  127. package/src/multiValue/plugins/XYAux.ts +683 -0
  128. package/src/multiValue/plugins/XYAxes.ts +195 -0
  129. package/src/multiValue/plugins/XYAxes_legacy.ts +684 -0
  130. package/src/multiValue/plugins/XZoom.ts +300 -0
  131. package/src/noneData/defaults.ts +102 -102
  132. package/src/noneData/index.ts +3 -3
  133. package/src/noneData/plugins/Container.ts +28 -28
  134. package/src/noneData/plugins/Tooltip.ts +374 -374
  135. package/src/relationship/defaults.ts +222 -0
  136. package/src/relationship/index.ts +5 -0
  137. package/src/relationship/plugins/ForceDirected.ts +1174 -0
  138. package/src/relationship/plugins/ForceDirectedBubbles.ts +1412 -0
  139. package/src/relationship/plugins/RelationshipLegend.ts +100 -0
  140. package/src/relationship/plugins/RelationshipTooltip.ts +66 -0
  141. package/src/relationship/relationshipObservables.ts +50 -0
  142. package/src/series/defaults.ts +221 -206
  143. package/src/series/index.ts +9 -9
  144. package/src/series/plugins/Bubbles.ts +636 -603
  145. package/src/series/plugins/Pie.ts +623 -623
  146. package/src/series/plugins/PieEventTexts.ts +284 -283
  147. package/src/series/plugins/PieLabels.ts +640 -640
  148. package/src/series/plugins/Rose.ts +516 -516
  149. package/src/series/plugins/RoseLabels.ts +600 -600
  150. package/src/series/plugins/SeriesLegend.ts +107 -107
  151. package/src/series/plugins/SeriesTooltip.ts +66 -66
  152. package/src/series/seriesObservables.ts +145 -145
  153. package/src/series/seriesUtils.ts +51 -51
  154. package/src/tree/defaults.ts +102 -78
  155. package/src/tree/index.ts +4 -4
  156. package/src/tree/plugins/TreeLegend.ts +100 -107
  157. package/src/tree/plugins/TreeMap.ts +341 -333
  158. package/src/tree/plugins/TreeTooltip.ts +66 -66
  159. package/src/utils/commonUtils.ts +31 -22
  160. package/src/utils/d3Graphics.ts +176 -174
  161. package/src/utils/d3Utils.ts +92 -73
  162. package/src/utils/observables.ts +14 -14
  163. package/src/utils/orbchartsUtils.ts +130 -100
  164. package/tsconfig.base.json +13 -13
  165. package/tsconfig.json +2 -2
  166. package/vite.config.js +22 -22
  167. package/dist/src/grid/plugins/BarStack.d.ts +0 -1
  168. package/dist/src/grid/plugins/GridZoom.d.ts +0 -1
  169. package/dist/src/grid/plugins/ValueStackAxis.d.ts +0 -1
  170. package/dist/src/multiGrid/plugins/MultiBarStack.d.ts +0 -1
  171. package/dist/src/multiGrid/plugins/MultiValueStackAxis.d.ts +0 -1
  172. package/dist/src/multiGrid/plugins/OverlappingValueStackAxes.d.ts +0 -1
  173. package/src/grid/plugins/RankingAxis.ts +0 -0
  174. package/src/multiValue/plugins/ScatterAxes.ts +0 -0
  175. package/src/relationship/plugins/Relationship.ts +0 -0
  176. /package/dist/src/{base/BaseGroupArea.d.ts → multiValue/plugins/OrdinalBubbles.d.ts} +0 -0
  177. /package/dist/src/{grid/plugins/Ranking.d.ts → multiValue/plugins/OrdinalXAxis.d.ts} +0 -0
  178. /package/dist/src/{grid/plugins/RankingAxis.d.ts → multiValue/plugins/RacingCounterAxis.d.ts} +0 -0
  179. /package/dist/src/multiValue/plugins/{ScatterAxes.d.ts → RankingAxis_legacy.d.ts} +0 -0
  180. /package/{dist/src/relationship/plugins/Relationship.d.ts → src/multiValue/plugins/OrdinalBubbles.ts} +0 -0
  181. /package/src/{base/BaseGroupArea.ts → multiValue/plugins/OrdinalXAxis.ts} +0 -0
  182. /package/src/{grid/plugins/Ranking.ts → multiValue/plugins/RacingCounterAxis.ts} +0 -0
@@ -1,245 +1,214 @@
1
- import type {
2
- LinesParams,
3
- LineAreasParams,
4
- GroupAuxParams,
5
- DotsParams,
6
- BarsParams,
7
- BarStackParams,
8
- BarsTriangleParams,
9
- GroupAxisParams,
10
- ValueAxisParams,
11
- ValueStackAxisParams,
12
- GridTooltipParams,
13
- GridZoomParams,
14
- GridLegendParams
15
- } from '../../lib/plugins-basic-types'
16
- import { measureTextWidth } from '../utils/commonUtils'
17
-
18
- export const DEFAULT_LINES_PARAMS: LinesParams = {
19
- lineCurve: 'curveLinear',
20
- lineWidth: 2
21
- }
22
-
23
- export const DEFAULT_LINE_AREAS_PARAMS: LineAreasParams = {
24
- lineCurve: 'curveLinear',
25
- linearGradientOpacity: [1, 0]
26
- }
27
-
28
- export const DEFAULT_DOTS_PARAMS: DotsParams = {
29
- radius: 4,
30
- fillColorType: 'white',
31
- strokeColorType: 'series',
32
- strokeWidth: 2,
33
- // strokeWidthWhileHighlight: 3,
34
- onlyShowHighlighted: false
35
- }
36
-
37
- export const DEFAULT_GROUP_AREA_PARAMS: GroupAuxParams = {
38
- showLine: true,
39
- showLabel: true,
40
- lineDashArray: '3, 3',
41
- lineColorType: 'primary',
42
- labelColorType: 'primary',
43
- labelTextColorType: 'background',
44
- labelTextFormat: text => text,
45
- labelPadding: 20,
46
- labelRotate: 0
47
- }
48
- DEFAULT_GROUP_AREA_PARAMS.labelTextFormat.toString = () => `text => text`
49
-
50
- export const DEFAULT_BARS_PARAMS: BarsParams = {
51
- // barType: 'rect',
52
- barWidth: 0,
53
- barPadding: 1,
54
- barGroupPadding: 40,
55
- barRadius: false,
56
- }
57
-
58
- export const DEFAULT_BARS_DIVERGING_PARAMS: BarsParams = {
59
- ...DEFAULT_BARS_PARAMS
60
- }
61
-
62
- export const DEFAULT_BAR_STACK_PARAMS: BarStackParams = {
63
- barWidth: 0,
64
- barGroupPadding: 10,
65
- barRadius: false,
66
- }
67
-
68
- export const DEFAULT_BARS_TRIANGLE_PARAMS: BarsTriangleParams = {
69
- barWidth: 0,
70
- barPadding: 1,
71
- barGroupPadding: 20,
72
- linearGradientOpacity: [1, 0]
73
- }
74
-
75
- export const DEFAULT_GROUP_AXIS_PARAMS: GroupAxisParams = {
76
- // labelAnchor: 'start',
77
- labelOffset: [0, 0],
78
- labelColorType: 'primary',
79
- axisLineVisible: true,
80
- axisLineColorType: 'primary',
81
- ticks: 'all',
82
- tickFormat: text => text,
83
- tickLineVisible: true,
84
- tickPadding: 20,
85
- tickFullLine: false,
86
- tickFullLineDasharray: 'none',
87
- tickColorType: 'secondary',
88
- tickTextRotate: 0,
89
- tickTextColorType: 'primary',
90
- }
91
- DEFAULT_GROUP_AXIS_PARAMS.tickFormat.toString = () => `text => text`
92
-
93
- export const DEFAULT_VALUE_AXIS_PARAMS: ValueAxisParams = {
94
- // labelAnchor: 'end',
95
- labelOffset: [0, 0],
96
- labelColorType: 'primary',
97
- axisLineVisible: false,
98
- axisLineColorType: 'primary',
99
- ticks: null,
100
- tickFormat: ',.0f',
101
- tickLineVisible: true,
102
- tickPadding: 20,
103
- tickFullLine: true,
104
- tickFullLineDasharray: 'none',
105
- tickColorType: 'secondary',
106
- tickTextRotate: 0,
107
- tickTextColorType: 'primary'
108
- }
109
-
110
- export const DEFAULT_VALUE_STACK_AXIS_PARAMS: ValueStackAxisParams = {
111
- ...DEFAULT_VALUE_AXIS_PARAMS
112
- }
113
-
114
- export const DEFAULT_GRID_ZOOM_PARAMS: GridZoomParams = {
115
-
116
- }
117
-
118
- export const DEFAULT_GRID_LEGEND_PARAMS: GridLegendParams = {
119
- // position: 'right',
120
- // justify: 'end',
121
- placement: 'bottom',
122
- padding: 28,
123
- // offset: [0, 0],
124
- backgroundFill: 'none',
125
- backgroundStroke: 'none',
126
- gap: 10,
127
- listRectWidth: 14,
128
- listRectHeight: 14,
129
- listRectRadius: 0,
130
- // highlightEvent: false
131
- textColorType: 'primary'
132
- }
133
-
134
- export const DEFAULT_GRID_TOOLTIP_PARAMS: GridTooltipParams = {
135
- backgroundColorType: 'background',
136
- strokeColorType: 'primary',
137
- backgroundOpacity: 0.8,
138
- textColorType: 'primary',
139
- offset: [20, 5],
140
- padding: 10,
141
- // renderFn: (eventData, { styles }) => {
142
- // const bulletWidth = styles.textSizePx * 0.7
143
- // const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
144
- // if (eventData.highlightTarget === 'group') {
145
- // const titleSvg = `<g><text dominant-baseline="hanging" font-size="${styles.textSizePx}">${eventData.groupLabel}</text></g>`
146
- // const maxLengthText = eventData.groups.reduce((acc, group) => {
147
- // const text = `${group.seriesLabel}${group.value}`
148
- // return text.length > acc.length ? text : acc
149
- // }, '')
150
- // const maxTextWidth = measureTextWidth(maxLengthText, styles.textSizePx)
151
- // const lineEndX = maxTextWidth + styles.textSizePx * 2
152
- // const contentSvg = eventData.groups
153
- // .map((group, i) => {
154
- // const y = i * styles.textSizePx * 1.5
155
- // return `<g transform="translate(0, ${styles.textSizePx * 2})">
156
- // <rect width="${bulletWidth}" height="${bulletWidth}" x="${offset}" y="${y + offset}" rx="${bulletWidth / 2}" fill="${group.color}"></rect>
157
- // <text x="${styles.textSizePx * 1.5}" y="${y}" font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
158
- // <tspan>${group.seriesLabel}</tspan>
159
- // <tspan font-weight="bold" text-anchor="end" x="${lineEndX}">${group.value}</tspan>
160
- // </text>
161
- // </g>`
162
- // })
163
- // .join('')
164
- // return `${titleSvg}
165
- // ${contentSvg}`
166
- // } else if (eventData.highlightTarget === 'series') {
167
- // const titleSvg = `<g><text dominant-baseline="hanging" font-size="${styles.textSizePx}">${eventData.groupLabel}</text></g>`
168
- // const textWidth = measureTextWidth(`${eventData.seriesLabel}${eventData.datum.value}`, styles.textSizePx)
169
- // const lineEndX = textWidth + styles.textSizePx * 2
170
- // const contentSvg = `<g transform="translate(0, ${styles.textSizePx * 2})">
171
- // <rect width="${bulletWidth}" height="${bulletWidth}" x="${offset}" y="${offset}" rx="${bulletWidth / 2}" fill="${eventData.datum.color}"></rect>
172
- // <text x="${styles.textSizePx * 1.5}" font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
173
- // <tspan>${eventData.seriesLabel}</tspan>
174
- // <tspan font-weight="bold" text-anchor="end" x="${lineEndX}">${eventData.datum.value}</tspan>
175
- // </text>
176
- // </g>`
177
- // return `${titleSvg}
178
- // ${contentSvg}`
179
- // } else {
180
- // const textWidth = measureTextWidth(`${eventData.datum.label}${eventData.datum.value}`, styles.textSizePx)
181
- // const lineEndX = textWidth + styles.textSizePx * 2
182
- // return `<g>
183
- // <rect width="${bulletWidth}" height="${bulletWidth}" x="${offset}" y="${offset}" rx="${bulletWidth / 2}" fill="${eventData.datum.color}"></rect>
184
- // <text x="${styles.textSizePx * 1.5}" font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
185
- // <tspan>${eventData.datum.label}</tspan>
186
- // <tspan font-weight="bold" text-anchor="end" x="${lineEndX}">${eventData.datum.value}</tspan>
187
- // </text>
188
- // </g>`
189
- // }
190
- // },
191
- renderFn: (eventData, { styles, utils }) => {
192
- const bulletWidth = styles.textSizePx * 0.7
193
- const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
194
-
195
- const titleSvg = `<g><text dominant-baseline="hanging" font-size="${styles.textSizePx}">${eventData.groupLabel}</text></g>`
196
- const maxLengthText = eventData.groups.reduce((acc, group) => {
197
- const text = `${group.seriesLabel}${group.value}`
198
- return text.length > acc.length ? text : acc
199
- }, '')
200
- const maxTextWidth = utils.measureTextWidth(maxLengthText, styles.textSizePx)
201
- const lineEndX = maxTextWidth + styles.textSizePx * 2
202
- const contentSvg = eventData.groups
203
- .map((group, i) => {
204
- const y = i * styles.textSizePx * 1.5
205
- const isHighlight = group.id === (eventData.datum && eventData.datum.id)
206
- return `<g transform="translate(0, ${styles.textSizePx * 2})">
207
- <rect width="${bulletWidth}" height="${bulletWidth}" x="${offset}" y="${y + offset}" rx="${bulletWidth / 2}" fill="${group.color}"></rect>
208
- <text x="${styles.textSizePx * 1.5}" y="${y}" font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
209
- <tspan font-weight="${isHighlight ? 'bold' : ''}">${group.seriesLabel}</tspan>
210
- <tspan font-weight="bold" text-anchor="end" x="${lineEndX}">${group.value}</tspan>
211
- </text>
212
- </g>`
213
- })
214
- .join('')
215
- return `${titleSvg}
216
- ${contentSvg}`
217
- }
218
- }
219
- DEFAULT_GRID_TOOLTIP_PARAMS.renderFn.toString = () => `(eventData, { styles, utils }) => {
220
- const bulletWidth = styles.textSizePx * 0.7
221
- const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
222
-
223
- const titleSvg = \`<g><text dominant-baseline="hanging" font-size="\${styles.textSizePx}">\${eventData.groupLabel}</text></g>\`
224
- const maxLengthText = eventData.groups.reduce((acc, group) => {
225
- const text = \`\${group.seriesLabel}\${group.value}\`
226
- return text.length > acc.length ? text : acc
227
- }, '')
228
- const maxTextWidth = utils.measureTextWidth(maxLengthText, styles.textSizePx)
229
- const lineEndX = maxTextWidth + styles.textSizePx * 2
230
- const contentSvg = eventData.groups
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}">\${group.value}</tspan>
239
- </text>
240
- </g>\`
241
- })
242
- .join('')
243
- return \`\${titleSvg}
244
- \${contentSvg}\`
1
+ import type {
2
+ LinesParams,
3
+ LineAreasParams,
4
+ GroupAuxParams,
5
+ DotsParams,
6
+ BarsParams,
7
+ StackedBarsParams,
8
+ BarsTriangleParams,
9
+ GroupAxisParams,
10
+ ValueAxisParams,
11
+ StackedValueAxisParams,
12
+ GridTooltipParams,
13
+ GroupZoomParams,
14
+ GridLegendParams
15
+ } from '../../lib/plugins-basic-types'
16
+ // import { measureTextWidth } from '../utils/commonUtils'
17
+
18
+ export const DEFAULT_LINES_PARAMS: LinesParams = {
19
+ lineCurve: 'curveLinear',
20
+ lineWidth: 2
21
+ }
22
+
23
+ export const DEFAULT_LINE_AREAS_PARAMS: LineAreasParams = {
24
+ lineCurve: 'curveLinear',
25
+ linearGradientOpacity: [1, 0]
26
+ }
27
+
28
+ export const DEFAULT_DOTS_PARAMS: DotsParams = {
29
+ radius: 4,
30
+ fillColorType: 'background',
31
+ strokeColorType: 'label',
32
+ strokeWidth: 2,
33
+ // strokeWidthWhileHighlight: 3,
34
+ onlyShowHighlighted: false
35
+ }
36
+
37
+ export const DEFAULT_GROUP_AUX_PARAMS: GroupAuxParams = {
38
+ showLine: true,
39
+ showLabel: true,
40
+ lineDashArray: '3, 3',
41
+ lineColorType: 'primary',
42
+ labelColorType: 'primary',
43
+ labelTextColorType: 'background',
44
+ labelTextFormat: text => text,
45
+ labelPadding: 20,
46
+ labelRotate: 0
47
+ }
48
+ DEFAULT_GROUP_AUX_PARAMS.labelTextFormat.toString = () => `text => text`
49
+
50
+ export const DEFAULT_BARS_PARAMS: BarsParams = {
51
+ // barType: 'rect',
52
+ barWidth: 0,
53
+ barPadding: 1,
54
+ barGroupPadding: 40,
55
+ barRadius: false,
56
+ }
57
+
58
+ export const DEFAULT_BARS_DIVERGING_PARAMS: BarsParams = {
59
+ ...DEFAULT_BARS_PARAMS
60
+ }
61
+
62
+ export const DEFAULT_STACKED_BARS_PARAMS: StackedBarsParams = {
63
+ barWidth: 0,
64
+ barGroupPadding: 10,
65
+ barRadius: false,
66
+ }
67
+
68
+ export const DEFAULT_BARS_TRIANGLE_PARAMS: BarsTriangleParams = {
69
+ barWidth: 0,
70
+ barPadding: 1,
71
+ barGroupPadding: 20,
72
+ linearGradientOpacity: [1, 0]
73
+ }
74
+
75
+ export const DEFAULT_GROUP_AXIS_PARAMS: GroupAxisParams = {
76
+ // labelAnchor: 'start',
77
+ labelOffset: [0, 0],
78
+ labelColorType: 'primary',
79
+ axisLineVisible: true,
80
+ axisLineColorType: 'primary',
81
+ ticks: 'all',
82
+ tickFormat: text => text,
83
+ tickLineVisible: true,
84
+ tickPadding: 20,
85
+ tickFullLine: false,
86
+ tickFullLineDasharray: 'none',
87
+ tickColorType: 'secondary',
88
+ tickTextRotate: 0,
89
+ tickTextColorType: 'primary',
90
+ }
91
+ DEFAULT_GROUP_AXIS_PARAMS.tickFormat.toString = () => `text => text`
92
+
93
+ export const DEFAULT_VALUE_AXIS_PARAMS: ValueAxisParams = {
94
+ // labelAnchor: 'end',
95
+ labelOffset: [0, 0],
96
+ labelColorType: 'primary',
97
+ axisLineVisible: false,
98
+ axisLineColorType: 'primary',
99
+ ticks: null,
100
+ // tickFormat: ',.0f',
101
+ // tickFormat: v => v,
102
+ tickFormat: num => {
103
+ if (num === null || Number.isNaN(num) == true) {
104
+ return num || 0
105
+ }
106
+ const parts = num.toString().split('.')
107
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
108
+ return parts.join('.')
109
+ },
110
+ tickLineVisible: true,
111
+ tickPadding: 20,
112
+ tickFullLine: true,
113
+ tickFullLineDasharray: 'none',
114
+ tickColorType: 'secondary',
115
+ tickTextRotate: 0,
116
+ tickTextColorType: 'primary'
117
+ }
118
+ DEFAULT_VALUE_AXIS_PARAMS.tickFormat.toString = () => `num => {
119
+ if (num === null || Number.isNaN(num) == true) {
120
+ return num || 0
121
+ }
122
+ const parts = num.toString().split('.')
123
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
124
+ return parts.join('.')
125
+ }`
126
+
127
+ export const DEFAULT_STACKED_VALUE_AXIS_PARAMS: StackedValueAxisParams = {
128
+ ...DEFAULT_VALUE_AXIS_PARAMS
129
+ }
130
+
131
+ export const DEFAULT_GROUP_ZOOM_PARAMS: GroupZoomParams = {
132
+
133
+ }
134
+
135
+ export const DEFAULT_GRID_LEGEND_PARAMS: GridLegendParams = {
136
+ placement: 'bottom',
137
+ padding: 28,
138
+ // offset: [0, 0],
139
+ backgroundFill: 'none',
140
+ backgroundStroke: 'none',
141
+ gap: 10,
142
+ listRectWidth: 14,
143
+ listRectHeight: 14,
144
+ listRectRadius: 0,
145
+ // highlightEvent: false
146
+ textColorType: 'primary'
147
+ }
148
+
149
+ export const DEFAULT_GRID_TOOLTIP_PARAMS: GridTooltipParams = {
150
+ backgroundColorType: 'background',
151
+ strokeColorType: 'primary',
152
+ backgroundOpacity: 0.8,
153
+ textColorType: 'primary',
154
+ offset: [20, 5],
155
+ padding: 10,
156
+ renderFn: (eventData, { styles, utils }) => {
157
+ const bulletWidth = styles.textSizePx * 0.7
158
+ const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
159
+
160
+ const titleSvg = `<g><text dominant-baseline="hanging" font-size="${styles.textSizePx}" fill="${styles.textColor}">${eventData.groupLabel}</text></g>`
161
+ const groupLabelTextWidth = utils.measureTextWidth(eventData.groupLabel, styles.textSizePx)
162
+ const listTextWidth = eventData.group.reduce((acc, group) => {
163
+ const text = `${group.seriesLabel}${utils.toCurrency(group.value)}`
164
+ const _maxTextWidth = utils.measureTextWidth(text, styles.textSizePx)
165
+ return _maxTextWidth > acc ? _maxTextWidth : acc
166
+ }, 0)
167
+ const maxTextWidth = Math.max(groupLabelTextWidth, listTextWidth)
168
+ const lineEndX = maxTextWidth + styles.textSizePx * 3
169
+ const contentSvg = eventData.group
170
+ .map((group, i) => {
171
+ const y = i * styles.textSizePx * 1.5
172
+ const isHighlight = group.id === (eventData.datum && eventData.datum.id)
173
+ return `<g transform="translate(0, ${styles.textSizePx * 2})">
174
+ <rect width="${bulletWidth}" height="${bulletWidth}" x="${offset}" y="${y + offset}" rx="${bulletWidth / 2}" fill="${group.color}"></rect>
175
+ <text x="${styles.textSizePx * 1.5}" y="${y}" font-size="${styles.textSizePx}" dominant-baseline="hanging" fill="${styles.textColor}">
176
+ <tspan font-weight="${isHighlight ? 'bold' : ''}">${group.seriesLabel}</tspan>
177
+ <tspan font-weight="bold" text-anchor="end" x="${lineEndX}">${utils.toCurrency(group.value)}</tspan>
178
+ </text>
179
+ </g>`
180
+ })
181
+ .join('')
182
+ return `${titleSvg}
183
+ ${contentSvg}`
184
+ }
185
+ }
186
+ DEFAULT_GRID_TOOLTIP_PARAMS.renderFn.toString = () => `(eventData, { styles, utils }) => {
187
+ const bulletWidth = styles.textSizePx * 0.7
188
+ const offset = (styles.textSizePx / 2) - (bulletWidth / 2)
189
+
190
+ const titleSvg = \`<g><text dominant-baseline="hanging" font-size="\${styles.textSizePx}" fill="\${styles.textColor}">\${eventData.groupLabel}</text></g>\`
191
+ const groupLabelTextWidth = utils.measureTextWidth(eventData.groupLabel, styles.textSizePx)
192
+ const listTextWidth = eventData.group.reduce((acc, group) => {
193
+ const text = \`\${group.seriesLabel}\${utils.toCurrency(group.value)}\`
194
+ const _maxTextWidth = utils.measureTextWidth(text, styles.textSizePx)
195
+ return _maxTextWidth > acc ? _maxTextWidth : acc
196
+ }, 0)
197
+ const maxTextWidth = Math.max(groupLabelTextWidth, listTextWidth)
198
+ const lineEndX = maxTextWidth + styles.textSizePx * 3
199
+ const contentSvg = eventData.group
200
+ .map((group, i) => {
201
+ const y = i * styles.textSizePx * 1.5
202
+ const isHighlight = group.id === (eventData.datum && eventData.datum.id)
203
+ return \`<g transform="translate(0, \${styles.textSizePx * 2})">
204
+ <rect width="\${bulletWidth}" height="\${bulletWidth}" x="\${offset}" y="\${y + offset}" rx="\${bulletWidth / 2}" fill="\${group.color}"></rect>
205
+ <text x="\${styles.textSizePx * 1.5}" y="\${y}" font-size="\${styles.textSizePx}" dominant-baseline="hanging" fill="\${styles.textColor}">
206
+ <tspan font-weight="\${isHighlight ? 'bold' : ''}">\${group.seriesLabel}</tspan>
207
+ <tspan font-weight="bold" text-anchor="end" x="\${lineEndX}">\${utils.toCurrency(group.value)}</tspan>
208
+ </text>
209
+ </g>\`
210
+ })
211
+ .join('')
212
+ return \`\${titleSvg}
213
+ \${contentSvg}\`
245
214
  }`