UNPKG

@antv/g6

Version:

graph visualization frame work

62 lines (51 loc) 1.7 kB
var DEFAULT_TRIGGER = 'click'; var ALLOW_EVENTS = ['click', 'dblclick']; module.exports = { getDefaultCfg: function getDefaultCfg() { return { /** * 发生收缩/扩展变化时的回调 */ trigger: DEFAULT_TRIGGER, onChange: function onChange() {} }; }, getEvents: function getEvents() { var _ref; var trigger; // 检测输入是否合法 if (ALLOW_EVENTS.includes(this.trigger)) { trigger = this.trigger; } else { trigger = DEFAULT_TRIGGER; console.warn('Behavior collapse-expand的trigger参数不合法,请输入click或dblclick'); } return _ref = {}, _ref["node:" + trigger] = 'onNodeClick', _ref; }, onNodeClick: function onNodeClick(e) { var item = e.item; // 如果节点进行过更新,model 会进行 merge,直接改 model 就不能改布局,所以需要去改源数据 var sourceData = this.graph.findDataById(item.get('id')); var children = sourceData.children; // 叶子节点的收缩和展开没有意义 if (!children || children.length === 0) { return; } var collapsed = !sourceData.collapsed; if (!this.shouldBegin(e, collapsed)) { return; } sourceData.collapsed = collapsed; item.getModel().collapsed = collapsed; this.graph.emit('itemcollapsed', { item: e.item, collapsed: collapsed }); if (!this.shouldUpdate(e, collapsed)) { return; } try { this.onChange(item, collapsed); } catch (e) { console.warn('G6 自 3.0.4 版本支持直接从 item.getModel() 获取源数据(临时通知,将在3.2.0版本中清除)', e); } this.graph.refreshLayout(); } };