@domoinc/multiline-chart
Version:
MultiLineChart - Domo Widget
85 lines (71 loc) • 2.67 kB
JavaScript
(function() {
function create(name) {
var sampleData;
// var widgetConfig = {};
if (name === 'SingleLineChart') {
sampleData = [
['Jan', 1],
['Feb', 4],
['Mar', 3],
['Apr', 4]
];
// widgetConfig.singleColor = true;
} else if (name === 'MultiLineChart') {
sampleData = [
['Jan', 1, 'North'],
['Feb', 4, 'North'],
['Mar', 3, 'North'],
['Apr', 4, 'North'],
['Jan', 2, 'South'],
['Feb', 3, 'South'],
['Mar', 4, 'South'],
['Apr', 5, 'South'],
['Jan', 4, 'East'],
['Feb', 3, 'East'],
['Mar', 1, 'East'],
['Apr', 2, 'East']
];
// widgetConfig.singleColor = false;
}
return function(container) {
var bBox = container.select('[id^=chartBounds]')
.node()
.getBBox();
container.attr('transform', 'translate(' + bBox.x + ', ' + bBox.y + ')')
.selectAll('*')
.remove();
var dataName = container.node().parentNode.id;
container.attr('data-dm-field', dataName);
var sampleDataObj = {};
var columnNames = name === 'MultiLineChart' ? ['X Axis', 'Y Axis', 'Series'] : ['X Axis', 'Y Axis'];
sampleDataObj[dataName] = {
defaultValue: sampleData,
columnNames: columnNames,
};
var widget = AutoWidgets.baseWidget(container.chart('MultiLineChart'))
.c({
'height': bBox.height,
'width': bBox.width,
})
.sampleData(sampleDataObj);
//Remove properties so they don't show in the plugin
if (name === 'MultiLineChart') {
widget._config.chartName.value = 'MultiLineChart';
widget._config.showGradients.name = undefined;
widget._config.singleColor.name = undefined;
} else if (name === 'SingleLineChart') {
var summaryNumberService = new SummaryNumber();
widget._config.chartName.value = 'SingleLineChart';
widget._config.generalWashoutColor.name = undefined;
widget._config.singleColor.value = '#73b0d7';
widget._config.tooltipValue.value = function(d) { return widget._dataDefinition['X Axis'].accessor(d) + ' | ' + summaryNumberService.summaryNumber(widget._dataDefinition['Y Axis'].accessor(d)); };
}
widget._sampleData = sampleData;
widget._notifier.showMessage(true);
widget.dataName(dataName);
return widget;
};
}
AutoWidgets.register('DomoSingleLineChartDomo', create('SingleLineChart'));
AutoWidgets.register('DomoMultiLineChartDomo', create('MultiLineChart'));
})();