UNPKG

@qn-pandora/pandora-visualization

Version:

Pandora 通用可视化库

192 lines (191 loc) 7.67 kB
"use strict"; 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 __()); }; })(); var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spread = (this && this.__spread) || function () { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getFirstUsefulMetric = exports.getFirstUsefulBucket = exports.getFirstUsefulField = void 0; var mobx_1 = require("mobx"); var bind_1 = __importDefault(require("../../../../../utils/bind")); var chart_style_1 = require("../../../../../constants/chart-style"); var two_d_legend_1 = __importDefault(require("../../components/two-d-legend")); var two_d_1 = __importDefault(require("../two-d")); var base_1 = require("../base"); var ScatterChartStyleService = /** @class */ (function (_super) { __extends(ScatterChartStyleService, _super); function ScatterChartStyleService(options) { var _this = _super.call(this, options) || this; // 图表类型 _this.chartType = chart_style_1.ChartType.Scatter; // 回归配置 _this.regression = "none" /* None */; _this.regressionOrder = 2; _this.regression = options.regression || "none" /* None */; _this.regressionOrder = options.regressionOrder || 2; // 重置图例,散点图不显示值, 并且不显示基线 _this.legend = new two_d_legend_1.default(__assign(__assign({}, options.legend), { legendDisplayMode: [], hideBaseLineLegend: true })); return _this; } ScatterChartStyleService.prototype.getOptions = function () { return __assign(__assign({}, _super.prototype.getOptions.call(this)), { regression: this.regression, regressionOrder: this.regressionOrder }); }; ScatterChartStyleService.prototype.setRegression = function (regression) { this.regression = regression; }; ScatterChartStyleService.prototype.setRegressionOrder = function (order) { this.regressionOrder = order; }; ScatterChartStyleService.getChartInitStyle = getChartInitStyle; __decorate([ base_1.styleOption(), __metadata("design:type", String) ], ScatterChartStyleService.prototype, "regression", void 0); __decorate([ base_1.styleOption(), __metadata("design:type", Number) ], ScatterChartStyleService.prototype, "regressionOrder", void 0); __decorate([ bind_1.default, mobx_1.action, __metadata("design:type", Function), __metadata("design:paramtypes", [String]), __metadata("design:returntype", void 0) ], ScatterChartStyleService.prototype, "setRegression", null); __decorate([ bind_1.default, mobx_1.action, __metadata("design:type", Function), __metadata("design:paramtypes", [Number]), __metadata("design:returntype", void 0) ], ScatterChartStyleService.prototype, "setRegressionOrder", null); return ScatterChartStyleService; }(two_d_1.default)); exports.default = ScatterChartStyleService; /** * 获取第一个有效的字段 */ function getFirstUsefulField(buckets, metrics, fieldNames) { if (fieldNames === void 0) { fieldNames = []; } if (buckets.length > 0) { var splitBucket = buckets.splice(0, 1); return splitBucket[0]; } else if (metrics.length > 0) { var splitMetric = metrics.splice(0, 1); return splitMetric[0]; } else if (fieldNames.length > 0) { return fieldNames[0]; } else { return ''; } } exports.getFirstUsefulField = getFirstUsefulField; /** * 获取第一个有效的分组 */ function getFirstUsefulBucket(buckets) { if (buckets.length > 0) { var splitBucket = buckets.splice(0, 1); return splitBucket[0]; } else { return ''; } } exports.getFirstUsefulBucket = getFirstUsefulBucket; /** * 获取第一个有效的指标 */ function getFirstUsefulMetric(metrics) { if (metrics.length > 0) { var splitMetric = metrics.splice(0, 1); return splitMetric[0]; } else { return ''; } } exports.getFirstUsefulMetric = getFirstUsefulMetric; function getChartInitStyle(option, initFirst) { if (initFirst === void 0) { initFirst = true; } var buckets = option.buckets, metrics = option.metrics; var copyedBuckets = __spread(buckets); var copyedMetrics = __spread(metrics); var mainAxisField = getFirstUsefulField(copyedBuckets, copyedMetrics); var crossAxisField = getFirstUsefulField(copyedBuckets, copyedMetrics); var colorAxisField = getFirstUsefulBucket(copyedBuckets); var newOption = { regression: "none" /* None */, colors: { fields: colorAxisField ? [colorAxisField] : [] }, mainAxis: { name: '', nameMode: "on" /* On */, labelShowMode: "showauto" /* ShowAuto */, labelRotation: "0" /* Zero */, field: mainAxisField, unit: ['none', 'short'] }, crossAxis1: { name: '', nameMode: "on" /* On */, fields: crossAxisField ? [crossAxisField] : [], scale: "value" /* Value */, yEmptyValueMode: "gap" /* Gap */ } }; return initFirst ? __assign(__assign({}, newOption), option) : __assign(__assign({}, option), newOption); }