@visactor/vchart-extension 1.13.5-alpha.5 → 1.13.5-alpha.7

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 (43) hide show
  1. package/build/index.js +0 -674
  2. package/build/index.min.js +2 -2
  3. package/cjs/components/bar-link/index.js +1 -2
  4. package/cjs/components/series-label/type.js +2 -1
  5. package/cjs/index.d.ts +0 -1
  6. package/cjs/index.js +3 -3
  7. package/cjs/index.js.map +1 -1
  8. package/esm/components/bar-link/index.js +1 -2
  9. package/esm/components/series-label/type.js +2 -1
  10. package/esm/index.d.ts +0 -1
  11. package/esm/index.js +0 -2
  12. package/esm/index.js.map +1 -1
  13. package/package.json +2 -3
  14. package/cjs/charts/ranking-list/constant.d.ts +0 -2
  15. package/cjs/charts/ranking-list/constant.js +0 -74
  16. package/cjs/charts/ranking-list/constant.js.map +0 -1
  17. package/cjs/charts/ranking-list/interface.d.ts +0 -73
  18. package/cjs/charts/ranking-list/interface.js +0 -6
  19. package/cjs/charts/ranking-list/interface.js.map +0 -1
  20. package/cjs/charts/ranking-list/ranking-list-transformer.d.ts +0 -457
  21. package/cjs/charts/ranking-list/ranking-list-transformer.js +0 -374
  22. package/cjs/charts/ranking-list/ranking-list-transformer.js.map +0 -1
  23. package/cjs/charts/ranking-list/ranking-list.d.ts +0 -16
  24. package/cjs/charts/ranking-list/ranking-list.js +0 -34
  25. package/cjs/charts/ranking-list/ranking-list.js.map +0 -1
  26. package/cjs/charts/ranking-list/utils.d.ts +0 -7
  27. package/cjs/charts/ranking-list/utils.js +0 -51
  28. package/cjs/charts/ranking-list/utils.js.map +0 -1
  29. package/esm/charts/ranking-list/constant.d.ts +0 -2
  30. package/esm/charts/ranking-list/constant.js +0 -70
  31. package/esm/charts/ranking-list/constant.js.map +0 -1
  32. package/esm/charts/ranking-list/interface.d.ts +0 -73
  33. package/esm/charts/ranking-list/interface.js +0 -2
  34. package/esm/charts/ranking-list/interface.js.map +0 -1
  35. package/esm/charts/ranking-list/ranking-list-transformer.d.ts +0 -457
  36. package/esm/charts/ranking-list/ranking-list-transformer.js +0 -374
  37. package/esm/charts/ranking-list/ranking-list-transformer.js.map +0 -1
  38. package/esm/charts/ranking-list/ranking-list.d.ts +0 -16
  39. package/esm/charts/ranking-list/ranking-list.js +0 -27
  40. package/esm/charts/ranking-list/ranking-list.js.map +0 -1
  41. package/esm/charts/ranking-list/utils.d.ts +0 -7
  42. package/esm/charts/ranking-list/utils.js +0 -41
  43. package/esm/charts/ranking-list/utils.js.map +0 -1
@@ -1,374 +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, supplyCount = spec.pageSize - pagerData[`page${orderCount}`].length;
33
- return pagerData[`page${orderCount}`].push(...Array.from({
34
- length: supplyCount
35
- }, (_ => ({
36
- [spec.yField]: 100 * Math.random(),
37
- [spec.xField]: null,
38
- [SUPPLY_DATA_KEY]: !0
39
- })))), Object.keys(pagerData).forEach((order => {
40
- result.push({
41
- data: [ {
42
- id: "datas",
43
- values: pagerData[order].map((d => Object.assign(Object.assign({}, d), {
44
- [DATA_KEY]: d[spec.yField]
45
- })))
46
- }, {
47
- id: "order",
48
- values: [ {
49
- order: order
50
- } ]
51
- } ]
52
- });
53
- })), result;
54
- };
55
- }
56
- transformSpec(spec) {
57
- super.transformSpec(spec), this.normalizeSpec(spec), this.upgradeTextMeasure(spec),
58
- this.upgradeFormatMap(spec), this.processData(spec), this.transformBaseSpec(spec),
59
- 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) ],
60
- this.transformPaddingSpec(spec), super.transformSpec(spec);
61
- }
62
- normalizeSpec(spec) {
63
- (0, utils_1.mergeObjects)(spec, constant_1.defaultSpec), (0, utils_1.applyVisible)(spec, [ "barBackground", "rankingIcon", "decorateHaloIcons", "orderLabel", "nameLabel", "valueLabel" ]);
64
- }
65
- upgradeTextMeasure(spec) {
66
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
67
- null === (_a = this.nameLabelTextMeasure) || void 0 === _a || _a.release(), null === (_b = this.valueLabelTextMeasure) || void 0 === _b || _b.release(),
68
- null === (_c = this.orderLabelTextMeasure) || void 0 === _c || _c.release(), this.nameLabelTextMeasure = new vutils_1.TextMeasure({
69
- defaultFontParams: null !== (_e = null === (_d = spec.nameLabel) || void 0 === _d ? void 0 : _d.style) && void 0 !== _e ? _e : {}
70
- }), this.valueLabelTextMeasure = new vutils_1.TextMeasure({
71
- defaultFontParams: null !== (_g = null === (_f = spec.valueLabel) || void 0 === _f ? void 0 : _f.style) && void 0 !== _g ? _g : {}
72
- }), this.orderLabelTextMeasure = new vutils_1.TextMeasure({
73
- defaultFontParams: null !== (_j = null === (_h = spec.orderLabel) || void 0 === _h ? void 0 : _h.style) && void 0 !== _j ? _j : {}
74
- });
75
- }
76
- upgradeFormatMap(spec) {
77
- this.formatMap[spec.yField] = spec.nameLabel.formatMethod, this.formatMap[spec.xField] = spec.valueLabel.formatMethod,
78
- this.formatMap[ORDER_KEY] = spec.orderLabel.formatMethod;
79
- }
80
- processData(spec) {
81
- var _a;
82
- (null === (_a = spec.data[0]) || void 0 === _a ? void 0 : _a.values) || (this.originalData = spec.data,
83
- this.originalSpec = (0, vutils_1.cloneDeep)(spec), this.dataSpecs = this.processRankingData(spec),
84
- spec.data = this.dataSpecs[0].data);
85
- }
86
- transformBaseSpec(spec) {
87
- var _a, _b, _c;
88
- spec.type = "common", spec.dataKey = DATA_KEY, spec.series = [ {
89
- type: "bar",
90
- direction: "horizontal",
91
- xField: spec.xField,
92
- yField: spec.yField,
93
- barWidth: null !== (_b = null === (_a = spec.bar) || void 0 === _a ? void 0 : _a.height) && void 0 !== _b ? _b : 10,
94
- bar: Object.assign(Object.assign({}, spec.bar), {
95
- style: Object.assign(Object.assign({}, null === (_c = spec.bar) || void 0 === _c ? void 0 : _c.style), {
96
- x1: 0,
97
- visible: datum => {
98
- var _a, _b;
99
- return !datum[SUPPLY_DATA_KEY] && (null === (_b = null === (_a = spec.bar) || void 0 === _a ? void 0 : _a.style) || void 0 === _b || _b);
100
- }
101
- })
102
- })
103
- } ];
104
- }
105
- transformAnimationSpec(spec) {
106
- var _a, _b, _c;
107
- spec.animationUpdate.enable && (spec.player = Object.assign(Object.assign({}, spec.player), {
108
- specs: this.dataSpecs,
109
- auto: !0,
110
- visible: !1,
111
- 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,
112
- loop: !0
113
- }), spec.animationExit = this.getAnimationExit(this.originalSpec), spec.animationEnter = this.getAnimationEnter(this.originalSpec),
114
- spec.animationUpdate = this.getAnimationUpdate(this.originalSpec)), spec.animationNormal = this.originalSpec.animationNormal,
115
- spec.animationAppear = this.getAnimationAppear(this.originalSpec, "rect");
116
- }
117
- transformAxesSpec(spec) {
118
- const {min: min, max: max} = (0, utils_1.computeDataRange)(this.originalData, spec.xField);
119
- spec.axes = [ {
120
- orient: "left",
121
- type: "band",
122
- visible: !1,
123
- inverse: !0,
124
- paddingOuter: .5
125
- }, {
126
- orient: "bottom",
127
- label: {
128
- visible: !0
129
- },
130
- type: "linear",
131
- visible: !1,
132
- min: min,
133
- max: max
134
- } ];
135
- }
136
- generateBarBackground(spec) {
137
- var _a;
138
- return {
139
- type: spec.barBackground.type,
140
- dataId: "data",
141
- visible: !0,
142
- dataKey: DATA_KEY,
143
- zIndex: -99,
144
- state: null === (_a = spec.barBackground) || void 0 === _a ? void 0 : _a.state,
145
- style: Object.assign(Object.assign({
146
- x: (datum, ctx) => "symbol" === spec.barBackground.type ? ctx.getRegion().getLayoutRect().width / 2 : 0,
147
- y: (datum, ctx) => ctx.valueToY([ datum[spec.yField] ]) + ctx.yBandwidth() / 2 - ("symbol" === spec.barBackground.type ? 0 : spec.bar.height / 2),
148
- size: (datum, ctx) => [ ctx.getRegion().getLayoutRect().width, spec.bar.height ],
149
- width: (datum, ctx) => ctx.getRegion().getLayoutRect().width,
150
- height: spec.bar.height
151
- }, spec.barBackground.style), {
152
- visible: datum => !datum[SUPPLY_DATA_KEY] && spec.barBackground.style.visible
153
- }),
154
- animation: !0,
155
- animationEnter: this.getAnimationEnter(this.originalSpec),
156
- animationExit: this.getAnimationExit(this.originalSpec),
157
- animationAppear: this.getAnimationAppear(this.originalSpec, "barBack"),
158
- animationUpdate: this.getAnimationUpdate(this.originalSpec)
159
- };
160
- }
161
- generateDecorateHaloIcons(spec) {
162
- var _a;
163
- return null === (_a = spec.decorateHaloIcons) || void 0 === _a ? void 0 : _a.map((decorateHaloIcon => ({
164
- type: "symbol",
165
- dataId: "data",
166
- visible: !0,
167
- dataKey: DATA_KEY,
168
- state: null == decorateHaloIcon ? void 0 : decorateHaloIcon.state,
169
- style: Object.assign(Object.assign({
170
- x: (datum, ctx) => {
171
- if (void 0 !== datum[spec.xField] && null !== datum[spec.xField]) return ctx.valueToX([ datum[spec.xField] ]);
172
- },
173
- y: (datum, ctx) => ctx.valueToY([ datum[spec.yField] ]) + ctx.yBandwidth() / 2
174
- }, decorateHaloIcon.style), {
175
- visible: datum => !datum[SUPPLY_DATA_KEY] && decorateHaloIcon.style.visible
176
- }),
177
- animation: !0,
178
- animationEnter: this.getAnimationEnter(this.originalSpec),
179
- animationExit: this.getAnimationExit(this.originalSpec),
180
- animationAppear: this.getAnimationAppear(this.originalSpec, "symbol"),
181
- animationUpdate: this.getAnimationUpdate(this.originalSpec)
182
- })));
183
- }
184
- generateRankingIcon(spec) {
185
- return {
186
- type: "symbol",
187
- dataId: "data",
188
- visible: !0,
189
- dataKey: DATA_KEY,
190
- state: spec.rankingIcon.state,
191
- style: Object.assign(Object.assign({
192
- 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,
193
- 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
194
- }, spec.rankingIcon.style), {
195
- lineWidth: 0,
196
- stroke: null,
197
- visible: datum => !datum[SUPPLY_DATA_KEY] && spec.rankingIcon.style.visible
198
- }),
199
- animation: !0,
200
- animationEnter: this.getAnimationEnter(this.originalSpec),
201
- animationExit: this.getAnimationExit(this.originalSpec),
202
- animationAppear: this.getAnimationAppear(this.originalSpec, "text"),
203
- animationUpdate: this.getAnimationUpdate(this.originalSpec)
204
- };
205
- }
206
- generateNameLabel(spec) {
207
- var _a;
208
- return {
209
- type: "text",
210
- dataId: "data",
211
- dataKey: DATA_KEY,
212
- state: null === (_a = spec.nameLabel) || void 0 === _a ? void 0 : _a.state,
213
- style: Object.assign(Object.assign({
214
- text: datum => this.formatDatum(spec.yField, datum),
215
- x: () => {
216
- var _a;
217
- 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);
218
- },
219
- 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
220
- }, spec.nameLabel.style), {
221
- textAlign: "bothEnd" === spec.labelLayout ? "right" : "left",
222
- textBaseline: "bothEnd" === spec.labelLayout ? "middle" : "bottom",
223
- visible: datum => !datum[SUPPLY_DATA_KEY] && spec.nameLabel.style.visible
224
- }),
225
- animation: !0,
226
- animationEnter: this.getAnimationEnter(this.originalSpec),
227
- animationExit: this.getAnimationExit(this.originalSpec),
228
- animationAppear: this.getAnimationAppear(this.originalSpec, "text"),
229
- animationUpdate: this.getAnimationUpdate(this.originalSpec)
230
- };
231
- }
232
- generateOrderLabel(spec) {
233
- var _a;
234
- return {
235
- type: "text",
236
- dataId: "data",
237
- dataKey: DATA_KEY,
238
- state: null === (_a = spec.orderLabel) || void 0 === _a ? void 0 : _a.state,
239
- style: Object.assign(Object.assign({
240
- text: datum => this.formatDatum(ORDER_KEY, datum),
241
- x: datum => {
242
- var _a;
243
- 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;
244
- },
245
- 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
246
- }, spec.orderLabel.style), {
247
- textAlign: "bothEnd" === spec.labelLayout ? "right" : "left",
248
- textBaseline: "bothEnd" === spec.labelLayout ? "middle" : "bottom",
249
- visible: datum => !datum[SUPPLY_DATA_KEY] && spec.orderLabel.style.visible
250
- }),
251
- animation: !0,
252
- animationEnter: this.getAnimationEnter(this.originalSpec),
253
- animationExit: this.getAnimationExit(this.originalSpec),
254
- animationAppear: this.getAnimationAppear(this.originalSpec, "text"),
255
- animationUpdate: this.getAnimationUpdate(this.originalSpec)
256
- };
257
- }
258
- generateValueLabel(spec) {
259
- var _a;
260
- return {
261
- type: "text",
262
- dataId: "data",
263
- visible: !0,
264
- dataKey: DATA_KEY,
265
- state: null === (_a = spec.valueLabel) || void 0 === _a ? void 0 : _a.state,
266
- style: Object.assign(Object.assign({
267
- text: datum => this.formatDatum(spec.xField, datum),
268
- x: (datum, ctx) => "bothEnd" === spec.labelLayout ? ctx.getRegion().getLayoutRect().width + this.getMaxDataLabelLens(spec, spec.xField, this.nameLabelTextMeasure) + 5 : ctx.getRegion().getLayoutRect().width,
269
- 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
270
- }, spec.valueLabel.style), {
271
- textAlign: "bothEnd" === spec.labelLayout ? "left" : "right",
272
- textBaseline: "bothEnd" === spec.labelLayout ? "middle" : "bottom",
273
- visible: datum => !datum[SUPPLY_DATA_KEY] && spec.valueLabel.style.visible
274
- }),
275
- animation: !0,
276
- animationEnter: this.getAnimationEnter(this.originalSpec),
277
- animationExit: this.getAnimationExit(this.originalSpec),
278
- animationAppear: this.getAnimationAppear(this.originalSpec, "text"),
279
- animationUpdate: this.getAnimationUpdate(this.originalSpec)
280
- };
281
- }
282
- transformPaddingSpec(spec) {
283
- var _a;
284
- const maxHaloIconSize = spec.decorateHaloIcons.length > 0 ? Math.max(...spec.decorateHaloIcons.map((icon => {
285
- var _a, _b;
286
- return null !== (_b = null === (_a = icon.style) || void 0 === _a ? void 0 : _a.size) && void 0 !== _b ? _b : 18;
287
- }))) : 0;
288
- spec.padding = Object.assign({
289
- 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,
290
- right: "bothEnd" === spec.labelLayout ? 5 + this.getMaxDataLabelLens(spec, spec.yField, this.valueLabelTextMeasure) + 5 : 15,
291
- top: 0,
292
- bottom: 0
293
- }, spec.padding);
294
- }
295
- getMaxDataLabelLens(spec, field, textMeasure) {
296
- const textWidths = this.originalData.map((datum => datum[SUPPLY_DATA_KEY] ? 0 : textMeasure.fullMeasure(this.formatDatum(field, datum)).width));
297
- return Math.max(...textWidths);
298
- }
299
- formatDatum(field, datum) {
300
- var _a;
301
- return (null === (_a = this.formatMap) || void 0 === _a ? void 0 : _a[field]) ? this.formatMap[field](datum[field], datum) : datum[field];
302
- }
303
- getLabelWidth(padding, width) {
304
- return width + padding;
305
- }
306
- getAnimationExit(spec) {
307
- var _a, _b, _c, _d, _e;
308
- return !1 !== (null === (_a = spec.animationUpdate) || void 0 === _a ? void 0 : _a.enable) && {
309
- type: "moveOut",
310
- options: {
311
- direction: "y",
312
- orient: "negative",
313
- point: (datum, element) => ({
314
- y: element.getGraphicAttribute("y") - spec.height / (spec.pageSize + 1) * Math.min(spec.scrollSize, spec.pageSize)
315
- })
316
- },
317
- duration: null !== (_c = null === (_b = spec.animationUpdate) || void 0 === _b ? void 0 : _b.duration) && void 0 !== _c ? _c : 1e3,
318
- easing: null !== (_e = null === (_d = spec.animationUpdate) || void 0 === _d ? void 0 : _d.easing) && void 0 !== _e ? _e : "linear"
319
- };
320
- }
321
- getAnimationEnter(spec) {
322
- var _a, _b, _c, _d, _e;
323
- return !1 !== (null === (_a = spec.animationUpdate) || void 0 === _a ? void 0 : _a.enable) && {
324
- type: "moveIn",
325
- options: {
326
- direction: "y",
327
- orient: "negative",
328
- excludeChannels: [ "y" ],
329
- point: (datum, element) => ({
330
- y: element.getGraphicAttribute("y") + spec.height / (spec.pageSize + 1) * Math.min(spec.scrollSize, spec.pageSize)
331
- })
332
- },
333
- duration: null !== (_c = null === (_b = spec.animationUpdate) || void 0 === _b ? void 0 : _b.duration) && void 0 !== _c ? _c : 1e3,
334
- easing: null !== (_e = null === (_d = spec.animationUpdate) || void 0 === _d ? void 0 : _d.easing) && void 0 !== _e ? _e : "linear"
335
- };
336
- }
337
- getAnimationAppear(spec, markType) {
338
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
339
- return !1 !== (null === (_a = spec.animationAppear) || void 0 === _a ? void 0 : _a.enable) && ("rect" === markType ? {
340
- type: "growWidthIn",
341
- oneByOne: !1,
342
- duration: null !== (_c = null === (_b = spec.animationAppear) || void 0 === _b ? void 0 : _b.duration) && void 0 !== _c ? _c : 1e3,
343
- easing: null !== (_e = null === (_d = spec.animationAppear) || void 0 === _d ? void 0 : _d.easing) && void 0 !== _e ? _e : "linear",
344
- options: {}
345
- } : "symbol" === markType ? {
346
- channel: {
347
- x: {
348
- from: 0,
349
- to: (datum, element) => element.getGraphicItem().attribute.x
350
- }
351
- },
352
- duration: null !== (_g = null === (_f = spec.animationAppear) || void 0 === _f ? void 0 : _f.duration) && void 0 !== _g ? _g : 1e3,
353
- easing: null !== (_j = null === (_h = spec.animationAppear) || void 0 === _h ? void 0 : _h.easing) && void 0 !== _j ? _j : "linear"
354
- } : {
355
- channel: {
356
- opacity: {
357
- from: 0,
358
- to: 1
359
- }
360
- },
361
- duration: null !== (_l = null === (_k = spec.animationAppear) || void 0 === _k ? void 0 : _k.duration) && void 0 !== _l ? _l : 1e3,
362
- easing: null !== (_o = null === (_m = spec.animationAppear) || void 0 === _m ? void 0 : _m.easing) && void 0 !== _o ? _o : "linear"
363
- });
364
- }
365
- getAnimationUpdate(spec) {
366
- var _a, _b, _c, _d;
367
- return !1 !== spec.animationUpdate.enable && {
368
- duration: null !== (_b = null === (_a = spec.animationUpdate) || void 0 === _a ? void 0 : _a.duration) && void 0 !== _b ? _b : 1e3,
369
- easing: null !== (_d = null === (_c = spec.animationUpdate) || void 0 === _c ? void 0 : _c.easing) && void 0 !== _d ? _d : "linear"
370
- };
371
- }
372
- }
373
-
374
- 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\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) {\n spec.player = {\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 };\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.nameLabelTextMeasure) +\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.yField, 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 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'>;