@visactor/vchart 1.13.13-alpha.2 → 1.13.13
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/es5/index.js +1 -1
- package/build/index.es.js +101 -71
- package/build/index.js +165 -135
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/component/axis/cartesian/band-axis.d.ts +8 -0
- package/cjs/component/axis/cartesian/band-axis.js +9 -0
- package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
- package/cjs/component/axis/mixin/band-axis-mixin.d.ts +2 -0
- package/cjs/component/axis/mixin/band-axis-mixin.js +15 -1
- package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/cjs/component/util.js +1 -2
- package/cjs/constant/funnel.js +2 -1
- package/cjs/constant/sunburst.js +1 -2
- package/cjs/core/index.d.ts +1 -2
- package/cjs/core/index.js +4 -5
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/interface.js +2 -1
- package/cjs/series/dot/dot.d.ts +1 -1
- package/cjs/series/link/link.d.ts +1 -1
- package/cjs/series/sankey/interface.d.ts +0 -2
- package/cjs/series/sankey/interface.js.map +1 -1
- package/cjs/series/sankey/sankey.d.ts +6 -7
- package/cjs/series/sankey/sankey.js +46 -43
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.d.ts +8 -0
- package/esm/component/axis/cartesian/band-axis.js +9 -1
- package/esm/component/axis/cartesian/band-axis.js.map +1 -1
- package/esm/component/axis/mixin/band-axis-mixin.d.ts +2 -0
- package/esm/component/axis/mixin/band-axis-mixin.js +15 -1
- package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/esm/component/util.js +1 -2
- package/esm/constant/funnel.js +2 -1
- package/esm/constant/sunburst.js +1 -2
- package/esm/core/index.d.ts +1 -2
- package/esm/core/index.js +1 -3
- package/esm/core/index.js.map +1 -1
- package/esm/core/interface.js +2 -1
- package/esm/series/dot/dot.d.ts +1 -1
- package/esm/series/link/link.d.ts +1 -1
- package/esm/series/sankey/interface.d.ts +0 -2
- package/esm/series/sankey/interface.js.map +1 -1
- package/esm/series/sankey/sankey.d.ts +6 -7
- package/esm/series/sankey/sankey.js +40 -43
- package/esm/series/sankey/sankey.js.map +1 -1
- package/package.json +19 -19
package/esm/constant/funnel.js
CHANGED
package/esm/constant/sunburst.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export const SUNBURST_AUTO_VISIBLE_DEFAULT_THRESHOLD = 10;
|
|
2
|
-
//# sourceMappingURL=sunburst.js.map
|
|
1
|
+
export const SUNBURST_AUTO_VISIBLE_DEFAULT_THRESHOLD = 10;
|
package/esm/core/index.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { VChart } from './vchart';
|
|
2
2
|
import { Factory } from './factory';
|
|
3
3
|
export { VChart, Factory };
|
|
4
|
-
export declare const version = "1.13.13
|
|
4
|
+
export declare const version = "1.13.13";
|
|
5
5
|
export type { IVChart } from './interface';
|
|
6
6
|
export type { IStateSpec, StateValueType } from '../compile/mark';
|
|
7
7
|
export type { IRegion } from '../region/interface';
|
|
8
8
|
export * from '../typings/spec/common';
|
|
9
9
|
export * from '../event/interface';
|
|
10
10
|
export * from '../theme/interface';
|
|
11
|
-
export * from '../compile/mark/interface';
|
|
12
11
|
export * from './interface';
|
|
13
12
|
export * from '../constant/base';
|
|
14
13
|
export * from '../constant/data';
|
package/esm/core/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { Factory } from "./factory";
|
|
|
4
4
|
|
|
5
5
|
export { VChart, Factory };
|
|
6
6
|
|
|
7
|
-
export const version = "1.13.13
|
|
7
|
+
export const version = "1.13.13";
|
|
8
8
|
|
|
9
9
|
export * from "../typings/spec/common";
|
|
10
10
|
|
|
@@ -12,8 +12,6 @@ export * from "../event/interface";
|
|
|
12
12
|
|
|
13
13
|
export * from "../theme/interface";
|
|
14
14
|
|
|
15
|
-
export * from "../compile/mark/interface";
|
|
16
|
-
|
|
17
15
|
export * from "./interface";
|
|
18
16
|
|
|
19
17
|
export * from "../constant/base";
|
package/esm/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AAOjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAG5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AAKjC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EACL,OAAO,EACP,WAAW,EACX,cAAc,EACd,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAC","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.13.13\";\n\n// export necessary types\nexport type { IVChart } from './interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\nexport type { IRegion } from '../region/interface';\n\nexport * from '../typings/spec/common';\nexport * from '../event/interface';\nexport * from '../theme/interface';\nexport * from './interface';\n\n// some constants\nexport * from '../constant/base';\nexport * from '../constant/data';\n\n/**\n * spec\n */\nexport * from '../typings/spec/index';\n\n// tooltip\nexport * from '../typings/tooltip';\n\n// theme\nexport * from '../theme/index';\n\n// vrender\nexport {\n vglobal,\n createGroup,\n createRichText,\n createText,\n createArc,\n createArea,\n createRect,\n createLine,\n createSymbol,\n ManualTicker,\n StreamLight\n} from '@visactor/vrender-core';\n"]}
|
package/esm/core/interface.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { };
|
|
1
|
+
export { };
|
|
2
|
+
//# sourceMappingURL=interface.js.map
|
package/esm/series/dot/dot.d.ts
CHANGED
|
@@ -63,7 +63,7 @@ export declare class DotSeries<T extends IDotSeriesSpec = IDotSeriesSpec> extend
|
|
|
63
63
|
protected initTooltip(): void;
|
|
64
64
|
onEvaluateEnd(ctx: IModelEvaluateOption): void;
|
|
65
65
|
protected onMarkTreePositionUpdate(marks: IMark[]): void;
|
|
66
|
-
getDotData(): import("
|
|
66
|
+
getDotData(): import("../../compile/mark").IMarkData;
|
|
67
67
|
protected _getDataIdKey(): any;
|
|
68
68
|
getStackValueField(): string;
|
|
69
69
|
getActiveMarks(): IMark[];
|
|
@@ -47,7 +47,7 @@ export declare class LinkSeries<T extends ILinkSeriesSpec = ILinkSeriesSpec> ext
|
|
|
47
47
|
initInteraction(): void;
|
|
48
48
|
protected initTooltip(): void;
|
|
49
49
|
protected onMarkTreePositionUpdate(marks: IMark[]): void;
|
|
50
|
-
getDotInfoData(): import("
|
|
50
|
+
getDotInfoData(): import("../../compile/mark").IMarkData;
|
|
51
51
|
getActiveMarks(): IMark[];
|
|
52
52
|
}
|
|
53
53
|
export declare const registerLinkSeries: () => void;
|
|
@@ -48,8 +48,6 @@ export interface ISankeySeriesSpec extends Omit<ISeriesSpec, 'data'>, IAnimation
|
|
|
48
48
|
enable: boolean;
|
|
49
49
|
trigger?: 'click' | 'hover';
|
|
50
50
|
effect: 'self' | 'adjacency' | 'related';
|
|
51
|
-
highlightState?: string;
|
|
52
|
-
blurState?: string;
|
|
53
51
|
};
|
|
54
52
|
[SeriesMarkNameEnum.label]?: ISankeyLabelSpec | ISankeyLabelSpec[];
|
|
55
53
|
overflow?: 'scroll' | 'hidden' | 'scroll-x' | 'scroll-y';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/sankey/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ISeriesSpec, DirectionType, IMarkTheme } from '../../typings';\nimport type { IMarkSpec } from '../../typings/spec/common';\nimport type { IRectMarkSpec, ILinkPathMarkSpec } from '../../typings/visual';\nimport type { IAnimationSpec } from '../../animation/spec';\nimport type { SeriesMarkNameEnum } from '../interface/type';\nimport type { ILabelSpec } from '../../component/label/interface';\n\nexport type SankeyMark = 'node' | 'link' | 'label';\n\nexport type SankeyAppearPreset = 'growIn' | 'fadeIn';\nexport interface ISankeyAnimationParams {\n direction: DirectionType;\n growFrom: () => number;\n}\n\nexport type ISankeyLabelSpec = ILabelSpec & {\n /**\n * 标签布局方式\n * @default 'outside'\n */\n position?: 'outside' | 'inside-start' | 'inside-middle' | 'inside-end' | 'left' | 'right';\n /** 标签文字缩略 */\n limit?: number;\n};\n\nexport interface ISankeySeriesSpec extends Omit<ISeriesSpec, 'data'>, IAnimationSpec<SankeyMark, SankeyAppearPreset> {\n type: 'sankey';\n\n /**\n * 数据字段配置\n */\n /** 节点名称字段配置 */\n categoryField: string;\n /** 节点之间关系的权重字段 */\n valueField: string;\n /** 来源节点数据字段\n * 层级数据不提供\n */\n sourceField?: string;\n /** 目标节点数据字段\n * 层级数据不提供\n */\n targetField?: string;\n\n /**\n * 图表布局方向\n */\n direction?: DirectionType;\n /**\n * 节点的对齐类型,所有深度相同的节点,采用什么对齐方式,决定了节点在第几层:\n * - 横向布局的桑基图,用于计算节点x坐标\n * - 纵向布局的桑基图,用于计算节点y坐标\n */\n nodeAlign?: 'left' | 'right' | 'center' | 'justify' | 'start' | 'end';\n /**\n * 横向布局的桑基图,设置节点Y坐标的对齐方式:\n * 'start' - '顶部对齐'\n * 'end' - '底部对齐'\n * 'middle' - '居中对齐'\n *\n * 纵向布局的桑基图,设置节点X坐标的对齐方式:\n * 'start' - '左对齐'\n * 'end' - '右对齐'\n * 'middle' - '居中对齐'\n * 'parent' - '父节点',从1.12.14版本开始支持\n *\n * @since 1.12.4\n */\n crossNodeAlign?: 'start' | 'end' | 'middle' | 'parent';\n /**\n * 是否反向\n * @since 1.12.2\n */\n inverse?: boolean;\n /**\n * 同一层中两个节点之间的间隙大小\n */\n nodeGap?: number;\n /**\n * 每个节点的宽度,支持三种取值\n * 1. 百分比字符串,例如:{ nodeWidth: '12%' }\n * 2. 以'px'为单位的简单数字,eg: { nodeWidth: 20 }\n * 3. function,通过自定义计算指定nodeWidth\n */\n nodeWidth?: string | number | ((node: SankeyNodeElement) => number);\n /**\n * link宽度,单位px\n */\n linkWidth?: number | ((link: SankeyLinkElement) => number);\n /**\n * link + node 的最小宽度\n */\n minStepWidth?: number;\n /**\n * 数据不为零或空时节点的最小大小\n * - 这个配置可以用来避免数据太小时看不到太细的节点\n * - 建议小于5px\n */\n minNodeHeight?: number;\n /**\n * 数据不为零或空时边的最小大小\n * - 这个配置可以用来避免数据太小的时候看不到太细的链接\n * - 建议小于5px\n * - 当同时指定 `minNodeHeight` 和 `minLinkHeight` 两个选项时,此选项应小于 `minNodeHeight`\n */\n minLinkHeight?: number;\n /**\n * 数据不为零或空时节点的最大大小\n * @since 1.12.14\n */\n maxNodeHeight?: number;\n /**\n * 数据不为零或空时边的最大大小\n * - 当同时指定 `maxNodeHeight` 和 `maxLinkHeight` 两个选项时,此选项应小于 `maxNodeHeight`\n * @since 1.12.14\n */\n maxLinkHeight?: number;\n /** 布局的迭代次数 */\n iterations?: number;\n /** 解析node的key,defaultValue */\n nodeKey?: string | number | ((datum: SankeyNodeDatum) => string | number);\n /** 按此funtion排序link */\n linkSortBy?: (a: SankeyLinkElement, b: SankeyLinkElement) => number;\n /** 按此funtion排序node */\n nodeSortBy?: (a: SankeyNodeElement, b: SankeyNodeElement) => number;\n /** 自定义指定节点层 */\n setNodeLayer?: (datum: SankeyNodeDatum) => number;\n /**\n * 是否丢弃孤立的节点\n * @since 1.11.0\n */\n dropIsolatedNode?: boolean;\n /**\n * set the height of node\n * @since 1.11.0\n */\n nodeHeight?: number | ((node: SankeyNodeElement) => number);\n /**\n * set the height of link\n * @since 1.11.0\n */\n linkHeight?: number | ((link: SankeyLinkElement, sourceNode: SankeyNodeElement, sourceNodeHeight: number) => number);\n /**\n * each node has same height\n * @since 1.11.0\n */\n equalNodeHeight?: boolean;\n /**\n * the layout type of link\n * @since 1.11.0\n */\n linkOverlap?: 'start' | 'center' | 'end';\n\n /** 节点配置 */\n [SeriesMarkNameEnum.node]?: IMarkSpec<IRectMarkSpec>;\n\n /** 边配置 */\n [SeriesMarkNameEnum.link]?: IMarkSpec<ILinkPathMarkSpec>;\n\n /** 联动交互配置 */\n emphasis?: {\n /** 是否开启交互 */\n enable: boolean;\n /**\n * 交互触发类型\n * 默认为‘click'\n */\n trigger?: 'click' | 'hover';\n /**桑基图提供3种在节点上的交互联动效果\n * self: 仅高亮当前节点。\n * adjacency: 高亮当前节点上下游节点和关联的边,淡化其它图形元素。\n * related: 高亮与当前节点相关的整条路径上的节点和边,淡化其它图形元素。 */\n effect: 'self' | 'adjacency' | 'related';\n
|
|
1
|
+
{"version":3,"sources":["../src/series/sankey/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ISeriesSpec, DirectionType, IMarkTheme } from '../../typings';\nimport type { IMarkSpec } from '../../typings/spec/common';\nimport type { IRectMarkSpec, ILinkPathMarkSpec } from '../../typings/visual';\nimport type { IAnimationSpec } from '../../animation/spec';\nimport type { SeriesMarkNameEnum } from '../interface/type';\nimport type { ILabelSpec } from '../../component/label/interface';\n\nexport type SankeyMark = 'node' | 'link' | 'label';\n\nexport type SankeyAppearPreset = 'growIn' | 'fadeIn';\nexport interface ISankeyAnimationParams {\n direction: DirectionType;\n growFrom: () => number;\n}\n\nexport type ISankeyLabelSpec = ILabelSpec & {\n /**\n * 标签布局方式\n * @default 'outside'\n */\n position?: 'outside' | 'inside-start' | 'inside-middle' | 'inside-end' | 'left' | 'right';\n /** 标签文字缩略 */\n limit?: number;\n};\n\nexport interface ISankeySeriesSpec extends Omit<ISeriesSpec, 'data'>, IAnimationSpec<SankeyMark, SankeyAppearPreset> {\n type: 'sankey';\n\n /**\n * 数据字段配置\n */\n /** 节点名称字段配置 */\n categoryField: string;\n /** 节点之间关系的权重字段 */\n valueField: string;\n /** 来源节点数据字段\n * 层级数据不提供\n */\n sourceField?: string;\n /** 目标节点数据字段\n * 层级数据不提供\n */\n targetField?: string;\n\n /**\n * 图表布局方向\n */\n direction?: DirectionType;\n /**\n * 节点的对齐类型,所有深度相同的节点,采用什么对齐方式,决定了节点在第几层:\n * - 横向布局的桑基图,用于计算节点x坐标\n * - 纵向布局的桑基图,用于计算节点y坐标\n */\n nodeAlign?: 'left' | 'right' | 'center' | 'justify' | 'start' | 'end';\n /**\n * 横向布局的桑基图,设置节点Y坐标的对齐方式:\n * 'start' - '顶部对齐'\n * 'end' - '底部对齐'\n * 'middle' - '居中对齐'\n *\n * 纵向布局的桑基图,设置节点X坐标的对齐方式:\n * 'start' - '左对齐'\n * 'end' - '右对齐'\n * 'middle' - '居中对齐'\n * 'parent' - '父节点',从1.12.14版本开始支持\n *\n * @since 1.12.4\n */\n crossNodeAlign?: 'start' | 'end' | 'middle' | 'parent';\n /**\n * 是否反向\n * @since 1.12.2\n */\n inverse?: boolean;\n /**\n * 同一层中两个节点之间的间隙大小\n */\n nodeGap?: number;\n /**\n * 每个节点的宽度,支持三种取值\n * 1. 百分比字符串,例如:{ nodeWidth: '12%' }\n * 2. 以'px'为单位的简单数字,eg: { nodeWidth: 20 }\n * 3. function,通过自定义计算指定nodeWidth\n */\n nodeWidth?: string | number | ((node: SankeyNodeElement) => number);\n /**\n * link宽度,单位px\n */\n linkWidth?: number | ((link: SankeyLinkElement) => number);\n /**\n * link + node 的最小宽度\n */\n minStepWidth?: number;\n /**\n * 数据不为零或空时节点的最小大小\n * - 这个配置可以用来避免数据太小时看不到太细的节点\n * - 建议小于5px\n */\n minNodeHeight?: number;\n /**\n * 数据不为零或空时边的最小大小\n * - 这个配置可以用来避免数据太小的时候看不到太细的链接\n * - 建议小于5px\n * - 当同时指定 `minNodeHeight` 和 `minLinkHeight` 两个选项时,此选项应小于 `minNodeHeight`\n */\n minLinkHeight?: number;\n /**\n * 数据不为零或空时节点的最大大小\n * @since 1.12.14\n */\n maxNodeHeight?: number;\n /**\n * 数据不为零或空时边的最大大小\n * - 当同时指定 `maxNodeHeight` 和 `maxLinkHeight` 两个选项时,此选项应小于 `maxNodeHeight`\n * @since 1.12.14\n */\n maxLinkHeight?: number;\n /** 布局的迭代次数 */\n iterations?: number;\n /** 解析node的key,defaultValue */\n nodeKey?: string | number | ((datum: SankeyNodeDatum) => string | number);\n /** 按此funtion排序link */\n linkSortBy?: (a: SankeyLinkElement, b: SankeyLinkElement) => number;\n /** 按此funtion排序node */\n nodeSortBy?: (a: SankeyNodeElement, b: SankeyNodeElement) => number;\n /** 自定义指定节点层 */\n setNodeLayer?: (datum: SankeyNodeDatum) => number;\n /**\n * 是否丢弃孤立的节点\n * @since 1.11.0\n */\n dropIsolatedNode?: boolean;\n /**\n * set the height of node\n * @since 1.11.0\n */\n nodeHeight?: number | ((node: SankeyNodeElement) => number);\n /**\n * set the height of link\n * @since 1.11.0\n */\n linkHeight?: number | ((link: SankeyLinkElement, sourceNode: SankeyNodeElement, sourceNodeHeight: number) => number);\n /**\n * each node has same height\n * @since 1.11.0\n */\n equalNodeHeight?: boolean;\n /**\n * the layout type of link\n * @since 1.11.0\n */\n linkOverlap?: 'start' | 'center' | 'end';\n\n /** 节点配置 */\n [SeriesMarkNameEnum.node]?: IMarkSpec<IRectMarkSpec>;\n\n /** 边配置 */\n [SeriesMarkNameEnum.link]?: IMarkSpec<ILinkPathMarkSpec>;\n\n /** 联动交互配置 */\n emphasis?: {\n /** 是否开启交互 */\n enable: boolean;\n /**\n * 交互触发类型\n * 默认为‘click'\n */\n trigger?: 'click' | 'hover';\n /**桑基图提供3种在节点上的交互联动效果\n * self: 仅高亮当前节点。\n * adjacency: 高亮当前节点上下游节点和关联的边,淡化其它图形元素。\n * related: 高亮与当前节点相关的整条路径上的节点和边,淡化其它图形元素。 */\n effect: 'self' | 'adjacency' | 'related';\n };\n\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: ISankeyLabelSpec | ISankeyLabelSpec[];\n\n /**\n * 当制定了节点、边的宽度的时候,可以配置这个属性\n * 当宽度大于图表region的宽度、高度大于图表resion高度的时候是否自动产生滚动条\n * @since 1.13.0\n */\n overflow?: 'scroll' | 'hidden' | 'scroll-x' | 'scroll-y';\n\n /** 进度条配置 */\n // scroll?: IScrollSpec & {\n // /** 是否开启进度条 */\n // enable: boolean;\n // };\n}\n\nexport interface SankeyLinkDatum {\n source: string | number;\n target: string | number;\n value?: number;\n}\n\nexport interface SankeyNodeDatum {\n value?: number;\n}\n\nexport interface HierarchyNodeDatum {\n value?: number;\n children?: HierarchyNodeDatum[];\n}\n\nexport type SankeyData =\n | {\n nodes?: SankeyNodeDatum[];\n links: SankeyLinkDatum[];\n }\n | {\n nodes: HierarchyNodeDatum[];\n };\n\n/**\n * The node element after sankey layout\n */\nexport interface SankeyNodeElement {\n key: string | number;\n index: number;\n /** the depth of node, from source to target */\n depth: number;\n\n /** the depth of node, from target to source */\n endDepth?: number;\n /** the final layer index after layout */\n layer?: number;\n isLastLayer?: boolean;\n value: number;\n datum: SankeyNodeDatum;\n sourceLinks: SankeyLinkElement[];\n targetLinks: SankeyLinkElement[];\n x0?: number;\n y0?: number;\n x1?: number;\n y1?: number;\n}\n/**\n * the link element after sankey layout\n */\nexport interface SankeyLinkElement {\n vertical?: boolean;\n index: number;\n source: string | number;\n target: string | number;\n value: number;\n datum: SankeyLinkDatum | SankeyLinkDatum[];\n thickness?: number;\n sourceRect?: { x0: number; x1: number; y0: number; y1: number };\n targetRect?: { x0: number; x1: number; y0: number; y1: number };\n /** this will only be generate in hierarchy node data*/\n parents?: (string | number)[];\n y0?: number;\n y1?: number;\n x0?: number;\n x1?: number;\n}\n\nexport type SankeyLayoutResult = {\n nodes: SankeyNodeElement[];\n links: SankeyLinkElement[];\n columns: SankeyNodeElement[][];\n}[];\n\nexport interface ISankeySeriesTheme {\n [SeriesMarkNameEnum.node]?: IMarkTheme<IRectMarkSpec>;\n [SeriesMarkNameEnum.link]?: IMarkTheme<ILinkPathMarkSpec>;\n}\n"]}
|
|
@@ -50,16 +50,15 @@ export declare class SankeySeries<T extends ISankeySeriesSpec = ISankeySeriesSpe
|
|
|
50
50
|
private _createText;
|
|
51
51
|
initAnimation(): void;
|
|
52
52
|
protected initEvent(): void;
|
|
53
|
-
protected _initEmphasisEvent(): void;
|
|
54
53
|
private nodesSeriesDataUpdate;
|
|
55
54
|
private linksSeriesDataUpdate;
|
|
56
55
|
protected _handleEmphasisElement: (params: ExtendEventParam) => void;
|
|
57
|
-
protected _handleClearEmpty: (
|
|
58
|
-
protected _handleNodeAdjacencyClick: (element: IElement
|
|
59
|
-
protected _handleLinkAdjacencyClick: (element: IGlyphElement
|
|
60
|
-
protected _handleNodeRelatedClick: (element: IElement
|
|
61
|
-
protected _handleLinkRelatedClick: (element: IGlyphElement
|
|
62
|
-
protected _highLightElements(vGrammarElements: IVgrammarMark['elements'], highlightNodes: string[]
|
|
56
|
+
protected _handleClearEmpty: () => void;
|
|
57
|
+
protected _handleNodeAdjacencyClick: (element: IElement) => void;
|
|
58
|
+
protected _handleLinkAdjacencyClick: (element: IGlyphElement) => void;
|
|
59
|
+
protected _handleNodeRelatedClick: (element: IElement) => void;
|
|
60
|
+
protected _handleLinkRelatedClick: (element: IGlyphElement) => void;
|
|
61
|
+
protected _highLightElements(vGrammarElements: IVgrammarMark['elements'], highlightNodes: string[]): void;
|
|
63
62
|
protected initTooltip(): void;
|
|
64
63
|
_setNodeOrdinalColorScale(): void;
|
|
65
64
|
getNodeList(): any;
|
|
@@ -81,23 +81,23 @@ export class SankeySeries extends CartesianSeries {
|
|
|
81
81
|
const sourceName = isNumber(datum.source) ? this.getNodeList()[datum.source] : datum.source;
|
|
82
82
|
return null === (_g = this._colorScale) || void 0 === _g ? void 0 : _g.scale(sourceName);
|
|
83
83
|
}, this._handleEmphasisElement = params => {
|
|
84
|
-
var _a, _b, _c, _d, _e
|
|
85
|
-
const emphasisSpec = null !== (_a = this._spec.emphasis) && void 0 !== _a ? _a : {},
|
|
86
|
-
"adjacency" === emphasisSpec.effect ? element && element.mark === (null === (
|
|
87
|
-
}, this._handleClearEmpty = (
|
|
84
|
+
var _a, _b, _c, _d, _e;
|
|
85
|
+
const emphasisSpec = null !== (_a = this._spec.emphasis) && void 0 !== _a ? _a : {}, element = params.item;
|
|
86
|
+
"adjacency" === emphasisSpec.effect ? element && element.mark === (null === (_b = this._nodeMark) || void 0 === _b ? void 0 : _b.getProduct()) ? this._handleNodeAdjacencyClick(element) : element && element.mark === (null === (_c = this._linkMark) || void 0 === _c ? void 0 : _c.getProduct()) ? this._handleLinkAdjacencyClick(element) : this._handleClearEmpty() : "related" === emphasisSpec.effect && (element && element.mark === (null === (_d = this._nodeMark) || void 0 === _d ? void 0 : _d.getProduct()) ? this._handleNodeRelatedClick(element) : element && element.mark === (null === (_e = this._linkMark) || void 0 === _e ? void 0 : _e.getProduct()) ? this._handleLinkRelatedClick(element) : this._handleClearEmpty());
|
|
87
|
+
}, this._handleClearEmpty = () => {
|
|
88
88
|
var _a, _b;
|
|
89
89
|
if (!this._needClear) return;
|
|
90
90
|
const allNodeElements = null === (_a = this._nodeMark) || void 0 === _a ? void 0 : _a.getProductElements();
|
|
91
91
|
if (!allNodeElements || !allNodeElements.length) return;
|
|
92
92
|
const allLinkElements = null === (_b = this._linkMark) || void 0 === _b ? void 0 : _b.getProductElements();
|
|
93
93
|
if (!allLinkElements || !allLinkElements.length) return;
|
|
94
|
-
const states = [
|
|
94
|
+
const states = [ STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE ];
|
|
95
95
|
allNodeElements.forEach((el => {
|
|
96
96
|
el.removeState(states);
|
|
97
97
|
})), allLinkElements.forEach((el => {
|
|
98
98
|
el.removeState(states);
|
|
99
99
|
})), this._needClear = !1;
|
|
100
|
-
}, this._handleNodeAdjacencyClick =
|
|
100
|
+
}, this._handleNodeAdjacencyClick = element => {
|
|
101
101
|
const nodeDatum = element.getDatum(), highlightNodes = [ nodeDatum.key ];
|
|
102
102
|
if (this._linkMark) {
|
|
103
103
|
const allLinkElements = this._linkMark.getProductElements();
|
|
@@ -105,29 +105,28 @@ export class SankeySeries extends CartesianSeries {
|
|
|
105
105
|
allLinkElements.forEach(((linkEl, i) => {
|
|
106
106
|
const linkDatum = linkEl.getDatum();
|
|
107
107
|
linkDatum.source === nodeDatum.key ? (highlightNodes.includes(linkDatum.target) || highlightNodes.push(linkDatum.target),
|
|
108
|
-
linkEl.removeState(
|
|
109
|
-
linkEl.removeState(
|
|
110
|
-
linkEl.addState(
|
|
108
|
+
linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE), linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS)) : linkDatum.target === nodeDatum.key ? (highlightNodes.includes(linkDatum.source) || highlightNodes.push(linkDatum.source),
|
|
109
|
+
linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE), linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS)) : (linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS),
|
|
110
|
+
linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE));
|
|
111
111
|
}));
|
|
112
112
|
}
|
|
113
|
-
this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes
|
|
113
|
+
this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
|
|
114
114
|
this._needClear = !0;
|
|
115
|
-
}, this._handleLinkAdjacencyClick =
|
|
115
|
+
}, this._handleLinkAdjacencyClick = element => {
|
|
116
116
|
const curLinkDatum = element.getDatum(), highlightNodes = [ curLinkDatum.source, curLinkDatum.target ];
|
|
117
117
|
if (this._linkMark) {
|
|
118
118
|
const allLinkElements = this._linkMark.getProductElements();
|
|
119
119
|
if (!allLinkElements || !allLinkElements.length) return;
|
|
120
120
|
allLinkElements.forEach((linkEl => {
|
|
121
|
-
linkEl === element ? (linkEl.removeState(
|
|
122
|
-
|
|
123
|
-
})) : (linkEl.removeState(highlightState), linkEl.addState(blurState, {
|
|
121
|
+
linkEl === element ? (linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE),
|
|
122
|
+
linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
|
|
124
123
|
ratio: 1
|
|
125
|
-
}));
|
|
124
|
+
})) : (linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS), linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE));
|
|
126
125
|
}));
|
|
127
126
|
}
|
|
128
|
-
this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes
|
|
127
|
+
this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes),
|
|
129
128
|
this._needClear = !0;
|
|
130
|
-
}, this._handleNodeRelatedClick =
|
|
129
|
+
}, this._handleNodeRelatedClick = element => {
|
|
131
130
|
var _a;
|
|
132
131
|
const nodeDatum = element.getDatum(), allNodeElements = this._nodeMark.getProductElements();
|
|
133
132
|
if (!allNodeElements || !allNodeElements.length) return;
|
|
@@ -180,11 +179,12 @@ export class SankeySeries extends CartesianSeries {
|
|
|
180
179
|
if (!allLinkElements || !allLinkElements.length) return;
|
|
181
180
|
allLinkElements.forEach(((linkEl, i) => {
|
|
182
181
|
var _a;
|
|
183
|
-
highlightLinks.includes(null !== (_a = linkEl.getDatum().key) && void 0 !== _a ? _a : linkEl.getDatum().index) ? (linkEl.removeState(
|
|
184
|
-
linkEl.addState(
|
|
182
|
+
highlightLinks.includes(null !== (_a = linkEl.getDatum().key) && void 0 !== _a ? _a : linkEl.getDatum().index) ? (linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE),
|
|
183
|
+
linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS)) : (linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS),
|
|
184
|
+
linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE));
|
|
185
185
|
}));
|
|
186
186
|
}
|
|
187
|
-
this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes
|
|
187
|
+
this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes);
|
|
188
188
|
} else {
|
|
189
189
|
const highlightNodes = [ nodeDatum.key ], upstreamLinks = nodeDatum.targetLinks.reduce(((res, link) => (array(link.datum).forEach((dividedLink => {
|
|
190
190
|
const parents = dividedLink.parents, len = parents.length;
|
|
@@ -203,27 +203,27 @@ export class SankeySeries extends CartesianSeries {
|
|
|
203
203
|
highlightNodes.includes(linkDatum.source) || highlightNodes.push(linkDatum.source),
|
|
204
204
|
highlightNodes.includes(linkDatum.target) || highlightNodes.push(linkDatum.target);
|
|
205
205
|
const ratio = selectedDatum.reduce(((sum, d) => sum + d.value), 0) / linkDatum.value;
|
|
206
|
-
return linkEl.removeState(
|
|
206
|
+
return linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE), void linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
|
|
207
207
|
ratio: ratio
|
|
208
208
|
});
|
|
209
209
|
}
|
|
210
210
|
if (upSelectedLink) return highlightNodes.includes(linkDatum.source) || highlightNodes.push(linkDatum.source),
|
|
211
211
|
highlightNodes.includes(linkDatum.target) || highlightNodes.push(linkDatum.target),
|
|
212
|
-
linkEl.removeState(
|
|
212
|
+
linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE), void linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
|
|
213
213
|
ratio: upSelectedLink.value / linkDatum.value
|
|
214
214
|
});
|
|
215
|
-
linkEl.removeState(
|
|
216
|
-
})), this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes
|
|
215
|
+
linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS), linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
|
|
216
|
+
})), this._nodeMark && this._highLightElements(this._nodeMark.getProductElements(), highlightNodes);
|
|
217
217
|
}
|
|
218
218
|
this._needClear = !0;
|
|
219
|
-
}, this._handleLinkRelatedClick =
|
|
219
|
+
}, this._handleLinkRelatedClick = element => {
|
|
220
220
|
var _a;
|
|
221
221
|
const allNodeElements = this._nodeMark.getProductElements();
|
|
222
222
|
if (!allNodeElements || !allNodeElements.length) return;
|
|
223
223
|
const allLinkElements = this._linkMark.getProductElements();
|
|
224
224
|
if (!allLinkElements || !allLinkElements.length) return;
|
|
225
225
|
if ("source" === ((null === (_a = element.getDatum()) || void 0 === _a ? void 0 : _a.parents) ? "parents" : "source")) {
|
|
226
|
-
const states = [
|
|
226
|
+
const states = [ STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE ];
|
|
227
227
|
this._linkMark && allLinkElements.forEach((linkEl => {
|
|
228
228
|
linkEl.removeState(states);
|
|
229
229
|
})), this._nodeMark && allNodeElements.forEach((el => {
|
|
@@ -247,8 +247,8 @@ export class SankeySeries extends CartesianSeries {
|
|
|
247
247
|
}
|
|
248
248
|
})), allLinkElements.forEach((linkEl => {
|
|
249
249
|
const linkDatum = linkEl.getDatum(), originalDatum = linkDatum.datum;
|
|
250
|
-
if (linkDatum.source === curLinkDatum.source && linkDatum.target === curLinkDatum.target) return linkEl.removeState(
|
|
251
|
-
void linkEl.addState(
|
|
250
|
+
if (linkDatum.source === curLinkDatum.source && linkDatum.target === curLinkDatum.target) return linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE),
|
|
251
|
+
void linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
|
|
252
252
|
ratio: 1
|
|
253
253
|
});
|
|
254
254
|
const selectedDatum = originalDatum ? originalDatum.filter((entry => {
|
|
@@ -262,25 +262,25 @@ export class SankeySeries extends CartesianSeries {
|
|
|
262
262
|
var _a;
|
|
263
263
|
return par.key === curLinkDatum.source && (null === (_a = entry.parents[index + 1]) || void 0 === _a ? void 0 : _a.key) === curLinkDatum.target;
|
|
264
264
|
})))).reduce(((sum, d) => sum + d.value), 0), ratio = val / linkDatum.value;
|
|
265
|
-
return linkEl.removeState(
|
|
265
|
+
return linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE), void linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
|
|
266
266
|
ratio: ratio
|
|
267
267
|
});
|
|
268
268
|
}
|
|
269
269
|
const upSelectedLink = upstreamLinks.find((upLink => upLink.source === linkDatum.source && upLink.target === linkDatum.target));
|
|
270
270
|
if (upSelectedLink) return highlightNodes.includes(linkDatum.source) || highlightNodes.push(linkDatum.source),
|
|
271
271
|
highlightNodes.includes(linkDatum.target) || highlightNodes.push(linkDatum.target),
|
|
272
|
-
linkEl.removeState(
|
|
272
|
+
linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE), void linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS, {
|
|
273
273
|
ratio: upSelectedLink.value / linkDatum.value
|
|
274
274
|
});
|
|
275
|
-
linkEl.removeState(
|
|
276
|
-
})), this._highLightElements(allNodeElements, highlightNodes
|
|
275
|
+
linkEl.removeState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS), linkEl.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
|
|
276
|
+
})), this._highLightElements(allNodeElements, highlightNodes);
|
|
277
277
|
}
|
|
278
278
|
this._needClear = !0;
|
|
279
279
|
};
|
|
280
280
|
}
|
|
281
281
|
get direction() {
|
|
282
|
-
var _a
|
|
283
|
-
return null !== (
|
|
282
|
+
var _a;
|
|
283
|
+
return null !== (_a = this._spec.direction) && void 0 !== _a ? _a : "horizontal";
|
|
284
284
|
}
|
|
285
285
|
getCategoryField() {
|
|
286
286
|
return this._categoryField;
|
|
@@ -506,14 +506,10 @@ export class SankeySeries extends CartesianSeries {
|
|
|
506
506
|
this._linkMark && this._linkMark.setAnimationConfig(animationConfig(null === (_d = Factory.getAnimationInKey("sankeyLinkPath")) || void 0 === _d ? void 0 : _d(animationParams, appearPreset), userAnimationConfig("link", this._spec, this._markAttributeContext)));
|
|
507
507
|
}
|
|
508
508
|
initEvent() {
|
|
509
|
-
var _a, _b;
|
|
509
|
+
var _a, _b, _c;
|
|
510
510
|
super.initEvent(), null === (_a = this._nodesSeriesData.getDataView()) || void 0 === _a || _a.target.addListener("change", this.nodesSeriesDataUpdate.bind(this)),
|
|
511
|
-
null === (_b = this._linksSeriesData.getDataView()) || void 0 === _b || _b.target.addListener("change", this.linksSeriesDataUpdate.bind(this))
|
|
512
|
-
this.
|
|
513
|
-
}
|
|
514
|
-
_initEmphasisEvent() {
|
|
515
|
-
var _a;
|
|
516
|
-
const emphasisSpec = null !== (_a = this._spec.emphasis) && void 0 !== _a ? _a : {};
|
|
511
|
+
null === (_b = this._linksSeriesData.getDataView()) || void 0 === _b || _b.target.addListener("change", this.linksSeriesDataUpdate.bind(this));
|
|
512
|
+
const emphasisSpec = null !== (_c = this._spec.emphasis) && void 0 !== _c ? _c : {};
|
|
517
513
|
if (!0 !== this._option.disableTriggerEvent && emphasisSpec.enable && ("adjacency" === emphasisSpec.effect || "related" === emphasisSpec.effect)) {
|
|
518
514
|
const event = "hover" === emphasisSpec.trigger ? "pointerover" : "pointerdown";
|
|
519
515
|
this.event.on(event, {
|
|
@@ -527,9 +523,10 @@ export class SankeySeries extends CartesianSeries {
|
|
|
527
523
|
linksSeriesDataUpdate() {
|
|
528
524
|
this._linksSeriesData.updateData();
|
|
529
525
|
}
|
|
530
|
-
_highLightElements(vGrammarElements, highlightNodes
|
|
526
|
+
_highLightElements(vGrammarElements, highlightNodes) {
|
|
531
527
|
vGrammarElements && vGrammarElements.length && vGrammarElements.forEach((el => {
|
|
532
|
-
el.removeState([
|
|
528
|
+
el.removeState([ STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE, STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS ]),
|
|
529
|
+
highlightNodes.includes(el.getDatum().key) ? el.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS) : el.addState(STATE_VALUE_ENUM.STATE_SANKEY_EMPHASIS_REVERSE);
|
|
533
530
|
}));
|
|
534
531
|
}
|
|
535
532
|
initTooltip() {
|