@visactor/vchart-extension 1.15.5-alpha.8 → 2.0.0-alpha.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 (55) hide show
  1. package/build/index.js +143 -814
  2. package/build/index.min.js +2 -2
  3. package/cjs/charts/conversion-funnel/conversion-funnel.js +3 -2
  4. package/cjs/charts/conversion-funnel/conversion-funnel.js.map +1 -1
  5. package/cjs/components/bar-link/index.js +1 -2
  6. package/cjs/components/series-break/series-break.js +2 -2
  7. package/cjs/components/series-break/series-break.js.map +1 -1
  8. package/cjs/components/series-break/util.js +6 -6
  9. package/cjs/components/series-break/util.js.map +1 -1
  10. package/cjs/components/series-label/type.js +2 -1
  11. package/cjs/index.d.ts +0 -1
  12. package/cjs/index.js +3 -3
  13. package/cjs/index.js.map +1 -1
  14. package/esm/charts/conversion-funnel/conversion-funnel.js +4 -3
  15. package/esm/charts/conversion-funnel/conversion-funnel.js.map +1 -1
  16. package/esm/components/bar-link/index.js +1 -2
  17. package/esm/components/series-break/series-break.js +2 -2
  18. package/esm/components/series-break/series-break.js.map +1 -1
  19. package/esm/components/series-break/util.js +6 -6
  20. package/esm/components/series-break/util.js.map +1 -1
  21. package/esm/components/series-label/type.js +2 -1
  22. package/esm/index.d.ts +0 -1
  23. package/esm/index.js +0 -2
  24. package/esm/index.js.map +1 -1
  25. package/package.json +10 -11
  26. package/cjs/charts/ranking-list/constant.d.ts +0 -2
  27. package/cjs/charts/ranking-list/constant.js +0 -74
  28. package/cjs/charts/ranking-list/constant.js.map +0 -1
  29. package/cjs/charts/ranking-list/interface.d.ts +0 -73
  30. package/cjs/charts/ranking-list/interface.js +0 -6
  31. package/cjs/charts/ranking-list/interface.js.map +0 -1
  32. package/cjs/charts/ranking-list/ranking-list-transformer.d.ts +0 -458
  33. package/cjs/charts/ranking-list/ranking-list-transformer.js +0 -376
  34. package/cjs/charts/ranking-list/ranking-list-transformer.js.map +0 -1
  35. package/cjs/charts/ranking-list/ranking-list.d.ts +0 -16
  36. package/cjs/charts/ranking-list/ranking-list.js +0 -34
  37. package/cjs/charts/ranking-list/ranking-list.js.map +0 -1
  38. package/cjs/charts/ranking-list/utils.d.ts +0 -7
  39. package/cjs/charts/ranking-list/utils.js +0 -51
  40. package/cjs/charts/ranking-list/utils.js.map +0 -1
  41. package/esm/charts/ranking-list/constant.d.ts +0 -2
  42. package/esm/charts/ranking-list/constant.js +0 -70
  43. package/esm/charts/ranking-list/constant.js.map +0 -1
  44. package/esm/charts/ranking-list/interface.d.ts +0 -73
  45. package/esm/charts/ranking-list/interface.js +0 -2
  46. package/esm/charts/ranking-list/interface.js.map +0 -1
  47. package/esm/charts/ranking-list/ranking-list-transformer.d.ts +0 -458
  48. package/esm/charts/ranking-list/ranking-list-transformer.js +0 -376
  49. package/esm/charts/ranking-list/ranking-list-transformer.js.map +0 -1
  50. package/esm/charts/ranking-list/ranking-list.d.ts +0 -16
  51. package/esm/charts/ranking-list/ranking-list.js +0 -27
  52. package/esm/charts/ranking-list/ranking-list.js.map +0 -1
  53. package/esm/charts/ranking-list/utils.d.ts +0 -7
  54. package/esm/charts/ranking-list/utils.js +0 -41
  55. package/esm/charts/ranking-list/utils.js.map +0 -1
@@ -1,376 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.RankingListChartSpecTransformer = void 0;
6
-
7
- const vchart_1 = require("@visactor/vchart"), vutils_1 = require("@visactor/vutils"), constant_1 = require("./constant"), utils_1 = require("./utils"), DATA_KEY = "dataKey", ORDER_KEY = "VCHART_ORDER", SUPPLY_DATA_KEY = "SUPPLY_DATA_KEY", NAME_LABEL_PADDING_RIGHT = 10, NAME_ORDER_PADDING_RIGHT = 5, NAME_SYMBOL_PADDING_RIGHT = 8, CHART_PADDING_LEFT = 5, CHART_PADDING_RIGHT = 5, VALUE_LABEL_PADDING_LEFT = 5, LABEL_PADDING_BOTTOM = 5;
8
-
9
- class RankingListChartSpecTransformer extends vchart_1.CommonChartSpecTransformer {
10
- constructor() {
11
- super(...arguments), this.formatMap = {}, this.paginateDataArr = spec => {
12
- const {scrollSize: scrollSize = 1, pageSize: pageSize = 5} = spec, arr = this.originalData, result = {};
13
- let pageOrder = 0;
14
- for (let i = 0; i < arr.length; i += scrollSize) if (pageOrder++, result[`page${pageOrder}`] = arr.slice(i, i + pageSize),
15
- i + pageSize - 1 >= arr.length - 1) {
16
- arr.push(...Array.from({
17
- length: i + pageSize - arr.length
18
- }, (_ => ({
19
- [spec.yField]: 100 * Math.random(),
20
- [spec.xField]: null,
21
- [SUPPLY_DATA_KEY]: !0
22
- }))));
23
- break;
24
- }
25
- return {
26
- orderCount: pageOrder,
27
- result: result
28
- };
29
- }, this.processRankingData = spec => {
30
- const result = [];
31
- spec.data.forEach(((datum, index) => datum[ORDER_KEY] = index + 1 < 10 ? `0${index + 1}` : index + 1));
32
- const pagerData = this.paginateDataArr(spec).result, orderCount = this.paginateDataArr(spec).orderCount;
33
- this.orderCount = orderCount;
34
- const supplyCount = spec.pageSize - pagerData[`page${orderCount}`].length;
35
- return pagerData[`page${orderCount}`].push(...Array.from({
36
- length: supplyCount
37
- }, (_ => ({
38
- [spec.yField]: 100 * Math.random(),
39
- [spec.xField]: null,
40
- [SUPPLY_DATA_KEY]: !0
41
- })))), Object.keys(pagerData).forEach((order => {
42
- result.push({
43
- data: [ {
44
- id: "datas",
45
- values: pagerData[order].map((d => Object.assign(Object.assign({}, d), {
46
- [DATA_KEY]: d[spec.yField]
47
- })))
48
- }, {
49
- id: "order",
50
- values: [ {
51
- order: order
52
- } ]
53
- } ]
54
- });
55
- })), result;
56
- };
57
- }
58
- transformSpec(spec) {
59
- super.transformSpec(spec), this.normalizeSpec(spec), this.upgradeTextMeasure(spec),
60
- this.upgradeFormatMap(spec), this.processData(spec), this.transformBaseSpec(spec),
61
- this.transformAnimationSpec(spec), this.transformAxesSpec(spec), spec.extensionMark = [ this.generateBarBackground(spec), ...this.generateDecorateHaloIcons(spec), this.generateRankingIcon(spec), this.generateNameLabel(spec), this.generateOrderLabel(spec), this.generateValueLabel(spec) ],
62
- this.transformPaddingSpec(spec), super.transformSpec(spec);
63
- }
64
- normalizeSpec(spec) {
65
- (0, utils_1.mergeObjects)(spec, constant_1.defaultSpec), (0, utils_1.applyVisible)(spec, [ "barBackground", "rankingIcon", "decorateHaloIcons", "orderLabel", "nameLabel", "valueLabel" ]);
66
- }
67
- upgradeTextMeasure(spec) {
68
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
69
- null === (_a = this.nameLabelTextMeasure) || void 0 === _a || _a.release(), null === (_b = this.valueLabelTextMeasure) || void 0 === _b || _b.release(),
70
- null === (_c = this.orderLabelTextMeasure) || void 0 === _c || _c.release(), this.nameLabelTextMeasure = new vutils_1.TextMeasure({
71
- defaultFontParams: null !== (_e = null === (_d = spec.nameLabel) || void 0 === _d ? void 0 : _d.style) && void 0 !== _e ? _e : {}
72
- }), this.valueLabelTextMeasure = new vutils_1.TextMeasure({
73
- defaultFontParams: null !== (_g = null === (_f = spec.valueLabel) || void 0 === _f ? void 0 : _f.style) && void 0 !== _g ? _g : {}
74
- }), this.orderLabelTextMeasure = new vutils_1.TextMeasure({
75
- defaultFontParams: null !== (_j = null === (_h = spec.orderLabel) || void 0 === _h ? void 0 : _h.style) && void 0 !== _j ? _j : {}
76
- });
77
- }
78
- upgradeFormatMap(spec) {
79
- this.formatMap[spec.yField] = spec.nameLabel.formatMethod, this.formatMap[spec.xField] = spec.valueLabel.formatMethod,
80
- this.formatMap[ORDER_KEY] = spec.orderLabel.formatMethod;
81
- }
82
- processData(spec) {
83
- var _a;
84
- (null === (_a = spec.data[0]) || void 0 === _a ? void 0 : _a.values) || (this.originalData = spec.data,
85
- this.originalSpec = (0, vutils_1.cloneDeep)(spec), this.dataSpecs = this.processRankingData(spec),
86
- spec.data = this.dataSpecs[0].data);
87
- }
88
- transformBaseSpec(spec) {
89
- var _a, _b, _c;
90
- spec.type = "common", spec.dataKey = DATA_KEY, spec.series = [ {
91
- type: "bar",
92
- direction: "horizontal",
93
- xField: spec.xField,
94
- yField: spec.yField,
95
- barWidth: null !== (_b = null === (_a = spec.bar) || void 0 === _a ? void 0 : _a.height) && void 0 !== _b ? _b : 10,
96
- bar: Object.assign(Object.assign({}, spec.bar), {
97
- style: Object.assign(Object.assign({}, null === (_c = spec.bar) || void 0 === _c ? void 0 : _c.style), {
98
- x1: 0,
99
- visible: datum => {
100
- var _a, _b;
101
- return !datum[SUPPLY_DATA_KEY] && (null === (_b = null === (_a = spec.bar) || void 0 === _a ? void 0 : _a.style) || void 0 === _b || _b);
102
- }
103
- })
104
- })
105
- } ];
106
- }
107
- transformAnimationSpec(spec) {
108
- var _a, _b, _c;
109
- spec.animationUpdate.enable && this.orderCount > 1 && (spec.player = Object.assign({
110
- specs: this.dataSpecs,
111
- auto: !0,
112
- visible: !1,
113
- interval: (null !== (_b = null === (_a = spec.animationNormal) || void 0 === _a ? void 0 : _a.interval) && void 0 !== _b ? _b : 1e3) + (null !== (_c = spec.animationUpdate.duration) && void 0 !== _c ? _c : 1e3) / 2,
114
- loop: !0
115
- }, spec.player), spec.animationExit = this.getAnimationExit(this.originalSpec),
116
- spec.animationEnter = this.getAnimationEnter(this.originalSpec), spec.animationUpdate = this.getAnimationUpdate(this.originalSpec)),
117
- spec.animationNormal = this.originalSpec.animationNormal, spec.animationAppear = this.getAnimationAppear(this.originalSpec, "rect");
118
- }
119
- transformAxesSpec(spec) {
120
- const {min: min, max: max} = (0, utils_1.computeDataRange)(this.originalData, spec.xField);
121
- spec.axes = [ {
122
- orient: "left",
123
- type: "band",
124
- visible: !1,
125
- inverse: !0,
126
- paddingOuter: .5
127
- }, {
128
- orient: "bottom",
129
- label: {
130
- visible: !0
131
- },
132
- type: "linear",
133
- visible: !1,
134
- min: min,
135
- max: max
136
- } ];
137
- }
138
- generateBarBackground(spec) {
139
- var _a;
140
- return {
141
- type: spec.barBackground.type,
142
- dataId: "data",
143
- visible: !0,
144
- dataKey: DATA_KEY,
145
- zIndex: -99,
146
- state: null === (_a = spec.barBackground) || void 0 === _a ? void 0 : _a.state,
147
- style: Object.assign(Object.assign({
148
- x: (datum, ctx) => "symbol" === spec.barBackground.type ? ctx.getRegion().getLayoutRect().width / 2 : 0,
149
- y: (datum, ctx) => ctx.valueToY([ datum[spec.yField] ]) + ctx.yBandwidth() / 2 - ("symbol" === spec.barBackground.type ? 0 : spec.bar.height / 2),
150
- size: (datum, ctx) => [ ctx.getRegion().getLayoutRect().width, spec.bar.height ],
151
- width: (datum, ctx) => ctx.getRegion().getLayoutRect().width,
152
- height: spec.bar.height
153
- }, spec.barBackground.style), {
154
- visible: datum => !datum[SUPPLY_DATA_KEY] && spec.barBackground.style.visible
155
- }),
156
- animation: !0,
157
- animationEnter: this.getAnimationEnter(this.originalSpec),
158
- animationExit: this.getAnimationExit(this.originalSpec),
159
- animationAppear: this.getAnimationAppear(this.originalSpec, "barBack"),
160
- animationUpdate: this.getAnimationUpdate(this.originalSpec)
161
- };
162
- }
163
- generateDecorateHaloIcons(spec) {
164
- var _a;
165
- return null === (_a = spec.decorateHaloIcons) || void 0 === _a ? void 0 : _a.map((decorateHaloIcon => ({
166
- type: "symbol",
167
- dataId: "data",
168
- visible: !0,
169
- dataKey: DATA_KEY,
170
- state: null == decorateHaloIcon ? void 0 : decorateHaloIcon.state,
171
- style: Object.assign(Object.assign({
172
- x: (datum, ctx) => {
173
- if (void 0 !== datum[spec.xField] && null !== datum[spec.xField]) return ctx.valueToX([ datum[spec.xField] ]);
174
- },
175
- y: (datum, ctx) => ctx.valueToY([ datum[spec.yField] ]) + ctx.yBandwidth() / 2
176
- }, decorateHaloIcon.style), {
177
- visible: datum => !datum[SUPPLY_DATA_KEY] && decorateHaloIcon.style.visible
178
- }),
179
- animation: !0,
180
- animationEnter: this.getAnimationEnter(this.originalSpec),
181
- animationExit: this.getAnimationExit(this.originalSpec),
182
- animationAppear: this.getAnimationAppear(this.originalSpec, "symbol"),
183
- animationUpdate: this.getAnimationUpdate(this.originalSpec)
184
- })));
185
- }
186
- generateRankingIcon(spec) {
187
- return {
188
- type: "symbol",
189
- dataId: "data",
190
- visible: !0,
191
- dataKey: DATA_KEY,
192
- state: spec.rankingIcon.state,
193
- style: Object.assign(Object.assign({
194
- x: datum => "bothEnd" === spec.labelLayout ? -(10 + this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width + (spec.orderLabel.style.visible ? 5 + this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).width : 0) + 8) : 5,
195
- y: (datum, ctx) => "bothEnd" === spec.labelLayout ? ctx.valueToY([ datum[spec.yField] ]) + ctx.yBandwidth() / 2 : ctx.valueToY([ datum[spec.yField] ]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - 5 - Math.max(this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).height, this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).height) / 2
196
- }, spec.rankingIcon.style), {
197
- lineWidth: 0,
198
- stroke: null,
199
- visible: datum => !datum[SUPPLY_DATA_KEY] && spec.rankingIcon.style.visible
200
- }),
201
- animation: !0,
202
- animationEnter: this.getAnimationEnter(this.originalSpec),
203
- animationExit: this.getAnimationExit(this.originalSpec),
204
- animationAppear: this.getAnimationAppear(this.originalSpec, "text"),
205
- animationUpdate: this.getAnimationUpdate(this.originalSpec)
206
- };
207
- }
208
- generateNameLabel(spec) {
209
- var _a;
210
- return {
211
- type: "text",
212
- dataId: "data",
213
- dataKey: DATA_KEY,
214
- state: null === (_a = spec.nameLabel) || void 0 === _a ? void 0 : _a.state,
215
- style: Object.assign(Object.assign({
216
- text: datum => this.formatDatum(spec.yField, datum),
217
- x: () => {
218
- var _a;
219
- return "bothEnd" === spec.labelLayout ? -10 : (spec.rankingIcon.style.visible ? 8 + (null !== (_a = spec.rankingIcon.style.size) && void 0 !== _a ? _a : 10) : 0) + (spec.orderLabel.style.visible ? 5 + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure) : 0);
220
- },
221
- y: (datum, ctx) => "bothEnd" === spec.labelLayout ? ctx.valueToY([ datum[spec.yField] ]) + ctx.yBandwidth() / 2 : ctx.valueToY([ datum[spec.yField] ]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - 5
222
- }, spec.nameLabel.style), {
223
- textAlign: "bothEnd" === spec.labelLayout ? "right" : "left",
224
- textBaseline: "bothEnd" === spec.labelLayout ? "middle" : "bottom",
225
- visible: datum => !datum[SUPPLY_DATA_KEY] && spec.nameLabel.style.visible
226
- }),
227
- animation: !0,
228
- animationEnter: this.getAnimationEnter(this.originalSpec),
229
- animationExit: this.getAnimationExit(this.originalSpec),
230
- animationAppear: this.getAnimationAppear(this.originalSpec, "text"),
231
- animationUpdate: this.getAnimationUpdate(this.originalSpec)
232
- };
233
- }
234
- generateOrderLabel(spec) {
235
- var _a;
236
- return {
237
- type: "text",
238
- dataId: "data",
239
- dataKey: DATA_KEY,
240
- state: null === (_a = spec.orderLabel) || void 0 === _a ? void 0 : _a.state,
241
- style: Object.assign(Object.assign({
242
- text: datum => this.formatDatum(ORDER_KEY, datum),
243
- x: datum => {
244
- var _a;
245
- return "bothEnd" === spec.labelLayout ? -(10 + this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width + 5) : spec.rankingIcon.style.visible ? 8 + (null !== (_a = spec.rankingIcon.style.size) && void 0 !== _a ? _a : 10) : 0;
246
- },
247
- y: (datum, ctx) => "bothEnd" === spec.labelLayout ? ctx.valueToY([ datum[spec.yField] ]) + ctx.yBandwidth() / 2 : ctx.valueToY([ datum[spec.yField] ]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - 5
248
- }, spec.orderLabel.style), {
249
- textAlign: "bothEnd" === spec.labelLayout ? "right" : "left",
250
- textBaseline: "bothEnd" === spec.labelLayout ? "middle" : "bottom",
251
- visible: datum => !datum[SUPPLY_DATA_KEY] && spec.orderLabel.style.visible
252
- }),
253
- animation: !0,
254
- animationEnter: this.getAnimationEnter(this.originalSpec),
255
- animationExit: this.getAnimationExit(this.originalSpec),
256
- animationAppear: this.getAnimationAppear(this.originalSpec, "text"),
257
- animationUpdate: this.getAnimationUpdate(this.originalSpec)
258
- };
259
- }
260
- generateValueLabel(spec) {
261
- var _a;
262
- return {
263
- type: "text",
264
- dataId: "data",
265
- visible: !0,
266
- dataKey: DATA_KEY,
267
- state: null === (_a = spec.valueLabel) || void 0 === _a ? void 0 : _a.state,
268
- style: Object.assign(Object.assign({
269
- text: datum => this.formatDatum(spec.xField, datum),
270
- x: (datum, ctx) => "bothEnd" === spec.labelLayout ? ctx.getRegion().getLayoutRect().width + 5 : ctx.getRegion().getLayoutRect().width,
271
- y: (datum, ctx) => "bothEnd" === spec.labelLayout ? ctx.valueToY([ datum[spec.yField] ]) + ctx.yBandwidth() / 2 : ctx.valueToY([ datum[spec.yField] ]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - 5
272
- }, spec.valueLabel.style), {
273
- textAlign: "bothEnd" === spec.labelLayout ? "left" : "right",
274
- textBaseline: "bothEnd" === spec.labelLayout ? "middle" : "bottom",
275
- visible: datum => !datum[SUPPLY_DATA_KEY] && spec.valueLabel.style.visible
276
- }),
277
- animation: !0,
278
- animationEnter: this.getAnimationEnter(this.originalSpec),
279
- animationExit: this.getAnimationExit(this.originalSpec),
280
- animationAppear: this.getAnimationAppear(this.originalSpec, "text"),
281
- animationUpdate: this.getAnimationUpdate(this.originalSpec)
282
- };
283
- }
284
- transformPaddingSpec(spec) {
285
- var _a;
286
- const maxHaloIconSize = spec.decorateHaloIcons.length > 0 ? Math.max(...spec.decorateHaloIcons.map((icon => {
287
- var _a, _b;
288
- return null !== (_b = null === (_a = icon.style) || void 0 === _a ? void 0 : _a.size) && void 0 !== _b ? _b : 18;
289
- }))) : 0;
290
- spec.padding = Object.assign({
291
- left: "bothEnd" === spec.labelLayout ? 10 + this.getMaxDataLabelLens(spec, spec.yField, this.nameLabelTextMeasure) + (spec.orderLabel.style.visible ? 5 + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure) : 0) + (spec.rankingIcon.style.visible ? 8 + (null !== (_a = spec.rankingIcon.style.size) && void 0 !== _a ? _a : 10) : 0) + 5 : 5 + maxHaloIconSize / 2,
292
- right: "bothEnd" === spec.labelLayout ? 5 + this.getMaxDataLabelLens(spec, spec.xField, this.valueLabelTextMeasure) + 5 : 15,
293
- top: 0,
294
- bottom: 0
295
- }, spec.padding);
296
- }
297
- getMaxDataLabelLens(spec, field, textMeasure) {
298
- const textWidths = this.originalData.map((datum => datum[SUPPLY_DATA_KEY] ? 0 : textMeasure.fullMeasure(this.formatDatum(field, datum)).width));
299
- return Math.max(...textWidths);
300
- }
301
- formatDatum(field, datum) {
302
- var _a;
303
- return (null === (_a = this.formatMap) || void 0 === _a ? void 0 : _a[field]) ? this.formatMap[field](datum[field], datum) : datum[field];
304
- }
305
- getLabelWidth(padding, width) {
306
- return width + padding;
307
- }
308
- getAnimationExit(spec) {
309
- var _a, _b, _c, _d, _e;
310
- return !1 !== (null === (_a = spec.animationUpdate) || void 0 === _a ? void 0 : _a.enable) && {
311
- type: "moveOut",
312
- options: {
313
- direction: "y",
314
- orient: "negative",
315
- point: (datum, element) => ({
316
- y: element.getGraphicAttribute("y") - spec.height / (spec.pageSize + 1) * Math.min(spec.scrollSize, spec.pageSize)
317
- })
318
- },
319
- duration: null !== (_c = null === (_b = spec.animationUpdate) || void 0 === _b ? void 0 : _b.duration) && void 0 !== _c ? _c : 1e3,
320
- easing: null !== (_e = null === (_d = spec.animationUpdate) || void 0 === _d ? void 0 : _d.easing) && void 0 !== _e ? _e : "linear"
321
- };
322
- }
323
- getAnimationEnter(spec) {
324
- var _a, _b, _c, _d, _e;
325
- return !1 !== (null === (_a = spec.animationUpdate) || void 0 === _a ? void 0 : _a.enable) && {
326
- type: "moveIn",
327
- options: {
328
- direction: "y",
329
- orient: "negative",
330
- excludeChannels: [ "y" ],
331
- point: (datum, element) => ({
332
- y: element.getGraphicAttribute("y") + spec.height / (spec.pageSize + 1) * Math.min(spec.scrollSize, spec.pageSize)
333
- })
334
- },
335
- duration: null !== (_c = null === (_b = spec.animationUpdate) || void 0 === _b ? void 0 : _b.duration) && void 0 !== _c ? _c : 1e3,
336
- easing: null !== (_e = null === (_d = spec.animationUpdate) || void 0 === _d ? void 0 : _d.easing) && void 0 !== _e ? _e : "linear"
337
- };
338
- }
339
- getAnimationAppear(spec, markType) {
340
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
341
- return !1 !== (null === (_a = spec.animationAppear) || void 0 === _a ? void 0 : _a.enable) && ("rect" === markType ? {
342
- type: "growWidthIn",
343
- oneByOne: !1,
344
- duration: null !== (_c = null === (_b = spec.animationAppear) || void 0 === _b ? void 0 : _b.duration) && void 0 !== _c ? _c : 1e3,
345
- easing: null !== (_e = null === (_d = spec.animationAppear) || void 0 === _d ? void 0 : _d.easing) && void 0 !== _e ? _e : "linear",
346
- options: {}
347
- } : "symbol" === markType ? {
348
- channel: {
349
- x: {
350
- from: 0,
351
- to: (datum, element) => element.getGraphicItem().attribute.x
352
- }
353
- },
354
- duration: null !== (_g = null === (_f = spec.animationAppear) || void 0 === _f ? void 0 : _f.duration) && void 0 !== _g ? _g : 1e3,
355
- easing: null !== (_j = null === (_h = spec.animationAppear) || void 0 === _h ? void 0 : _h.easing) && void 0 !== _j ? _j : "linear"
356
- } : {
357
- channel: {
358
- opacity: {
359
- from: 0,
360
- to: 1
361
- }
362
- },
363
- duration: null !== (_l = null === (_k = spec.animationAppear) || void 0 === _k ? void 0 : _k.duration) && void 0 !== _l ? _l : 1e3,
364
- easing: null !== (_o = null === (_m = spec.animationAppear) || void 0 === _m ? void 0 : _m.easing) && void 0 !== _o ? _o : "linear"
365
- });
366
- }
367
- getAnimationUpdate(spec) {
368
- var _a, _b, _c, _d;
369
- return !1 !== spec.animationUpdate.enable && {
370
- duration: null !== (_b = null === (_a = spec.animationUpdate) || void 0 === _a ? void 0 : _a.duration) && void 0 !== _b ? _b : 1e3,
371
- easing: null !== (_d = null === (_c = spec.animationUpdate) || void 0 === _c ? void 0 : _c.easing) && void 0 !== _d ? _d : "linear"
372
- };
373
- }
374
- }
375
-
376
- exports.RankingListChartSpecTransformer = RankingListChartSpecTransformer;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["charts/ranking-list/ranking-list-transformer.ts"],"names":[],"mappings":"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","file":"ranking-list-transformer.js","sourcesContent":["import { Datum } from '@visactor/vchart/src/typings';\nimport type { IRankingListSpec } from './interface';\nimport { CommonChartSpecTransformer } from '@visactor/vchart';\nimport { cloneDeep, TextMeasure } from '@visactor/vutils';\nimport { defaultSpec } from './constant';\nimport { applyVisible, computeDataRange, mergeObjects } from './utils';\nimport { IElement } from '@visactor/vgammar-core';\n\nconst DATA_KEY = 'dataKey';\nconst ORDER_KEY = 'VCHART_ORDER';\nconst SUPPLY_DATA_KEY = 'SUPPLY_DATA_KEY';\nconst NAME_LABEL_PADDING_RIGHT = 10;\nconst NAME_ORDER_PADDING_RIGHT = 5;\nconst NAME_SYMBOL_PADDING_RIGHT = 8;\nconst CHART_PADDING_LEFT = 5;\nconst CHART_PADDING_RIGHT = 5;\nconst VALUE_LABEL_PADDING_LEFT = 5;\n\nconst LABEL_PADDING_BOTTOM = 5;\n\nexport class RankingListChartSpecTransformer extends CommonChartSpecTransformer {\n protected nameLabelTextMeasure: TextMeasure<any>;\n protected valueLabelTextMeasure: TextMeasure<any>;\n protected orderLabelTextMeasure: TextMeasure<any>;\n protected originalData: Datum[];\n protected originalSpec: IRankingListSpec;\n protected dataSpecs: any[];\n protected formatMap: { [key: string]: (text: string, ctx: any) => string } = {};\n protected orderCount: number;\n\n transformSpec(spec: any): void {\n super.transformSpec(spec);\n this.normalizeSpec(spec);\n this.upgradeTextMeasure(spec);\n this.upgradeFormatMap(spec);\n this.processData(spec);\n\n // rankingList spec -> vchart spec\n this.transformBaseSpec(spec);\n this.transformAnimationSpec(spec);\n this.transformAxesSpec(spec);\n\n spec.extensionMark = [\n // 柱图背景\n this.generateBarBackground(spec),\n // 辅助图标\n ...this.generateDecorateHaloIcons(spec),\n // 左侧图标\n this.generateRankingIcon(spec),\n // 左侧label\n this.generateNameLabel(spec),\n // 左侧序号label\n this.generateOrderLabel(spec),\n // 右侧label\n this.generateValueLabel(spec)\n ];\n\n this.transformPaddingSpec(spec);\n\n // console.log('spec', spec);\n\n super.transformSpec(spec);\n }\n\n normalizeSpec(spec: any) {\n // 处理配置\n mergeObjects(spec, defaultSpec);\n applyVisible(spec, [\n 'barBackground',\n 'rankingIcon',\n 'decorateHaloIcons',\n 'orderLabel',\n 'nameLabel',\n 'valueLabel'\n // 'bar'\n ]);\n }\n\n upgradeTextMeasure(spec: any) {\n // 初始化文字测量\n this.nameLabelTextMeasure?.release();\n this.valueLabelTextMeasure?.release();\n this.orderLabelTextMeasure?.release();\n this.nameLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.nameLabel?.style ?? {}\n });\n this.valueLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.valueLabel?.style ?? {}\n });\n this.orderLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.orderLabel?.style ?? {}\n });\n }\n\n upgradeFormatMap(spec: any) {\n this.formatMap[spec.yField] = spec.nameLabel.formatMethod;\n this.formatMap[spec.xField] = spec.valueLabel.formatMethod;\n this.formatMap[ORDER_KEY] = spec.orderLabel.formatMethod;\n }\n\n processData(spec: any) {\n // ps: 如果updateSpec后, 同时执行2次processData会有问题, 在这里用比较hack的方式绕过第2次\n if (!spec.data[0]?.values) {\n this.originalData = spec.data;\n this.originalSpec = cloneDeep(spec);\n this.dataSpecs = this.processRankingData(spec as unknown as IRankingListSpec);\n spec.data = this.dataSpecs[0].data;\n }\n }\n\n transformBaseSpec(spec: any) {\n spec.type = 'common';\n spec.dataKey = DATA_KEY;\n spec.series = [\n {\n type: 'bar',\n direction: 'horizontal',\n xField: spec.xField,\n yField: spec.yField,\n barWidth: spec.bar?.height ?? 10,\n bar: {\n ...spec.bar,\n style: {\n ...spec.bar?.style,\n x1: 0,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.bar?.style ?? true;\n }\n }\n }\n }\n ];\n }\n\n transformAnimationSpec(spec: any) {\n if (spec.animationUpdate.enable && this.orderCount > 1) {\n spec.player = {\n specs: this.dataSpecs,\n auto: true,\n visible: false,\n interval: (spec.animationNormal?.interval ?? 1000) + (spec.animationUpdate.duration ?? 1000) / 2,\n loop: true,\n ...spec.player\n };\n\n spec.animationExit = this.getAnimationExit(this.originalSpec);\n spec.animationEnter = this.getAnimationEnter(this.originalSpec);\n spec.animationUpdate = this.getAnimationUpdate(this.originalSpec);\n }\n spec.animationNormal = this.originalSpec.animationNormal;\n spec.animationAppear = this.getAnimationAppear(this.originalSpec, 'rect');\n }\n\n transformAxesSpec(spec: any) {\n const { min, max } = computeDataRange(this.originalData, spec.xField);\n spec.axes = [\n {\n orient: 'left',\n type: 'band',\n visible: false,\n inverse: true,\n // paddingInner: 0.5,\n paddingOuter: 0.5\n },\n {\n orient: 'bottom',\n label: { visible: true },\n type: 'linear',\n visible: false,\n min,\n max\n }\n ];\n }\n\n generateBarBackground(spec: any) {\n return {\n type: spec.barBackground.type,\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n zIndex: -99,\n state: spec.barBackground?.state,\n style: {\n x: (datum: Datum, ctx: any) =>\n spec.barBackground.type === 'symbol' ? ctx.getRegion().getLayoutRect().width / 2 : 0,\n y: (datum: Datum, ctx: any) => {\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n (spec.barBackground.type === 'symbol' ? 0 : spec.bar.height / 2)\n );\n },\n size: (datum: Datum, ctx: any) => [ctx.getRegion().getLayoutRect().width, spec.bar.height],\n width: (datum: Datum, ctx: any) => ctx.getRegion().getLayoutRect().width,\n height: spec.bar.height,\n ...spec.barBackground.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.barBackground.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'barBack'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateDecorateHaloIcons(spec: any) {\n return spec.decorateHaloIcons?.map((decorateHaloIcon: any) => {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: decorateHaloIcon?.state,\n style: {\n x: (datum: Datum, ctx: any) => {\n if (datum[spec.xField] === undefined || datum[spec.xField] === null) {\n return undefined;\n }\n return ctx.valueToX([datum[spec.xField]]);\n },\n y: (datum: Datum, ctx: any) => {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n },\n ...decorateHaloIcon.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return decorateHaloIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'symbol'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n });\n }\n\n generateRankingIcon(spec: any) {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.rankingIcon.state,\n style: {\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT +\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).width\n : 0) +\n NAME_SYMBOL_PADDING_RIGHT\n );\n }\n return CHART_PADDING_LEFT;\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n spec.bar.height / 2 -\n LABEL_PADDING_BOTTOM -\n Math.max(\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).height,\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).height\n ) /\n 2\n );\n },\n ...spec.rankingIcon.style,\n lineWidth: 0,\n stroke: null,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.rankingIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateNameLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.nameLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.yField, datum),\n x: () => {\n if (spec.labelLayout === 'bothEnd') {\n return -NAME_LABEL_PADDING_RIGHT;\n }\n return (\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0)\n );\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.nameLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.nameLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateOrderLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.orderLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(ORDER_KEY, datum),\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n NAME_ORDER_PADDING_RIGHT\n );\n } else {\n return spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0;\n }\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.orderLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.orderLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateValueLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.valueLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.xField, datum),\n x: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return (\n ctx.getRegion().getLayoutRect().width +\n // this.getMaxDataLabelLens(spec, spec.xField, this.valueLabelTextMeasure) +\n VALUE_LABEL_PADDING_LEFT\n );\n } else {\n return ctx.getRegion().getLayoutRect().width;\n }\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.valueLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'left' : 'right',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.valueLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n transformPaddingSpec(spec: any) {\n const maxHaloIconSize =\n spec.decorateHaloIcons.length > 0\n ? Math.max(...spec.decorateHaloIcons.map((icon: any) => icon.style?.size ?? 18))\n : 0;\n spec.padding = {\n left:\n spec.labelLayout === 'bothEnd'\n ? NAME_LABEL_PADDING_RIGHT +\n this.getMaxDataLabelLens(spec, spec.yField, this.nameLabelTextMeasure) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0) +\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n CHART_PADDING_LEFT\n : CHART_PADDING_LEFT + maxHaloIconSize / 2,\n right:\n spec.labelLayout === 'bothEnd'\n ? VALUE_LABEL_PADDING_LEFT +\n this.getMaxDataLabelLens(spec, spec.xField, this.valueLabelTextMeasure) +\n CHART_PADDING_RIGHT\n : CHART_PADDING_RIGHT + 10,\n top: 0,\n bottom: 0,\n ...spec.padding\n };\n }\n\n paginateDataArr = (spec: IRankingListSpec) => {\n const { scrollSize = 1, pageSize = 5 } = spec;\n const arr = this.originalData;\n const result: { [key: string]: Datum[] } = {};\n let pageOrder = 0;\n for (let i = 0; i < arr.length; i += scrollSize) {\n pageOrder++;\n result[`page${pageOrder}`] = arr.slice(i, i + pageSize);\n if (i + pageSize - 1 >= arr.length - 1) {\n arr.push(\n ...Array.from({ length: i + pageSize - arr.length }, _ => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n break;\n }\n }\n return {\n orderCount: pageOrder,\n result: result\n };\n };\n\n processRankingData = (spec: IRankingListSpec) => {\n const result: any[] = [];\n spec.data.forEach((datum, index) => (datum[ORDER_KEY] = index + 1 < 10 ? `0${index + 1}` : index + 1));\n const pagerData = this.paginateDataArr(spec).result;\n const orderCount = this.paginateDataArr(spec).orderCount;\n this.orderCount = orderCount;\n const supplyCount = spec.pageSize - pagerData[`page${orderCount}`].length;\n pagerData[`page${orderCount}`].push(\n ...Array.from({ length: supplyCount }, _ => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n\n Object.keys(pagerData).forEach(order => {\n result.push({\n data: [\n {\n id: 'datas',\n values: pagerData[order].map(d => {\n return { ...d, [DATA_KEY]: d[spec.yField] };\n })\n },\n {\n id: 'order',\n values: [\n {\n order\n }\n ]\n }\n ]\n });\n });\n\n // // 只有1页时, player循环播放时, prePage和curPage data一致, 导致没有动画效果\n // // 在此手动复制1页, 且prePage和curPage dataKey不一致, 保证动画效果\n // if (result.length === 1) {\n // result.push({\n // data: [\n // {\n // id: 'datas',\n // values: pagerData['page1'].map(d => {\n // return { ...d, [DATA_KEY]: 'page2_' + d['y'] };\n // })\n // },\n // {\n // id: 'order',\n // values: [\n // {\n // order: 'page2'\n // }\n // ]\n // }\n // ]\n // });\n // }\n\n return result;\n };\n\n getMaxDataLabelLens(spec: IRankingListSpec, field: string, textMeasure: TextMeasure<any>) {\n const textWidths = this.originalData.map(datum =>\n datum[SUPPLY_DATA_KEY] ? 0 : textMeasure.fullMeasure(this.formatDatum(field, datum)).width\n );\n return Math.max(...textWidths);\n }\n\n formatDatum(field: string, datum: Datum) {\n if (this.formatMap?.[field]) {\n return this.formatMap[field](datum[field], datum);\n } else {\n return datum[field];\n }\n }\n\n getLabelWidth(padding: number, width: number) {\n return width + padding;\n }\n\n getAnimationExit(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveOut',\n options: {\n direction: 'y',\n orient: 'negative',\n point: (datum: Datum, element: IElement) => {\n const channelAttr = element.getGraphicAttribute('y');\n const barSpace = spec.height / (spec.pageSize + 1);\n return { y: channelAttr - barSpace * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationEnter(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveIn',\n options: {\n direction: 'y',\n orient: 'negative',\n excludeChannels: ['y'],\n point: (datum: Datum, element: IElement) => {\n const channelAttr = element.getGraphicAttribute('y');\n return { y: channelAttr + (spec.height / (spec.pageSize + 1)) * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationAppear(spec: IRankingListSpec, markType: 'rect' | 'text' | 'symbol' | 'barBack') {\n if (spec.animationAppear?.enable === false) {\n return false;\n }\n if (markType === 'rect') {\n return {\n type: 'growWidthIn',\n oneByOne: false,\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear',\n options: {}\n };\n } else if (markType === 'symbol') {\n return {\n channel: {\n x: {\n from: 0,\n to: (datum: Datum, element: IElement) => {\n return element.getGraphicItem().attribute.x;\n }\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n } else {\n return {\n channel: {\n opacity: {\n from: 0,\n to: 1\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n }\n }\n\n getAnimationUpdate(spec: IRankingListSpec) {\n if (spec.animationUpdate.enable === false) {\n return false;\n }\n return {\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n}\n"]}
@@ -1,16 +0,0 @@
1
- import { IRankingListSpec } from './interface';
2
- import { VChart, BaseChart } from '@visactor/vchart';
3
- import { RankingListChartSpecTransformer } from './ranking-list-transformer';
4
- export declare class RankingList extends BaseChart<Omit<IRankingListSpec, 'data'>> {
5
- type: string;
6
- static type: string;
7
- static readonly view: string;
8
- _spec: IRankingListSpec;
9
- static readonly transformerConstructor: typeof RankingListChartSpecTransformer;
10
- readonly transformerConstructor: typeof RankingListChartSpecTransformer;
11
- init(): void;
12
- protected isValid(): boolean;
13
- }
14
- export declare const registerRankingList: (option?: {
15
- VChart?: typeof VChart;
16
- }) => void;
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.registerRankingList = exports.RankingList = void 0;
6
-
7
- const vchart_1 = require("@visactor/vchart"), ranking_list_transformer_1 = require("./ranking-list-transformer");
8
-
9
- class RankingList extends vchart_1.BaseChart {
10
- constructor() {
11
- super(...arguments), this.type = "rankingList", this.transformerConstructor = ranking_list_transformer_1.RankingListChartSpecTransformer;
12
- }
13
- init() {
14
- this.isValid() && super.init();
15
- }
16
- isValid() {
17
- var _a, _b, _c, _d;
18
- const {xField: xField, yField: yField, data: data} = this._spec;
19
- return xField && yField ? !!data || (null === (_d = (_c = this._option).onError) || void 0 === _d || _d.call(_c, "Data is required"),
20
- !1) : (null === (_b = (_a = this._option).onError) || void 0 === _b || _b.call(_a, "Missing Required Config: `xField`, `yField` "),
21
- !1);
22
- }
23
- }
24
-
25
- exports.RankingList = RankingList, RankingList.type = "rankingList", RankingList.view = "singleDefault",
26
- RankingList.transformerConstructor = ranking_list_transformer_1.RankingListChartSpecTransformer;
27
-
28
- const registerRankingList = option => {
29
- const vchartConstructor = (null == option ? void 0 : option.VChart) || vchart_1.VChart;
30
- vchartConstructor && vchartConstructor.useChart([ RankingList, vchart_1.BarChart ]);
31
- };
32
-
33
- exports.registerRankingList = registerRankingList;
34
- //# sourceMappingURL=ranking-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["charts/ranking-list/ranking-list.ts"],"names":[],"mappings":";;;AACA,6CAA+D;AAC/D,yEAA6E;AAE7E,MAAa,WAAY,SAAQ,kBAAyC;IAA1E;;QACE,SAAI,GAAG,aAAa,CAAC;QAOZ,2BAAsB,GAAG,0DAA+B,CAAC;IAqBpE,CAAC;IAnBC,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YACnB,OAAO;SACR;QACD,KAAK,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAES,OAAO;;QACf,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE;YACtB,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,OAAO,mDAAG,8CAA8C,CAAC,CAAC;YACvE,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,IAAI,EAAE;YACT,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,OAAO,mDAAG,kBAAkB,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;;AA5BH,kCA6BC;AA3BQ,gBAAI,GAAG,aAAa,CAAC;AACZ,gBAAI,GAAW,eAAe,CAAC;AAI/B,kCAAsB,GAAG,0DAA+B,CAAC;AAwBpE,MAAM,mBAAmB,GAAG,CAAC,MAAmC,EAAE,EAAE;IACzE,MAAM,iBAAiB,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,KAAI,eAAM,CAAC;IACnD,IAAI,iBAAiB,EAAE;QACrB,iBAAiB,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,iBAAQ,CAAC,CAAC,CAAC;KACrD;AACH,CAAC,CAAC;AALW,QAAA,mBAAmB,uBAK9B","file":"ranking-list.js","sourcesContent":["import { IRankingListSpec } from './interface';\nimport { VChart, BaseChart, BarChart } from '@visactor/vchart';\nimport { RankingListChartSpecTransformer } from './ranking-list-transformer';\n\nexport class RankingList extends BaseChart<Omit<IRankingListSpec, 'data'>> {\n type = 'rankingList';\n static type = 'rankingList';\n static readonly view: string = 'singleDefault';\n\n declare _spec: IRankingListSpec;\n\n static readonly transformerConstructor = RankingListChartSpecTransformer;\n readonly transformerConstructor = RankingListChartSpecTransformer;\n\n init() {\n if (!this.isValid()) {\n return;\n }\n super.init();\n }\n\n protected isValid() {\n const { xField, yField, data } = this._spec;\n if (!xField || !yField) {\n this._option.onError?.('Missing Required Config: `xField`, `yField` ');\n return false;\n }\n if (!data) {\n this._option.onError?.('Data is required');\n return false;\n }\n return true;\n }\n}\n\nexport const registerRankingList = (option?: { VChart?: typeof VChart }) => {\n const vchartConstructor = option?.VChart || VChart;\n if (vchartConstructor) {\n vchartConstructor.useChart([RankingList, BarChart]);\n }\n};\n"]}
@@ -1,7 +0,0 @@
1
- import { Datum } from '@visactor/vchart/src/typings';
2
- export declare const applyVisible: (spec: any, keyList: string[]) => void;
3
- export declare const mergeObjects: (objA: any, objB: any) => any;
4
- export declare const computeDataRange: (data: Datum[], field: string) => {
5
- min: number;
6
- max: number;
7
- };
@@ -1,51 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.computeDataRange = exports.mergeObjects = exports.applyVisible = void 0;
6
-
7
- const vutils_1 = require("@visactor/vutils"), applyVisible = (spec, keyList) => {
8
- keyList.forEach((key => {
9
- var _a, _b, _c, _d, _e, _f;
10
- (0, vutils_1.isArray)(spec[key]) ? spec[key].forEach(((s, i) => {
11
- var _a, _b, _c;
12
- spec[key][i] = Object.assign(Object.assign({}, s), {
13
- style: Object.assign(Object.assign({}, null == s ? void 0 : s.style), {
14
- visible: null === (_c = null !== (_b = null === (_a = null == s ? void 0 : s.style) || void 0 === _a ? void 0 : _a.visible) && void 0 !== _b ? _b : null == s ? void 0 : s.visible) || void 0 === _c || _c
15
- })
16
- });
17
- })) : spec[key] = Object.assign(Object.assign({}, spec[key]), {
18
- style: Object.assign(Object.assign({}, null === (_a = spec[key]) || void 0 === _a ? void 0 : _a.style), {
19
- visible: null === (_f = null !== (_d = null === (_c = null === (_b = spec[key]) || void 0 === _b ? void 0 : _b.style) || void 0 === _c ? void 0 : _c.visible) && void 0 !== _d ? _d : null === (_e = spec[key]) || void 0 === _e ? void 0 : _e.visible) || void 0 === _f || _f
20
- })
21
- });
22
- }));
23
- };
24
-
25
- exports.applyVisible = applyVisible;
26
-
27
- const mergeObjects = (objA, objB) => function recursiveMerge(target, source) {
28
- for (const key in source) "object" == typeof source[key] && null !== source[key] ? (target.hasOwnProperty(key) || (target[key] = Array.isArray(source[key]) ? [] : {}),
29
- recursiveMerge(target[key], source[key])) : target.hasOwnProperty(key) || "object" != typeof target || (target[key] = source[key]);
30
- return target;
31
- }(objA, objB);
32
-
33
- exports.mergeObjects = mergeObjects;
34
-
35
- const computeDataRange = (data, field) => {
36
- let dataMin, dataMax;
37
- const datumX = data.map((d => d[field])).filter((d => null != d));
38
- if (0 === datumX.length) dataMin = 0, dataMax = 1; else {
39
- dataMin = Math.min(...datumX) - (Math.max(...datumX) - Math.min(...datumX)) / 3,
40
- dataMax = (Math.max(...datumX) - dataMin) / .8 + dataMin;
41
- const delta_value = 10, data = dataMin;
42
- dataMin === dataMax && (dataMin = data - delta_value, dataMax = (4 * data + delta_value) / 4);
43
- }
44
- return {
45
- min: dataMin,
46
- max: dataMax
47
- };
48
- };
49
-
50
- exports.computeDataRange = computeDataRange;
51
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["charts/ranking-list/utils.ts"],"names":[],"mappings":"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","file":"utils.js","sourcesContent":["import { Datum } from '@visactor/vchart/src/typings';\nimport { isArray } from '@visactor/vutils';\n\nexport const applyVisible = (spec: any, keyList: string[]) => {\n keyList.forEach(key => {\n if (isArray(spec[key])) {\n spec[key].forEach((s, i) => {\n spec[key][i] = {\n ...s,\n style: {\n ...s?.style,\n visible: s?.style?.visible ?? s?.visible ?? true\n }\n };\n });\n } else {\n spec[key] = {\n ...spec[key],\n style: {\n ...spec[key]?.style,\n visible: spec[key]?.style?.visible ?? spec[key]?.visible ?? true\n }\n };\n }\n });\n};\n\nexport const mergeObjects = (objA: any, objB: any) => {\n function recursiveMerge(target: any, source: any) {\n for (const key in source) {\n if (typeof source[key] === 'object' && source[key] !== null) {\n if (!target.hasOwnProperty(key)) {\n target[key] = Array.isArray(source[key]) ? [] : {};\n }\n recursiveMerge(target[key], source[key]);\n } else if (!target.hasOwnProperty(key) && typeof target === 'object') {\n target[key] = source[key];\n }\n }\n return target;\n }\n return recursiveMerge(objA, objB);\n};\n\nexport const computeDataRange = (data: Datum[], field: string) => {\n let dataMin, dataMax;\n const datumX = data.map(d => d[field]).filter(d => typeof d !== 'undefined' && d !== null);\n\n // 避免数据都为null, 即xField都为null, 导致scale异常, 图表为空\n // 这里只要设置dataMin和dataMax为任意数字并保证其不想等, 即可达到只显示yField而不显示xField的效果\n if (datumX.length === 0) {\n dataMin = 0;\n dataMax = 1;\n } else {\n dataMin = Math.min(...datumX) - (Math.max(...datumX) - Math.min(...datumX)) / 3;\n dataMax = (Math.max(...datumX) - dataMin) / 0.8 + dataMin;\n const delta_value = 10; // 可以是任意值, 只要大于0就行, 目的是为了让最小值和最大值不一样, 便于scale做插值计算\n const data = dataMin;\n if (dataMin === dataMax) {\n // 避免domain[0] = domain[1], 导致scale映射有问题\n // 数学计算:\n // 1.保证 (dataMax - data) / (data - dataMin) = 4\n // 2. dataMax > data & dataMin < data => delta_value > 0\n dataMin = data - delta_value;\n dataMax = (4 * data + delta_value) / 4;\n }\n }\n return { min: dataMin, max: dataMax };\n};\n"]}
@@ -1,2 +0,0 @@
1
- import { IRankingListSpec } from './interface';
2
- export declare const defaultSpec: Omit<IRankingListSpec, 'type' | 'data' | 'xField' | 'yField'>;