UNPKG

@antv/g6

Version:

graph visualization frame work

76 lines (74 loc) 1.93 kB
/** * @fileOverview common node shape * @author huangtonger@aliyun.com */ var Shape = require('../shape'); var Util = require('../../util/'); var Global = require('../../global'); Shape.registerNode('common', { draw: function draw(item) { var group = item.getGraphicGroup(); var label = this.drawLabel(item); var keyShape = this.drawKeyShape(item); label && Util.toFront(label, group); return keyShape; }, getSize: function getSize(item) { var model = item.getModel(); var size = model.size; if (Util.isArray(size)) { return size; } if (Util.isNumber(size)) { return [size, size]; } return [Global.defaultNodeSize, Global.defaultNodeSize]; }, getStyle: function getStyle(item) { var model = item.getModel(); return Util.mix(true, { lineWidth: 1, fill: model.color || '#40a9ff', stroke: model.color || '#096dd9', fillOpacity: 0.92 }, model.style); }, getLabel: function getLabel(item) { var model = item.getModel(); return model.label; }, drawKeyShape: function drawKeyShape(item) { var group = item.getGraphicGroup(); var style = this.getStyle(item); var path = this.getPath(item); return group.addShape('path', { attrs: Util.mix({}, style, { path: path }) }); }, drawLabel: function drawLabel(item) { var group = item.getGraphicGroup(); var label = this.getLabel(item); if (Util.isNil(label)) { return; } var attrs = Util.mix(true, {}, Global.labelStyle, { x: 0, y: 0 }); if (!Util.isObject(label)) { attrs.text = label; } else { Util.mix(attrs, label); } return group.addShape('text', { class: 'label', attrs: attrs }); }, getPath: function getPath(item) { var size = this.getSize(item); return Util.getEllipsePath(0, 0, size[0] / 2, size[1] / 2); } });