var billboard = billboard || {}; billboard.BarRenderer = function() {}; billboard.BarRenderer.prototype.render = function(wgt) { var columns = []; var categories = new Array(); wgt.getSeriesData().forEach((x, i) => { x.forEach((y, j) => { if (y.category) { columns[columns.length-1].push(y.value); if (!categories.indexOf[y.category]) categories.push(y.category); } else { var values = new Array(); columns.push(values); values.push(y); } }); }); var color = {}; var bar = {}; var background = {}; var rendererOptions = wgt._rendererOptions ? jq.evalJSON(wgt._rendererOptions) : null; if (rendererOptions) { if (rendererOptions["intervalColors"]) { color["pattern"] = new Array(); rendererOptions["intervalColors"].forEach((x, i) => color["pattern"].push(x)); } if (rendererOptions["intervals"]) { color["threshold"] = {values: []}; rendererOptions["intervals"].forEach((x, i) => color["threshold"]["values"].push(x)); } if (rendererOptions["background"]) { background["color"] = rendererOptions["background"]; } } var x = {tick: {}}; var rotated = false; var axes = wgt.getAxes(); if (axes.rotated) rotated = axes.rotated; if (axes.xaxis.renderer == "timeseries") { x["type"] = "timeseries"; if (axes.xaxis.tickOptions) { x["tick"]["format"] = axes.xaxis.tickOptions.formatString; } } else { x["type"] = "category"; } if (x["type"] == "category") { if (categories.length > 0) { x["categories"] = []; categories.forEach((v, i) => x["categories"].push(v)); } } else if (x["type"] == "timeseries") { var ts = new Array(); ts.push("x"); categories.forEach((s, i) => ts.push(s)); columns.push(ts); x["tick"]["fit"] = true; } x["clipPath"] = false; if (axes.xaxis.tickOptions) { if (axes.xaxis.tickOptions.angle) { if (axes.xaxis.tickOptions.angle != 0) { x["tick"]["rotate"] = axes.xaxis.tickOptions.angle; } } } var model = { bindto: "#"+wgt.$n().id, data: { columns: columns, type: wgt._type, onclick: function(d, e) { var i = 0; var si = 0; for(var s in wgt.getSeries()) { if (s == d.id) { si = i; break; } i++; } wgt._dataClickTS = new Date().getTime(); wgt.fire("onDataClick", { seriesIndex : si, pointIndex : d.index, data : d.value, ticks : wgt.getTicks() }); } }, color: color, bar: bar, tooltip: { show: true, doNotHide: false, grouped: false, contents: function(d, defaultTitleFormat, defaultValueFormat, color) { var c = d[0]; var h = '
| '; h = h + defaultTitleFormat(c.x); h = h + ' |
|---|
| '; h = h + d3.format('.2f')(c.value) + ' |