import 'zone.js'; import 'reflect-metadata'; import { Component, enableProdMode, NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { ViserModule } from 'viser-ng'; import * as $ from 'jquery'; const DataSet = require('@antv/data-set'); const scale = [{ dataKey: 'x', sync: true, }, { dataKey: 'y', sync: true, }]; const tooltip = [ 'target*source*value', (target, source, value) => ({ name: source.name + ' to ' + target.name + '', value, }), ]; const polygonLabel = [ 'name', { textStyle: { fill: '#545454', textAlign: 'start', }, offset: 0, formatter: val => { return ' ' + val; }, } ]; @Component({ selector: '#mount', template: `
` }) export class AppComponent { forceFit: boolean = true; height: number = 400; edgesData = []; nodesData = []; scale = scale; padding = [40, 80]; tooltip = tooltip; polygonLabel = polygonLabel; sankeyStyle = { curvature: 0.5 }; polygonStyle = { stroke: '#ccc' }; constructor() { $.getJSON('/assets/data/energy.json', (sourceData) => { const dv = new DataSet.View().source(sourceData, { type: 'graph', edges: d => d.links, }); dv.transform({ type: 'diagram.sankey', nodeWidth: 0.015, nodePadding: 0.02, }); this.edgesData = dv.edges; this.nodesData = dv.nodes; }); } } @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, ViserModule ], providers: [], bootstrap: [AppComponent] }) export default class AppModule { }