@antv/g2plot
Version:
An interactive and responsive charting library
118 lines • 3.72 kB
JavaScript
import { __extends } from "tslib";
import { get } from '@antv/util';
import { Plot } from '../../core/plot';
import { findViewById } from '../../utils';
import { adaptor } from './adaptor';
import { EDGES_VIEW_ID, NODES_VIEW_ID } from './constant';
import { transformToViewsData } from './helper';
// 桑基图内置交互
import './interactions';
/**
* 桑基图 Sankey
*/
var Sankey = /** @class */ (function (_super) {
__extends(Sankey, _super);
function Sankey() {
var _this = _super !== null && _super.apply(this, arguments) || this;
/** 图表类型 */
_this.type = 'sankey';
return _this;
}
Sankey.getDefaultOptions = function () {
return {
appendPadding: 8,
syncViewPadding: true,
nodeStyle: {
opacity: 1,
fillOpacity: 1,
lineWidth: 1,
},
edgeStyle: {
opacity: 0.3,
lineWidth: 0,
},
edgeState: {
active: {
style: {
opacity: 0.8,
lineWidth: 0,
},
},
},
label: {
formatter: function (_a) {
var name = _a.name;
return name;
},
callback: function (x) {
var isLast = x[1] === 1; // 最后一列靠边的节点
return {
style: {
fill: '#545454',
textAlign: isLast ? 'end' : 'start',
},
offsetX: isLast ? -8 : 8,
};
},
layout: [
{
type: 'hide-overlap',
},
],
},
tooltip: {
showTitle: false,
showMarkers: false,
shared: false,
// 内置:node 不显示 tooltip,edge 显示 tooltip
showContent: function (items) {
return !get(items, [0, 'data', 'isNode']);
},
formatter: function (datum) {
var source = datum.source, target = datum.target, value = datum.value;
return {
name: source + ' -> ' + target,
value: value,
};
},
},
nodeWidthRatio: 0.008,
nodePaddingRatio: 0.01,
animation: {
appear: {
animation: 'wave-in',
},
enter: {
animation: 'wave-in',
},
},
};
};
/**
* @override
* @param data
*/
Sankey.prototype.changeData = function (data) {
this.updateOption({ data: data });
var _a = transformToViewsData(this.options, this.chart.width, this.chart.height), nodes = _a.nodes, edges = _a.edges;
var nodesView = findViewById(this.chart, NODES_VIEW_ID);
var edgesView = findViewById(this.chart, EDGES_VIEW_ID);
nodesView.changeData(nodes);
edgesView.changeData(edges);
};
/**
* 获取适配器
*/
Sankey.prototype.getSchemaAdaptor = function () {
return adaptor;
};
/**
* 获取 条形图 默认配置
*/
Sankey.prototype.getDefaultOptions = function () {
return Sankey.getDefaultOptions();
};
return Sankey;
}(Plot));
export { Sankey };
//# sourceMappingURL=index.js.map