UNPKG

@mcdevsl/superset-ui

Version:
73 lines (56 loc) 1.57 kB
/* [LICENSE TBD] */ /* eslint-disable */ // from http://bl.ocks.org/3687826 export default function (config) { var columns = []; var dg = function (selection) { if (columns.length == 0) columns = d3.keys(selection.data()[0][0]); // header selection.selectAll('.header').data([true]).enter().append('div').attr('class', 'header'); var header = selection.select('.header').selectAll('.cell').data(columns); header .enter() .append('div') .attr('class', function (d, i) { return 'col-' + i; }) .classed('cell', true); selection.selectAll('.header .cell').text(function (d) { return d; }); header.exit().remove(); // rows var rows = selection.selectAll('.row').data(function (d) { return d; }); rows.enter().append('div').attr('class', 'row'); rows.exit().remove(); var cells = selection .selectAll('.row') .selectAll('.cell') .data(function (d) { return columns.map(function (col) { return d[col]; }); }); // cells cells .enter() .append('div') .attr('class', function (d, i) { return 'col-' + i; }) .classed('cell', true); cells.exit().remove(); selection.selectAll('.cell').text(function (d) { return d; }); return dg; }; dg.columns = function (_) { if (!arguments.length) return columns; columns = _; return this; }; return dg; }