@qn-pandora/pandora-visualization
Version:
Pandora 通用可视化库
71 lines (70 loc) • 2.88 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { get } from 'lodash';
import { getFieldIndex } from '../../base-pandora-visualization/services/chart-style/utils';
import ChartCommonActionService from './base-chart-action';
/**
* 单值图的Link Service
*/
var SingleChartActionService = /** @class */ (function (_super) {
__extends(SingleChartActionService, _super);
function SingleChartActionService() {
return _super !== null && _super.apply(this, arguments) || this;
}
SingleChartActionService.prototype.toEvent = function (params) {
var metrics = [];
var buckets = [];
var currentMetric = get(params.currentMetrics, 0);
metrics = [
this.generateMetric(get(currentMetric, 'key'), params.currentData)
];
if (get(params.currentMetrics, [0, 'type']) !== 'metric') {
buckets = [
this.generateBucket(get(currentMetric, 'key'), params.currentData, params.fields)
];
return this.generateValidResults({ buckets: buckets, metrics: metrics });
}
if (params.currentBuckets.length) {
buckets = this.getBucketsViaRow(params.rows[0], params.currentBuckets, params.fields);
}
return this.generateValidResults({ buckets: buckets, metrics: metrics });
};
SingleChartActionService.prototype.getBucketsViaRow = function (row, currentBuckets, fields) {
var _this = this;
return currentBuckets.map(function (bucket) {
var bucketIndex = getFieldIndex(bucket.key, fields);
return _this.generateBucket(bucket.key, get(row, [bucketIndex, 0]), fields);
});
};
SingleChartActionService.prototype.toActionToken = function (params) {
var _a;
var name = get(params.currentMetrics, [0, 'name']);
var value = params.currentData;
var record = params.rows[0];
var row = record || (_a = {},
_a[name] = value,
_a);
return {
row: row,
click: {
name: name,
value: value,
name1: name,
value1: value
}
};
};
return SingleChartActionService;
}(ChartCommonActionService));
export default SingleChartActionService;