逐步完成前后端服务器
This commit is contained in:
323
frontend/node_modules/echarts/lib/component/axis/AngleAxisView.js
generated
vendored
Normal file
323
frontend/node_modules/echarts/lib/component/axis/AngleAxisView.js
generated
vendored
Normal file
@ -0,0 +1,323 @@
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* AUTO-GENERATED FILE. DO NOT MODIFY.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { __extends } from "tslib";
|
||||
import * as zrUtil from 'zrender/lib/core/util.js';
|
||||
import * as graphic from '../../util/graphic.js';
|
||||
import { createTextStyle } from '../../label/labelStyle.js';
|
||||
import Model from '../../model/Model.js';
|
||||
import AxisView from './AxisView.js';
|
||||
import AxisBuilder from './AxisBuilder.js';
|
||||
import { getECData } from '../../util/innerStore.js';
|
||||
var elementList = ['axisLine', 'axisLabel', 'axisTick', 'minorTick', 'splitLine', 'minorSplitLine', 'splitArea'];
|
||||
function getAxisLineShape(polar, rExtent, angle) {
|
||||
rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());
|
||||
var start = polar.coordToPoint([rExtent[0], angle]);
|
||||
var end = polar.coordToPoint([rExtent[1], angle]);
|
||||
return {
|
||||
x1: start[0],
|
||||
y1: start[1],
|
||||
x2: end[0],
|
||||
y2: end[1]
|
||||
};
|
||||
}
|
||||
function getRadiusIdx(polar) {
|
||||
var radiusAxis = polar.getRadiusAxis();
|
||||
return radiusAxis.inverse ? 0 : 1;
|
||||
}
|
||||
// Remove the last tick which will overlap the first tick
|
||||
function fixAngleOverlap(list) {
|
||||
var firstItem = list[0];
|
||||
var lastItem = list[list.length - 1];
|
||||
if (firstItem && lastItem && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {
|
||||
list.pop();
|
||||
}
|
||||
}
|
||||
var AngleAxisView = /** @class */function (_super) {
|
||||
__extends(AngleAxisView, _super);
|
||||
function AngleAxisView() {
|
||||
var _this = _super !== null && _super.apply(this, arguments) || this;
|
||||
_this.type = AngleAxisView.type;
|
||||
_this.axisPointerClass = 'PolarAxisPointer';
|
||||
return _this;
|
||||
}
|
||||
AngleAxisView.prototype.render = function (angleAxisModel, ecModel) {
|
||||
this.group.removeAll();
|
||||
if (!angleAxisModel.get('show')) {
|
||||
return;
|
||||
}
|
||||
var angleAxis = angleAxisModel.axis;
|
||||
var polar = angleAxis.polar;
|
||||
var radiusExtent = polar.getRadiusAxis().getExtent();
|
||||
var ticksAngles = angleAxis.getTicksCoords();
|
||||
var minorTickAngles = angleAxis.getMinorTicksCoords();
|
||||
var labels = zrUtil.map(angleAxis.getViewLabels(), function (labelItem) {
|
||||
labelItem = zrUtil.clone(labelItem);
|
||||
var scale = angleAxis.scale;
|
||||
var tickValue = scale.type === 'ordinal' ? scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;
|
||||
labelItem.coord = angleAxis.dataToCoord(tickValue);
|
||||
return labelItem;
|
||||
});
|
||||
fixAngleOverlap(labels);
|
||||
fixAngleOverlap(ticksAngles);
|
||||
zrUtil.each(elementList, function (name) {
|
||||
if (angleAxisModel.get([name, 'show']) && (!angleAxis.scale.isBlank() || name === 'axisLine')) {
|
||||
angelAxisElementsBuilders[name](this.group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels);
|
||||
}
|
||||
}, this);
|
||||
};
|
||||
AngleAxisView.type = 'angleAxis';
|
||||
return AngleAxisView;
|
||||
}(AxisView);
|
||||
var angelAxisElementsBuilders = {
|
||||
axisLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {
|
||||
var lineStyleModel = angleAxisModel.getModel(['axisLine', 'lineStyle']);
|
||||
var angleAxis = polar.getAngleAxis();
|
||||
var RADIAN = Math.PI / 180;
|
||||
var angleExtent = angleAxis.getExtent();
|
||||
// extent id of the axis radius (r0 and r)
|
||||
var rId = getRadiusIdx(polar);
|
||||
var r0Id = rId ? 0 : 1;
|
||||
var shape;
|
||||
var shapeType = Math.abs(angleExtent[1] - angleExtent[0]) === 360 ? 'Circle' : 'Arc';
|
||||
if (radiusExtent[r0Id] === 0) {
|
||||
shape = new graphic[shapeType]({
|
||||
shape: {
|
||||
cx: polar.cx,
|
||||
cy: polar.cy,
|
||||
r: radiusExtent[rId],
|
||||
startAngle: -angleExtent[0] * RADIAN,
|
||||
endAngle: -angleExtent[1] * RADIAN,
|
||||
clockwise: angleAxis.inverse
|
||||
},
|
||||
style: lineStyleModel.getLineStyle(),
|
||||
z2: 1,
|
||||
silent: true
|
||||
});
|
||||
} else {
|
||||
shape = new graphic.Ring({
|
||||
shape: {
|
||||
cx: polar.cx,
|
||||
cy: polar.cy,
|
||||
r: radiusExtent[rId],
|
||||
r0: radiusExtent[r0Id]
|
||||
},
|
||||
style: lineStyleModel.getLineStyle(),
|
||||
z2: 1,
|
||||
silent: true
|
||||
});
|
||||
}
|
||||
shape.style.fill = null;
|
||||
group.add(shape);
|
||||
},
|
||||
axisTick: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {
|
||||
var tickModel = angleAxisModel.getModel('axisTick');
|
||||
var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');
|
||||
var radius = radiusExtent[getRadiusIdx(polar)];
|
||||
var lines = zrUtil.map(ticksAngles, function (tickAngleItem) {
|
||||
return new graphic.Line({
|
||||
shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)
|
||||
});
|
||||
});
|
||||
group.add(graphic.mergePath(lines, {
|
||||
style: zrUtil.defaults(tickModel.getModel('lineStyle').getLineStyle(), {
|
||||
stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])
|
||||
})
|
||||
}));
|
||||
},
|
||||
minorTick: function (group, angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) {
|
||||
if (!minorTickAngles.length) {
|
||||
return;
|
||||
}
|
||||
var tickModel = angleAxisModel.getModel('axisTick');
|
||||
var minorTickModel = angleAxisModel.getModel('minorTick');
|
||||
var tickLen = (tickModel.get('inside') ? -1 : 1) * minorTickModel.get('length');
|
||||
var radius = radiusExtent[getRadiusIdx(polar)];
|
||||
var lines = [];
|
||||
for (var i = 0; i < minorTickAngles.length; i++) {
|
||||
for (var k = 0; k < minorTickAngles[i].length; k++) {
|
||||
lines.push(new graphic.Line({
|
||||
shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord)
|
||||
}));
|
||||
}
|
||||
}
|
||||
group.add(graphic.mergePath(lines, {
|
||||
style: zrUtil.defaults(minorTickModel.getModel('lineStyle').getLineStyle(), zrUtil.defaults(tickModel.getLineStyle(), {
|
||||
stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])
|
||||
}))
|
||||
}));
|
||||
},
|
||||
axisLabel: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) {
|
||||
var rawCategoryData = angleAxisModel.getCategories(true);
|
||||
var commonLabelModel = angleAxisModel.getModel('axisLabel');
|
||||
var labelMargin = commonLabelModel.get('margin');
|
||||
var triggerEvent = angleAxisModel.get('triggerEvent');
|
||||
// Use length of ticksAngles because it may remove the last tick to avoid overlapping
|
||||
zrUtil.each(labels, function (labelItem, idx) {
|
||||
var labelModel = commonLabelModel;
|
||||
var tickValue = labelItem.tickValue;
|
||||
var r = radiusExtent[getRadiusIdx(polar)];
|
||||
var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);
|
||||
var cx = polar.cx;
|
||||
var cy = polar.cy;
|
||||
var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3 ? 'center' : p[0] > cx ? 'left' : 'right';
|
||||
var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3 ? 'middle' : p[1] > cy ? 'top' : 'bottom';
|
||||
if (rawCategoryData && rawCategoryData[tickValue]) {
|
||||
var rawCategoryItem = rawCategoryData[tickValue];
|
||||
if (zrUtil.isObject(rawCategoryItem) && rawCategoryItem.textStyle) {
|
||||
labelModel = new Model(rawCategoryItem.textStyle, commonLabelModel, commonLabelModel.ecModel);
|
||||
}
|
||||
}
|
||||
var textEl = new graphic.Text({
|
||||
silent: AxisBuilder.isLabelSilent(angleAxisModel),
|
||||
style: createTextStyle(labelModel, {
|
||||
x: p[0],
|
||||
y: p[1],
|
||||
fill: labelModel.getTextColor() || angleAxisModel.get(['axisLine', 'lineStyle', 'color']),
|
||||
text: labelItem.formattedLabel,
|
||||
align: labelTextAlign,
|
||||
verticalAlign: labelTextVerticalAlign
|
||||
})
|
||||
});
|
||||
group.add(textEl);
|
||||
// Pack data for mouse event
|
||||
if (triggerEvent) {
|
||||
var eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel);
|
||||
eventData.targetType = 'axisLabel';
|
||||
eventData.value = labelItem.rawLabel;
|
||||
getECData(textEl).eventData = eventData;
|
||||
}
|
||||
}, this);
|
||||
},
|
||||
splitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {
|
||||
var splitLineModel = angleAxisModel.getModel('splitLine');
|
||||
var lineStyleModel = splitLineModel.getModel('lineStyle');
|
||||
var lineColors = lineStyleModel.get('color');
|
||||
var lineCount = 0;
|
||||
lineColors = lineColors instanceof Array ? lineColors : [lineColors];
|
||||
var splitLines = [];
|
||||
for (var i = 0; i < ticksAngles.length; i++) {
|
||||
var colorIndex = lineCount++ % lineColors.length;
|
||||
splitLines[colorIndex] = splitLines[colorIndex] || [];
|
||||
splitLines[colorIndex].push(new graphic.Line({
|
||||
shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)
|
||||
}));
|
||||
}
|
||||
// Simple optimization
|
||||
// Batching the lines if color are the same
|
||||
for (var i = 0; i < splitLines.length; i++) {
|
||||
group.add(graphic.mergePath(splitLines[i], {
|
||||
style: zrUtil.defaults({
|
||||
stroke: lineColors[i % lineColors.length]
|
||||
}, lineStyleModel.getLineStyle()),
|
||||
silent: true,
|
||||
z: angleAxisModel.get('z')
|
||||
}));
|
||||
}
|
||||
},
|
||||
minorSplitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {
|
||||
if (!minorTickAngles.length) {
|
||||
return;
|
||||
}
|
||||
var minorSplitLineModel = angleAxisModel.getModel('minorSplitLine');
|
||||
var lineStyleModel = minorSplitLineModel.getModel('lineStyle');
|
||||
var lines = [];
|
||||
for (var i = 0; i < minorTickAngles.length; i++) {
|
||||
for (var k = 0; k < minorTickAngles[i].length; k++) {
|
||||
lines.push(new graphic.Line({
|
||||
shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord)
|
||||
}));
|
||||
}
|
||||
}
|
||||
group.add(graphic.mergePath(lines, {
|
||||
style: lineStyleModel.getLineStyle(),
|
||||
silent: true,
|
||||
z: angleAxisModel.get('z')
|
||||
}));
|
||||
},
|
||||
splitArea: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {
|
||||
if (!ticksAngles.length) {
|
||||
return;
|
||||
}
|
||||
var splitAreaModel = angleAxisModel.getModel('splitArea');
|
||||
var areaStyleModel = splitAreaModel.getModel('areaStyle');
|
||||
var areaColors = areaStyleModel.get('color');
|
||||
var lineCount = 0;
|
||||
areaColors = areaColors instanceof Array ? areaColors : [areaColors];
|
||||
var splitAreas = [];
|
||||
var RADIAN = Math.PI / 180;
|
||||
var prevAngle = -ticksAngles[0].coord * RADIAN;
|
||||
var r0 = Math.min(radiusExtent[0], radiusExtent[1]);
|
||||
var r1 = Math.max(radiusExtent[0], radiusExtent[1]);
|
||||
var clockwise = angleAxisModel.get('clockwise');
|
||||
for (var i = 1, len = ticksAngles.length; i <= len; i++) {
|
||||
var coord = i === len ? ticksAngles[0].coord : ticksAngles[i].coord;
|
||||
var colorIndex = lineCount++ % areaColors.length;
|
||||
splitAreas[colorIndex] = splitAreas[colorIndex] || [];
|
||||
splitAreas[colorIndex].push(new graphic.Sector({
|
||||
shape: {
|
||||
cx: polar.cx,
|
||||
cy: polar.cy,
|
||||
r0: r0,
|
||||
r: r1,
|
||||
startAngle: prevAngle,
|
||||
endAngle: -coord * RADIAN,
|
||||
clockwise: clockwise
|
||||
},
|
||||
silent: true
|
||||
}));
|
||||
prevAngle = -coord * RADIAN;
|
||||
}
|
||||
// Simple optimization
|
||||
// Batching the lines if color are the same
|
||||
for (var i = 0; i < splitAreas.length; i++) {
|
||||
group.add(graphic.mergePath(splitAreas[i], {
|
||||
style: zrUtil.defaults({
|
||||
fill: areaColors[i % areaColors.length]
|
||||
}, areaStyleModel.getAreaStyle()),
|
||||
silent: true
|
||||
}));
|
||||
}
|
||||
}
|
||||
};
|
||||
export default AngleAxisView;
|
Reference in New Issue
Block a user