@qn-pandora/pandora-visualization
Version:
Pandora 通用可视化库
47 lines (46 loc) • 1.8 kB
JavaScript
import { isEqual, isUndefined, uniqWith } from 'lodash';
import moment from 'moment';
export var DEFAULT_SPAN = '5m';
/**
* 提供图表调和钻相关的服务:
* 1. 封装根据点击元素生成约定Event的逻辑
* 2. 设置跳转相关的token,可作为模版变量使用
*/
var ChartCommonActionService = /** @class */ (function () {
function ChartCommonActionService() {
}
ChartCommonActionService.prototype.generateBucket = function (fieldname, value, fields) {
var field = fields.find(function (item) { return item.key === fieldname; });
var type = (field && field.fieldType) || '';
return {
field: fieldname,
type: type,
span: type === 'Time' ? DEFAULT_SPAN : '',
value: type === 'Time' && value && moment(value).isValid()
? moment(value).valueOf()
: value
};
};
ChartCommonActionService.prototype.generateMetric = function (fieldname, value) {
return {
field: fieldname,
value: value
};
};
ChartCommonActionService.prototype.generateValidResults = function (res) {
var _this = this;
return {
buckets: uniqWith((res.buckets || []).filter(function (bucket) {
return _this.isFieldValid(bucket.field, bucket.value);
}), isEqual),
metrics: uniqWith((res.metrics || []).filter(function (metric) {
return _this.isFieldValid(metric.field, metric.value);
}), isEqual)
};
};
ChartCommonActionService.prototype.isFieldValid = function (fieldname, value) {
return !!fieldname && !isUndefined(value);
};
return ChartCommonActionService;
}());
export default ChartCommonActionService;