@visactor/vchart-extension 2.0.3-alpha.0 → 2.0.3-alpha.1
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.
- package/build/index.js +132 -407
- package/build/index.min.js +2 -2
- package/cjs/charts/axis-3d/axis-3d-mixin.js +48 -1
- package/cjs/charts/axis-3d/axis-3d-mixin.js.map +1 -1
- package/cjs/charts/axis-3d/util.js +9 -8
- package/cjs/charts/axis-3d/util.js.map +1 -1
- package/cjs/charts/compare-sankey/compare-sankey-sub-data.d.ts +9 -0
- package/cjs/charts/compare-sankey/compare-sankey-sub-data.js +38 -0
- package/cjs/charts/compare-sankey/compare-sankey-sub-data.js.map +1 -0
- package/cjs/charts/compare-sankey/compare-sankey-sub-nodes.d.ts +2 -0
- package/cjs/charts/compare-sankey/compare-sankey-sub-nodes.js +20 -0
- package/cjs/charts/compare-sankey/compare-sankey-sub-nodes.js.map +1 -0
- package/cjs/charts/compare-sankey/compare-sankey-transformer.d.ts +6 -0
- package/cjs/charts/compare-sankey/compare-sankey-transformer.js +22 -0
- package/cjs/charts/compare-sankey/compare-sankey-transformer.js.map +1 -0
- package/cjs/charts/compare-sankey/compare-sankey.d.ts +35 -0
- package/cjs/charts/compare-sankey/compare-sankey.js +187 -0
- package/cjs/charts/compare-sankey/compare-sankey.js.map +1 -0
- package/cjs/charts/compare-sankey/constants.d.ts +1 -0
- package/cjs/charts/compare-sankey/constants.js +2 -0
- package/cjs/charts/compare-sankey/constants.js.map +1 -0
- package/cjs/charts/compare-sankey/index.d.ts +2 -0
- package/cjs/charts/compare-sankey/index.js +21 -0
- package/cjs/charts/compare-sankey/index.js.map +1 -0
- package/cjs/charts/compare-sankey/interface.d.ts +23 -0
- package/cjs/charts/{sequence-analysis → compare-sankey}/interface.js +1 -1
- package/cjs/charts/compare-sankey/interface.js.map +1 -0
- package/cjs/charts/compare-sankey/util.d.ts +1 -0
- package/cjs/charts/compare-sankey/util.js +2 -0
- package/cjs/charts/compare-sankey/util.js.map +1 -0
- package/cjs/charts/conversion-funnel/constants.js +2 -1
- package/cjs/charts/funnel-3d/constant.d.ts +0 -2
- package/cjs/charts/funnel-3d/index.js +1 -2
- package/cjs/charts/funnel-3d/series.d.ts +0 -2
- package/cjs/charts/image-cloud/image-cloud-transformer.js +2 -1
- package/cjs/charts/image-cloud/image-cloud.js +1 -1
- package/cjs/charts/image-cloud/index.js +1 -1
- package/cjs/charts/image-cloud/interface.js +1 -1
- package/cjs/charts/image-cloud/series/constant.d.ts +0 -2
- package/cjs/charts/image-cloud/series/image-cloud.d.ts +0 -2
- package/cjs/charts/pictogram/element-highlight-by-graphic-name.js +1 -1
- package/cjs/charts/pictogram/element-select-by-graphic-name.js +1 -1
- package/cjs/charts/pictogram/index.js +1 -1
- package/cjs/charts/pictogram/interface.js +1 -1
- package/cjs/charts/pictogram/series/constant.d.ts +0 -2
- package/cjs/charts/pictogram/series/pictogram.d.ts +0 -2
- package/cjs/charts/pie-3d/constant.d.ts +0 -2
- package/cjs/charts/pie-3d/series.d.ts +0 -2
- package/cjs/charts/ranking-list/ranking-list-transformer.d.ts +6 -0
- package/cjs/charts/ranking-list/ranking-list-transformer.js +2 -1
- package/cjs/charts/ranking-list/ranking-list-transformer.js.map +1 -1
- package/cjs/index.d.ts +0 -1
- package/cjs/index.js +0 -1
- package/cjs/index.js.map +1 -1
- package/esm/charts/axis-3d/axis-3d-mixin.js +48 -2
- package/esm/charts/axis-3d/axis-3d-mixin.js.map +1 -1
- package/esm/charts/axis-3d/util.js +9 -8
- package/esm/charts/axis-3d/util.js.map +1 -1
- package/esm/charts/compare-sankey/compare-sankey-sub-data.d.ts +9 -0
- package/esm/charts/compare-sankey/compare-sankey-sub-data.js +33 -0
- package/esm/charts/compare-sankey/compare-sankey-sub-data.js.map +1 -0
- package/esm/charts/compare-sankey/compare-sankey-sub-nodes.d.ts +2 -0
- package/esm/charts/compare-sankey/compare-sankey-sub-nodes.js +12 -0
- package/esm/charts/compare-sankey/compare-sankey-sub-nodes.js.map +1 -0
- package/esm/charts/compare-sankey/compare-sankey-transformer.d.ts +6 -0
- package/esm/charts/compare-sankey/compare-sankey-transformer.js +14 -0
- package/esm/charts/compare-sankey/compare-sankey-transformer.js.map +1 -0
- package/esm/charts/compare-sankey/compare-sankey.d.ts +35 -0
- package/esm/charts/compare-sankey/compare-sankey.js +186 -0
- package/esm/charts/compare-sankey/compare-sankey.js.map +1 -0
- package/esm/charts/compare-sankey/constants.d.ts +1 -0
- package/esm/charts/compare-sankey/constants.js +2 -0
- package/esm/charts/compare-sankey/constants.js.map +1 -0
- package/esm/charts/compare-sankey/index.d.ts +2 -0
- package/esm/charts/compare-sankey/index.js +4 -0
- package/esm/charts/compare-sankey/index.js.map +1 -0
- package/esm/charts/compare-sankey/interface.d.ts +23 -0
- package/esm/charts/compare-sankey/interface.js +2 -0
- package/esm/charts/compare-sankey/interface.js.map +1 -0
- package/esm/charts/compare-sankey/util.d.ts +1 -0
- package/esm/charts/compare-sankey/util.js +2 -0
- package/esm/charts/compare-sankey/util.js.map +1 -0
- package/esm/charts/conversion-funnel/constants.js +2 -1
- package/esm/charts/funnel-3d/constant.d.ts +0 -2
- package/esm/charts/funnel-3d/index.js +1 -2
- package/esm/charts/funnel-3d/series.d.ts +0 -2
- package/esm/charts/image-cloud/image-cloud-transformer.js +2 -1
- package/esm/charts/image-cloud/image-cloud.js +1 -1
- package/esm/charts/image-cloud/index.js +1 -1
- package/esm/charts/image-cloud/interface.js +1 -1
- package/esm/charts/image-cloud/series/constant.d.ts +0 -2
- package/esm/charts/image-cloud/series/image-cloud.d.ts +0 -2
- package/esm/charts/pictogram/element-highlight-by-graphic-name.js +1 -1
- package/esm/charts/pictogram/element-select-by-graphic-name.js +1 -1
- package/esm/charts/pictogram/index.js +1 -1
- package/esm/charts/pictogram/interface.js +1 -1
- package/esm/charts/pictogram/series/constant.d.ts +0 -2
- package/esm/charts/pictogram/series/pictogram.d.ts +0 -2
- package/esm/charts/pie-3d/constant.d.ts +0 -2
- package/esm/charts/pie-3d/series.d.ts +0 -2
- package/esm/charts/ranking-list/ranking-list-transformer.d.ts +6 -0
- package/esm/charts/ranking-list/ranking-list-transformer.js +2 -1
- package/esm/charts/ranking-list/ranking-list-transformer.js.map +1 -1
- package/esm/index.d.ts +0 -1
- package/esm/index.js +0 -2
- package/esm/index.js.map +1 -1
- package/package.json +11 -11
- package/cjs/charts/sequence-analysis/constant.d.ts +0 -3
- package/cjs/charts/sequence-analysis/constant.js +0 -7
- package/cjs/charts/sequence-analysis/constant.js.map +0 -1
- package/cjs/charts/sequence-analysis/interface.d.ts +0 -40
- package/cjs/charts/sequence-analysis/interface.js.map +0 -1
- package/cjs/charts/sequence-analysis/sequence-analysis-transformer.d.ts +0 -4
- package/cjs/charts/sequence-analysis/sequence-analysis-transformer.js +0 -266
- package/cjs/charts/sequence-analysis/sequence-analysis-transformer.js.map +0 -1
- package/cjs/charts/sequence-analysis/sequence-analysis.d.ts +0 -16
- package/cjs/charts/sequence-analysis/sequence-analysis.js +0 -34
- package/cjs/charts/sequence-analysis/sequence-analysis.js.map +0 -1
- package/esm/charts/sequence-analysis/constant.d.ts +0 -3
- package/esm/charts/sequence-analysis/constant.js +0 -6
- package/esm/charts/sequence-analysis/constant.js.map +0 -1
- package/esm/charts/sequence-analysis/interface.d.ts +0 -40
- package/esm/charts/sequence-analysis/interface.js +0 -2
- package/esm/charts/sequence-analysis/interface.js.map +0 -1
- package/esm/charts/sequence-analysis/sequence-analysis-transformer.d.ts +0 -4
- package/esm/charts/sequence-analysis/sequence-analysis-transformer.js +0 -258
- package/esm/charts/sequence-analysis/sequence-analysis-transformer.js.map +0 -1
- package/esm/charts/sequence-analysis/sequence-analysis.d.ts +0 -16
- package/esm/charts/sequence-analysis/sequence-analysis.js +0 -28
- package/esm/charts/sequence-analysis/sequence-analysis.js.map +0 -1
|
@@ -50,6 +50,7 @@ export declare class RankingListChartSpecTransformer extends CommonChartSpecTran
|
|
|
50
50
|
options: {
|
|
51
51
|
direction: string;
|
|
52
52
|
orient: string;
|
|
53
|
+
excludeChannels: string[];
|
|
53
54
|
point: (datum: Datum, graphic: IMarkGraphic) => {
|
|
54
55
|
y: number;
|
|
55
56
|
};
|
|
@@ -123,6 +124,7 @@ export declare class RankingListChartSpecTransformer extends CommonChartSpecTran
|
|
|
123
124
|
options: {
|
|
124
125
|
direction: string;
|
|
125
126
|
orient: string;
|
|
127
|
+
excludeChannels: string[];
|
|
126
128
|
point: (datum: Datum, graphic: IMarkGraphic) => {
|
|
127
129
|
y: number;
|
|
128
130
|
};
|
|
@@ -194,6 +196,7 @@ export declare class RankingListChartSpecTransformer extends CommonChartSpecTran
|
|
|
194
196
|
options: {
|
|
195
197
|
direction: string;
|
|
196
198
|
orient: string;
|
|
199
|
+
excludeChannels: string[];
|
|
197
200
|
point: (datum: Datum, graphic: IMarkGraphic) => {
|
|
198
201
|
y: number;
|
|
199
202
|
};
|
|
@@ -265,6 +268,7 @@ export declare class RankingListChartSpecTransformer extends CommonChartSpecTran
|
|
|
265
268
|
options: {
|
|
266
269
|
direction: string;
|
|
267
270
|
orient: string;
|
|
271
|
+
excludeChannels: string[];
|
|
268
272
|
point: (datum: Datum, graphic: IMarkGraphic) => {
|
|
269
273
|
y: number;
|
|
270
274
|
};
|
|
@@ -337,6 +341,7 @@ export declare class RankingListChartSpecTransformer extends CommonChartSpecTran
|
|
|
337
341
|
options: {
|
|
338
342
|
direction: string;
|
|
339
343
|
orient: string;
|
|
344
|
+
excludeChannels: string[];
|
|
340
345
|
point: (datum: Datum, graphic: IMarkGraphic) => {
|
|
341
346
|
y: number;
|
|
342
347
|
};
|
|
@@ -399,6 +404,7 @@ export declare class RankingListChartSpecTransformer extends CommonChartSpecTran
|
|
|
399
404
|
options: {
|
|
400
405
|
direction: string;
|
|
401
406
|
orient: string;
|
|
407
|
+
excludeChannels: string[];
|
|
402
408
|
point: (datum: Datum, graphic: IMarkGraphic) => {
|
|
403
409
|
y: number;
|
|
404
410
|
};
|
|
@@ -320,6 +320,7 @@ export class RankingListChartSpecTransformer extends CommonChartSpecTransformer
|
|
|
320
320
|
options: {
|
|
321
321
|
direction: "y",
|
|
322
322
|
orient: "negative",
|
|
323
|
+
excludeChannels: [ "x" ],
|
|
323
324
|
point: (datum, graphic) => ({
|
|
324
325
|
y: graphic.getGraphicAttribute("y") - spec.height / (spec.pageSize + 1) * Math.min(spec.scrollSize, spec.pageSize)
|
|
325
326
|
})
|
|
@@ -335,7 +336,7 @@ export class RankingListChartSpecTransformer extends CommonChartSpecTransformer
|
|
|
335
336
|
options: {
|
|
336
337
|
direction: "y",
|
|
337
338
|
orient: "negative",
|
|
338
|
-
excludeChannels: [ "
|
|
339
|
+
excludeChannels: [ "x" ],
|
|
339
340
|
point: (datum, graphic) => ({
|
|
340
341
|
y: graphic.getGraphicAttribute("y") + spec.height / (spec.pageSize + 1) * Math.min(spec.scrollSize, spec.pageSize)
|
|
341
342
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/charts/ranking-list/ranking-list-transformer.ts"],"names":[],"mappings":"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","file":"ranking-list-transformer.js","sourcesContent":["import type { Datum } from '@visactor/vchart/src/typings';\nimport type { IRankingListSpec } from './interface';\nimport type { IMarkGraphic } from '@visactor/vchart';\nimport { CommonChartSpecTransformer } from '@visactor/vchart';\nimport { cloneDeep, TextMeasure } from '@visactor/vutils';\nimport { defaultSpec } from './constant';\nimport { applyVisible, computeDataRange, mergeObjects } from './utils';\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 protected isSpecValid(spec: any) {\n const { xField, yField, data } = spec;\n if (!xField || !yField || !data || data.length === 0) {\n return false;\n }\n return true;\n }\n transformSpec(spec: any): void {\n super.transformSpec(spec);\n if (!this.isSpecValid(spec)) {\n spec.series = [];\n return;\n }\n\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 spec.customTransformSpec?.(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 }\n return spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0;\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 }\n return ctx.getRegion().getLayoutRect().width;\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 }, (_: any) => {\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 }\n return datum[field];\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, graphic: IMarkGraphic) => {\n const channelAttr = graphic.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, graphic: IMarkGraphic) => {\n const channelAttr = graphic.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, graphic: IMarkGraphic) => {\n return graphic.getGraphicAttribute('x');\n }\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n }\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 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
|
+
{"version":3,"sources":["../src/charts/ranking-list/ranking-list-transformer.ts"],"names":[],"mappings":"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","file":"ranking-list-transformer.js","sourcesContent":["import type { Datum } from '@visactor/vchart/src/typings';\nimport type { IRankingListSpec } from './interface';\nimport type { IMarkGraphic } from '@visactor/vchart';\nimport { CommonChartSpecTransformer } from '@visactor/vchart';\nimport { cloneDeep, TextMeasure } from '@visactor/vutils';\nimport { defaultSpec } from './constant';\nimport { applyVisible, computeDataRange, mergeObjects } from './utils';\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 protected isSpecValid(spec: any) {\n const { xField, yField, data } = spec;\n if (!xField || !yField || !data || data.length === 0) {\n return false;\n }\n return true;\n }\n transformSpec(spec: any): void {\n super.transformSpec(spec);\n if (!this.isSpecValid(spec)) {\n spec.series = [];\n return;\n }\n\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 spec.customTransformSpec?.(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 }\n return spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0;\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 }\n return ctx.getRegion().getLayoutRect().width;\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 }, (_: any) => {\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 }\n return datum[field];\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\n orient: 'negative',\n excludeChannels: ['x'],\n point: (datum: Datum, graphic: IMarkGraphic) => {\n const channelAttr = graphic.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: ['x'],\n point: (datum: Datum, graphic: IMarkGraphic) => {\n const channelAttr = graphic.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, graphic: IMarkGraphic) => {\n return graphic.getGraphicAttribute('x');\n }\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n }\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 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"]}
|
package/esm/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ export * from './charts/conversion-funnel';
|
|
|
4
4
|
export * from './charts/sequence-scatter-link/sequence-scatter-link';
|
|
5
5
|
export * from './charts/sequence-scatter-kde/sequence-scatter-kde';
|
|
6
6
|
export * from './charts/sequence-scatter-pixel/sequence-scatter-pixel';
|
|
7
|
-
export * from './charts/sequence-analysis/sequence-analysis';
|
|
8
7
|
export * from './charts/bar-3d';
|
|
9
8
|
export * from './charts/funnel-3d';
|
|
10
9
|
export * from './charts/histogram-3d';
|
package/esm/index.js
CHANGED
|
@@ -10,8 +10,6 @@ export * from "./charts/sequence-scatter-kde/sequence-scatter-kde";
|
|
|
10
10
|
|
|
11
11
|
export * from "./charts/sequence-scatter-pixel/sequence-scatter-pixel";
|
|
12
12
|
|
|
13
|
-
export * from "./charts/sequence-analysis/sequence-analysis";
|
|
14
|
-
|
|
15
13
|
export * from "./charts/bar-3d";
|
|
16
14
|
|
|
17
15
|
export * from "./charts/funnel-3d";
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sDAAsD,CAAC;AACrE,cAAc,oDAAoD,CAAC;AACnE,cAAc,wDAAwD,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sDAAsD,CAAC;AACrE,cAAc,oDAAoD,CAAC;AACnE,cAAc,wDAAwD,CAAC;AAEvE,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAErC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC","file":"index.js","sourcesContent":["export * from './charts/ranking-bar/ranking-bar';\nexport * from './charts/ranking-list/ranking-list';\nexport * from './charts/conversion-funnel';\nexport * from './charts/sequence-scatter-link/sequence-scatter-link';\nexport * from './charts/sequence-scatter-kde/sequence-scatter-kde';\nexport * from './charts/sequence-scatter-pixel/sequence-scatter-pixel';\n\nexport * from './charts/bar-3d';\nexport * from './charts/funnel-3d';\nexport * from './charts/histogram-3d';\nexport * from './charts/pie-3d';\nexport * from './charts/word-cloud-3d';\nexport * from './charts/axis-3d';\nexport * from './charts/range-column-3d';\nexport { register3DPlugin } from './charts/3d/plugin';\nexport * from './charts/pictogram';\nexport * from './charts/image-cloud';\n\nexport * from './components/series-break';\nexport * from './components/bar-link';\nexport * from './components/series-label';\nexport * from './components/map-label';\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vchart-extension",
|
|
3
|
-
"version": "2.0.3-alpha.
|
|
3
|
+
"version": "2.0.3-alpha.1",
|
|
4
4
|
"description": "vchart extension package, including extension plugins and components",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "cjs/index.js",
|
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
"build"
|
|
13
13
|
],
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@visactor/vrender-core": "1.0.
|
|
16
|
-
"@visactor/vrender-kits": "1.0.
|
|
17
|
-
"@visactor/vrender-components": "1.0.
|
|
18
|
-
"@visactor/vrender-animate": "1.0.
|
|
19
|
-
"@visactor/vutils": "~1.0.
|
|
20
|
-
"@visactor/vdataset": "~1.0.
|
|
21
|
-
"@visactor/vlayouts": "~1.0.
|
|
22
|
-
"@visactor/vchart": "2.0.3-alpha.
|
|
15
|
+
"@visactor/vrender-core": "1.0.10",
|
|
16
|
+
"@visactor/vrender-kits": "1.0.10",
|
|
17
|
+
"@visactor/vrender-components": "1.0.10",
|
|
18
|
+
"@visactor/vrender-animate": "1.0.10",
|
|
19
|
+
"@visactor/vutils": "~1.0.9",
|
|
20
|
+
"@visactor/vdataset": "~1.0.9",
|
|
21
|
+
"@visactor/vlayouts": "~1.0.9",
|
|
22
|
+
"@visactor/vchart": "2.0.3-alpha.1"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@rushstack/eslint-patch": "~1.1.4",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"rollup-plugin-bundle-size": "1.0.3",
|
|
44
44
|
"rollup-plugin-sizes": "1.0.5",
|
|
45
45
|
"rollup": "3.20.5",
|
|
46
|
-
"@internal/ts-config": "0.0.1",
|
|
47
46
|
"@internal/bundler": "0.0.1",
|
|
48
|
-
"@internal/eslint-config": "0.0.1"
|
|
47
|
+
"@internal/eslint-config": "0.0.1",
|
|
48
|
+
"@internal/ts-config": "0.0.1"
|
|
49
49
|
},
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"access": "public",
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: !0
|
|
5
|
-
}), exports.EXPAND_RATIO = exports.BACKGROUND_KEY = exports.DATA_KEY = void 0, exports.DATA_KEY = "dataKey",
|
|
6
|
-
exports.BACKGROUND_KEY = "background", exports.EXPAND_RATIO = .2;
|
|
7
|
-
//# sourceMappingURL=constant.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/charts/sequence-analysis/constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,SAAS,CAAC;AACrB,QAAA,cAAc,GAAG,YAAY,CAAC;AAC9B,QAAA,YAAY,GAAG,GAAG,CAAC","file":"constant.js","sourcesContent":["export const DATA_KEY = 'dataKey';\nexport const BACKGROUND_KEY = 'background';\nexport const EXPAND_RATIO = 0.2; // 拓展比例\n"]}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
export interface EventData {
|
|
2
|
-
user_id: string;
|
|
3
|
-
user_image: string;
|
|
4
|
-
dots: {
|
|
5
|
-
step: string;
|
|
6
|
-
action_type: string;
|
|
7
|
-
node_name: string;
|
|
8
|
-
medium_type: string;
|
|
9
|
-
time_stamp: number;
|
|
10
|
-
action_count: number;
|
|
11
|
-
}[];
|
|
12
|
-
}
|
|
13
|
-
export interface UserImageMap {
|
|
14
|
-
[user_id: string]: string;
|
|
15
|
-
}
|
|
16
|
-
export interface PatternData {
|
|
17
|
-
from: string;
|
|
18
|
-
to: string;
|
|
19
|
-
pattern_type: string;
|
|
20
|
-
isExtend?: 'left' | 'right' | 'all';
|
|
21
|
-
}
|
|
22
|
-
export interface ActionData {
|
|
23
|
-
from: string;
|
|
24
|
-
to: string;
|
|
25
|
-
user_id?: string;
|
|
26
|
-
user_image?: string;
|
|
27
|
-
}
|
|
28
|
-
export interface ISequenceAnalysisSpec {
|
|
29
|
-
type: 'sequenceAnalysis';
|
|
30
|
-
colors?: string[];
|
|
31
|
-
mode: 'time' | 'step';
|
|
32
|
-
mediumConnection?: boolean;
|
|
33
|
-
actionTarget?: boolean;
|
|
34
|
-
eventData: EventData[];
|
|
35
|
-
patternData?: PatternData[];
|
|
36
|
-
actionData?: ActionData[];
|
|
37
|
-
userImageMap: UserImageMap;
|
|
38
|
-
stepMediumMap: Record<string, string>;
|
|
39
|
-
customTransformSpec?: (spec: any) => void;
|
|
40
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/charts/sequence-analysis/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["// 绘制点\nexport interface EventData {\n user_id: string; // 用户id\n user_image: string; // 用户头像url\n dots: {\n // step步骤\n // step模式下以此为维度轴\n step: string;\n // 事件类型\n // 颜色维度\n action_type: string;\n // 事件唯一标识\n node_name: string;\n // 介质类型\n // step + medium connection, 以此为维度轴\n medium_type: string;\n // 事件发生时间\n // time模式, 以此为维度轴\n time_stamp: number;\n // 事件发生次数\n // time模式, 以此为top轴标识\n action_count: number;\n }[];\n}\n\n// 绘制user头像\nexport interface UserImageMap {\n [user_id: string]: string; // 用户id -> 用户头像url\n}\n\n// 绘制pattern\nexport interface PatternData {\n // 事件id\n from: string;\n // 事件id\n to: string;\n // pattern类型, 颜色维度\n pattern_type: string;\n /**\n * 是否延伸 2/x\n * 默认两边延伸\n */\n isExtend?: 'left' | 'right' | 'all';\n}\n\n// 绘制连接\nexport interface ActionData {\n // 事件id\n from: string;\n // 事件id\n to: string;\n // 用户id\n // time模式开启Action Target是需要使用\n user_id?: string;\n // 用户头像url\n user_image?: string;\n}\n\nexport interface ISequenceAnalysisSpec {\n /**\n * 图表类型\n */\n type: 'sequenceAnalysis';\n /**\n * 色板(看是否需要根据key指定)\n */\n colors?: string[];\n /**\n * 展示模式\n */\n mode: 'time' | 'step';\n /**\n * step模式下, 是否开启介质连接\n * @default false\n * @description 关闭时, 使用直接绘制; 开启时, 使用三次贝塞尔曲线绘制\n */\n mediumConnection?: boolean;\n /**\n * time模式下, 是否开启actionTarget\n * @default false\n * @description 关闭时, 使用直线连接; 开启时, 连接线中间有用户头像\n */\n actionTarget?: boolean;\n /**\n * 事件数据\n */\n eventData: EventData[];\n /**\n * 模式下的pattern数据\n */\n patternData?: PatternData[];\n /**\n * 模式下的action数据\n */\n actionData?: ActionData[];\n /**\n * 用户头像数据(从eventData中抽取也可以, 但不建议在前端遍历数据)\n */\n userImageMap: UserImageMap;\n stepMediumMap: Record<string, string>;\n /**\n * @param spec 经过rankingList转化后的vchart原始spec\n * @description 获取vchart原始spec, 并根据业务自行添加转换逻辑\n */\n customTransformSpec?: (spec: any) => void;\n}\n"]}
|