UNPKG

@domoinc/multiline-chart

Version:

MultiLineChart - Domo Widget

85 lines (71 loc) 2.67 kB
(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')); })();