124 lines
3.2 KiB
JavaScript
124 lines
3.2 KiB
JavaScript
'use strict';
|
|
|
|
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
|
|
var utilsLite = require('utils-lite');
|
|
require('echarts-wordcloud');
|
|
var Core = _interopDefault(require('./core'));
|
|
|
|
function getSeries(args) {
|
|
var dimension = args.dimension,
|
|
metrics = args.metrics,
|
|
rows = args.rows,
|
|
color = args.color,
|
|
sizeMax = args.sizeMax,
|
|
sizeMin = args.sizeMin,
|
|
shape = args.shape;
|
|
|
|
|
|
var baseType = {
|
|
type: 'wordCloud',
|
|
textStyle: {
|
|
normal: {
|
|
color: !utilsLite.isArray(color) && !!color ? color : function () {
|
|
return 'rgb(' + [Math.round(Math.random() * 160), Math.round(Math.random() * 160), Math.round(Math.random() * 160)].join(',') + ')';
|
|
}
|
|
}
|
|
},
|
|
shape: shape,
|
|
sizeRange: [sizeMin, sizeMax]
|
|
};
|
|
|
|
var len = utilsLite.isArray(color) ? color.length : 0;
|
|
var data = rows.slice().map(function (row) {
|
|
var text = {
|
|
name: row[dimension],
|
|
value: row[metrics]
|
|
};
|
|
|
|
if (len > 0) {
|
|
text.textStyle = {
|
|
normal: {
|
|
color: color[Math.floor(Math.random() * len)]
|
|
}
|
|
};
|
|
}
|
|
return text;
|
|
});
|
|
|
|
baseType.data = data;
|
|
|
|
return [baseType];
|
|
}
|
|
|
|
function getTooltip(args) {
|
|
var tooltipFormatter = args.tooltipFormatter;
|
|
|
|
|
|
return {
|
|
show: true,
|
|
formatter: function formatter(params) {
|
|
var _params$data = params.data,
|
|
name = _params$data.name,
|
|
value = _params$data.value;
|
|
|
|
|
|
if (tooltipFormatter) {
|
|
return tooltipFormatter.apply(null, params);
|
|
}
|
|
|
|
return name + ': ' + value;
|
|
}
|
|
};
|
|
}
|
|
|
|
var wordcloud = function wordcloud(columns, rows, settings, extra) {
|
|
var _settings$dimension = settings.dimension,
|
|
dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,
|
|
_settings$metrics = settings.metrics,
|
|
metrics = _settings$metrics === undefined ? columns[1] : _settings$metrics,
|
|
_settings$color = settings.color,
|
|
color = _settings$color === undefined ? '' : _settings$color,
|
|
_settings$sizeMax = settings.sizeMax,
|
|
sizeMax = _settings$sizeMax === undefined ? 60 : _settings$sizeMax,
|
|
_settings$sizeMin = settings.sizeMin,
|
|
sizeMin = _settings$sizeMin === undefined ? 12 : _settings$sizeMin,
|
|
_settings$shape = settings.shape,
|
|
shape = _settings$shape === undefined ? 'circle' : _settings$shape;
|
|
var tooltipVisible = extra.tooltipVisible,
|
|
tooltipFormatter = extra.tooltipFormatter;
|
|
|
|
|
|
var series = getSeries({ dimension: dimension, metrics: metrics, rows: rows, color: color, sizeMax: sizeMax, sizeMin: sizeMin, shape: shape });
|
|
var tooltip = tooltipVisible && getTooltip({ tooltipFormatter: tooltipFormatter });
|
|
|
|
return {
|
|
series: series,
|
|
tooltip: tooltip
|
|
};
|
|
};
|
|
|
|
var _extends = Object.assign || function (target) {
|
|
for (var i = 1; i < arguments.length; i++) {
|
|
var source = arguments[i];
|
|
|
|
for (var key in source) {
|
|
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
target[key] = source[key];
|
|
}
|
|
}
|
|
}
|
|
|
|
return target;
|
|
};
|
|
|
|
var index = _extends({}, Core, {
|
|
name: 'VeWordcloud',
|
|
data: function data() {
|
|
this.chartHandler = wordcloud;
|
|
return {};
|
|
}
|
|
});
|
|
|
|
module.exports = index;
|