@qn-pandora/pandora-visualization
Version:
Pandora 通用可视化库
425 lines (424 loc) • 16.5 kB
JavaScript
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);
};
import { isUndefined, toNumber, isNaN } from 'lodash';
import { observable, computed, action, toJS } from 'mobx';
import { utils } from '@qn-pandora/app-sdk';
import bind from '../../../../utils/bind';
import { EPoint, ILineMarkPointType, InitLineDataConfig, EAxisMinMaxMode } from '../../../../constants/chart-style';
var getUnitTransformer = utils.unit.getUnitTransformer;
var CrossAxis = /** @class */ (function () {
function CrossAxis(option) {
this.name = option.name || '';
this.nameMode = option.nameMode || "on" /* On */;
this.minMode = option.min
? option.minMode || EAxisMinMaxMode.Custom
: option.minMode || EAxisMinMaxMode.Auto;
this.maxMode = option.max
? option.maxMode || EAxisMinMaxMode.Custom
: option.maxMode || EAxisMinMaxMode.Auto;
this.min = option.min;
this.max = option.max;
this.fields = option.fields || [];
this.subFields = option.subFields || [];
this.unit = option.unit || ['none', 'short'];
this.scale = option.scale || "value" /* Value */;
this.yEmptyValueMode = option.yEmptyValueMode || "gap" /* Gap */;
this.precision = isUndefined(option.precision) ? 2 : option.precision;
this.type = option.type;
this.intervalType = option.intervalType || "auto" /* Auto */;
this.splitNumber = option.splitNumber;
this.interval = option.interval;
this.lineDataConfig = option.lineDataConfig || InitLineDataConfig;
this.displayFields = option.displayFields || [];
this.fieldsGetter = option.fieldsGetter;
}
Object.defineProperty(CrossAxis.prototype, "option", {
get: function () {
return this.baseOption;
},
enumerable: false,
configurable: true
});
Object.defineProperty(CrossAxis.prototype, "baseOption", {
get: function () {
var typeOption = this.type ? { type: this.type } : {};
return __assign({ name: this.name, nameMode: this.nameMode, minMode: this.minMode, maxMode: this.maxMode, min: this.min, max: this.max, unit: this.unit, precision: this.precision, fields: this.fields, subFields: this.subFields, scale: this.scale, yEmptyValueMode: this.yEmptyValueMode, intervalType: this.intervalType, splitNumber: this.splitNumber, interval: this.interval, lineDataConfig: toJS(this.lineDataConfig), displayFields: this.displayFields }, typeOption);
},
enumerable: false,
configurable: true
});
Object.defineProperty(CrossAxis.prototype, "unitTransformer", {
get: function () {
var precision = this.precision;
if (this.unit) {
var currentUnit_1 = this.unit[1];
return function (value) {
return getUnitTransformer(currentUnit_1)(isNaN(toNumber(value)) ? null : value, precision);
};
}
return function (value) {
return getUnitTransformer('short')(isNaN(toNumber(value)) ? null : value, precision);
};
},
enumerable: false,
configurable: true
});
CrossAxis.prototype.setLineMarkPoint = function (markPointType) {
this.lineDataConfig = __assign(__assign({}, this.lineDataConfig), { markPointType: markPointType });
};
CrossAxis.prototype.setLinePoint = function (point) {
this.lineDataConfig = __assign(__assign({}, this.lineDataConfig), { markPointType: point.type === EPoint.None
? ILineMarkPointType.Hide
: this.lineDataConfig.markPointType, point: __assign(__assign({}, point), { size: this.lineDataConfig.point.type === EPoint.None &&
point.type !== EPoint.None
? undefined // 为undefined,那么会自动取主题大小
: point.type === EPoint.None
? 0
: point.size }) });
};
CrossAxis.prototype.setLineSmooth = function (smoothLine) {
this.lineDataConfig = __assign(__assign({}, this.lineDataConfig), { smoothLine: smoothLine });
};
CrossAxis.prototype.setName = function (name) {
this.name = name;
};
CrossAxis.prototype.setYEmptyValueMode = function (yEmptyValueMode) {
this.yEmptyValueMode = yEmptyValueMode;
};
CrossAxis.prototype.setNameMode = function (nameMode) {
this.nameMode = nameMode;
};
CrossAxis.prototype.setScale = function (scale) {
this.scale = scale;
};
CrossAxis.prototype.setAxisType = function (type) {
this.type = type;
};
CrossAxis.prototype.setMinMode = function (mode) {
this.minMode = mode;
};
CrossAxis.prototype.setMaxMode = function (mode) {
this.maxMode = mode;
};
CrossAxis.prototype.setMin = function (min) {
this.min = min;
};
CrossAxis.prototype.setMax = function (max) {
this.max = max;
};
CrossAxis.prototype.setFields = function (fields) {
this.fields = fields;
};
CrossAxis.prototype.setSubFields = function (subFields) {
this.subFields = subFields;
};
CrossAxis.prototype.setUnit = function (unit) {
this.unit = unit;
};
CrossAxis.prototype.setPrecision = function (precision) {
this.precision = precision;
};
CrossAxis.prototype.setIntervalType = function (intervalType) {
this.intervalType = intervalType;
};
CrossAxis.prototype.setSplitNumber = function (splitNumber) {
this.splitNumber = splitNumber;
};
CrossAxis.prototype.setInterval = function (interval) {
this.interval = interval;
};
CrossAxis.prototype.setDisplayFields = function (displayFields) {
this.displayFields = displayFields;
};
CrossAxis.prototype.setFieldsGetter = function (fn) {
this.fieldsGetter = fn;
};
CrossAxis.prototype.set = function (option) {
this.name = option.name || '';
this.nameMode = option.nameMode || "on" /* On */;
this.min = option.min;
this.max = option.max;
this.minMode = option.min
? option.minMode || EAxisMinMaxMode.Custom
: option.minMode || EAxisMinMaxMode.Auto;
this.maxMode = option.max
? option.maxMode || EAxisMinMaxMode.Custom
: option.maxMode || EAxisMinMaxMode.Auto;
this.fields = option.fields || [];
this.subFields = option.subFields || [];
this.unit = option.unit || ['none', 'short'];
this.scale = option.scale || "value" /* Value */;
this.yEmptyValueMode = option.yEmptyValueMode || "gap" /* Gap */;
this.precision = isUndefined(option.precision) ? 2 : option.precision;
this.type = option.type;
this.intervalType = option.intervalType || "auto" /* Auto */;
this.splitNumber = option.splitNumber;
this.interval = option.interval;
this.lineDataConfig = option.lineDataConfig || InitLineDataConfig;
this.fieldsGetter = option.fieldsGetter;
};
__decorate([
observable,
__metadata("design:type", String)
], CrossAxis.prototype, "name", void 0);
__decorate([
observable,
__metadata("design:type", String)
], CrossAxis.prototype, "nameMode", void 0);
__decorate([
observable,
__metadata("design:type", String)
], CrossAxis.prototype, "minMode", void 0);
__decorate([
observable,
__metadata("design:type", Number)
], CrossAxis.prototype, "min", void 0);
__decorate([
observable,
__metadata("design:type", String)
], CrossAxis.prototype, "maxMode", void 0);
__decorate([
observable,
__metadata("design:type", Number)
], CrossAxis.prototype, "max", void 0);
__decorate([
observable.ref,
__metadata("design:type", Array)
], CrossAxis.prototype, "unit", void 0);
__decorate([
observable.ref,
__metadata("design:type", Array)
], CrossAxis.prototype, "fields", void 0);
__decorate([
observable.ref,
__metadata("design:type", Array)
], CrossAxis.prototype, "subFields", void 0);
__decorate([
observable,
__metadata("design:type", String)
], CrossAxis.prototype, "scale", void 0);
__decorate([
observable,
__metadata("design:type", String)
], CrossAxis.prototype, "yEmptyValueMode", void 0);
__decorate([
observable,
__metadata("design:type", Number)
], CrossAxis.prototype, "precision", void 0);
__decorate([
observable,
__metadata("design:type", String)
], CrossAxis.prototype, "type", void 0);
__decorate([
observable,
__metadata("design:type", String)
], CrossAxis.prototype, "intervalType", void 0);
__decorate([
observable,
__metadata("design:type", Number)
], CrossAxis.prototype, "splitNumber", void 0);
__decorate([
observable,
__metadata("design:type", Number)
], CrossAxis.prototype, "interval", void 0);
__decorate([
observable.ref,
__metadata("design:type", Object)
], CrossAxis.prototype, "lineDataConfig", void 0);
__decorate([
observable.ref,
__metadata("design:type", Array)
], CrossAxis.prototype, "displayFields", void 0);
__decorate([
observable.ref,
__metadata("design:type", Function)
], CrossAxis.prototype, "fieldsGetter", void 0);
__decorate([
computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], CrossAxis.prototype, "option", null);
__decorate([
computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], CrossAxis.prototype, "baseOption", null);
__decorate([
computed,
__metadata("design:type", Object),
__metadata("design:paramtypes", [])
], CrossAxis.prototype, "unitTransformer", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setLineMarkPoint", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setLinePoint", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setLineSmooth", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setName", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setYEmptyValueMode", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setNameMode", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setScale", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setAxisType", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setMinMode", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setMaxMode", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Number]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setMin", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Number]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setMax", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Array]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setFields", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Array]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setSubFields", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Array]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setUnit", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Number]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setPrecision", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setIntervalType", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Number]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setSplitNumber", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Number]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setInterval", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Array]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setDisplayFields", null);
__decorate([
bind,
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Function]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "setFieldsGetter", null);
__decorate([
action,
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", void 0)
], CrossAxis.prototype, "set", null);
return CrossAxis;
}());
export default CrossAxis;