逐步完成前后端服务器
This commit is contained in:
283
frontend/node_modules/echarts/lib/chart/pie/PieView.js
generated
vendored
Normal file
283
frontend/node_modules/echarts/lib/chart/pie/PieView.js
generated
vendored
Normal file
@ -0,0 +1,283 @@
|
||||
|
||||
/*
|
||||
* 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 { extend, retrieve3 } from 'zrender/lib/core/util.js';
|
||||
import * as graphic from '../../util/graphic.js';
|
||||
import { setStatesStylesFromModel, toggleHoverEmphasis } from '../../util/states.js';
|
||||
import ChartView from '../../view/Chart.js';
|
||||
import labelLayout from './labelLayout.js';
|
||||
import { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper.js';
|
||||
import { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle.js';
|
||||
import { getSectorCornerRadius } from '../helper/sectorHelper.js';
|
||||
import { saveOldStyle } from '../../animation/basicTransition.js';
|
||||
import { getBasicPieLayout, getSeriesLayoutData } from './pieLayout.js';
|
||||
/**
|
||||
* Piece of pie including Sector, Label, LabelLine
|
||||
*/
|
||||
var PiePiece = /** @class */function (_super) {
|
||||
__extends(PiePiece, _super);
|
||||
function PiePiece(data, idx, startAngle) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.z2 = 2;
|
||||
var text = new graphic.Text();
|
||||
_this.setTextContent(text);
|
||||
_this.updateData(data, idx, startAngle, true);
|
||||
return _this;
|
||||
}
|
||||
PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {
|
||||
var sector = this;
|
||||
var seriesModel = data.hostModel;
|
||||
var itemModel = data.getItemModel(idx);
|
||||
var emphasisModel = itemModel.getModel('emphasis');
|
||||
var layout = data.getItemLayout(idx);
|
||||
// cornerRadius & innerCornerRadius doesn't exist in the item layout. Use `0` if null value is specified.
|
||||
// see `setItemLayout` in `pieLayout.ts`.
|
||||
var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout, true), layout);
|
||||
// Ignore NaN data.
|
||||
if (isNaN(sectorShape.startAngle)) {
|
||||
// Use NaN shape to avoid drawing shape.
|
||||
sector.setShape(sectorShape);
|
||||
return;
|
||||
}
|
||||
if (firstCreate) {
|
||||
sector.setShape(sectorShape);
|
||||
var animationType = seriesModel.getShallow('animationType');
|
||||
if (seriesModel.ecModel.ssr) {
|
||||
// Use scale animation in SSR mode(opacity?)
|
||||
// Because CSS SVG animation doesn't support very customized shape animation.
|
||||
graphic.initProps(sector, {
|
||||
scaleX: 0,
|
||||
scaleY: 0
|
||||
}, seriesModel, {
|
||||
dataIndex: idx,
|
||||
isFrom: true
|
||||
});
|
||||
sector.originX = sectorShape.cx;
|
||||
sector.originY = sectorShape.cy;
|
||||
} else if (animationType === 'scale') {
|
||||
sector.shape.r = layout.r0;
|
||||
graphic.initProps(sector, {
|
||||
shape: {
|
||||
r: layout.r
|
||||
}
|
||||
}, seriesModel, idx);
|
||||
}
|
||||
// Expansion
|
||||
else {
|
||||
if (startAngle != null) {
|
||||
sector.setShape({
|
||||
startAngle: startAngle,
|
||||
endAngle: startAngle
|
||||
});
|
||||
graphic.initProps(sector, {
|
||||
shape: {
|
||||
startAngle: layout.startAngle,
|
||||
endAngle: layout.endAngle
|
||||
}
|
||||
}, seriesModel, idx);
|
||||
} else {
|
||||
sector.shape.endAngle = layout.startAngle;
|
||||
graphic.updateProps(sector, {
|
||||
shape: {
|
||||
endAngle: layout.endAngle
|
||||
}
|
||||
}, seriesModel, idx);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
saveOldStyle(sector);
|
||||
// Transition animation from the old shape
|
||||
graphic.updateProps(sector, {
|
||||
shape: sectorShape
|
||||
}, seriesModel, idx);
|
||||
}
|
||||
sector.useStyle(data.getItemVisual(idx, 'style'));
|
||||
setStatesStylesFromModel(sector, itemModel);
|
||||
var midAngle = (layout.startAngle + layout.endAngle) / 2;
|
||||
var offset = seriesModel.get('selectedOffset');
|
||||
var dx = Math.cos(midAngle) * offset;
|
||||
var dy = Math.sin(midAngle) * offset;
|
||||
var cursorStyle = itemModel.getShallow('cursor');
|
||||
cursorStyle && sector.attr('cursor', cursorStyle);
|
||||
this._updateLabel(seriesModel, data, idx);
|
||||
sector.ensureState('emphasis').shape = extend({
|
||||
r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)
|
||||
}, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));
|
||||
extend(sector.ensureState('select'), {
|
||||
x: dx,
|
||||
y: dy,
|
||||
shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)
|
||||
});
|
||||
extend(sector.ensureState('blur'), {
|
||||
shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)
|
||||
});
|
||||
var labelLine = sector.getTextGuideLine();
|
||||
var labelText = sector.getTextContent();
|
||||
labelLine && extend(labelLine.ensureState('select'), {
|
||||
x: dx,
|
||||
y: dy
|
||||
});
|
||||
// TODO: needs dx, dy in zrender?
|
||||
extend(labelText.ensureState('select'), {
|
||||
x: dx,
|
||||
y: dy
|
||||
});
|
||||
toggleHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));
|
||||
};
|
||||
PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {
|
||||
var sector = this;
|
||||
var itemModel = data.getItemModel(idx);
|
||||
var labelLineModel = itemModel.getModel('labelLine');
|
||||
var style = data.getItemVisual(idx, 'style');
|
||||
var visualColor = style && style.fill;
|
||||
var visualOpacity = style && style.opacity;
|
||||
setLabelStyle(sector, getLabelStatesModels(itemModel), {
|
||||
labelFetcher: data.hostModel,
|
||||
labelDataIndex: idx,
|
||||
inheritColor: visualColor,
|
||||
defaultOpacity: visualOpacity,
|
||||
defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)
|
||||
});
|
||||
var labelText = sector.getTextContent();
|
||||
// Set textConfig on sector.
|
||||
sector.setTextConfig({
|
||||
// reset position, rotation
|
||||
position: null,
|
||||
rotation: null
|
||||
});
|
||||
// Make sure update style on labelText after setLabelStyle.
|
||||
// Because setLabelStyle will replace a new style on it.
|
||||
labelText.attr({
|
||||
z2: 10
|
||||
});
|
||||
var labelPosition = seriesModel.get(['label', 'position']);
|
||||
if (labelPosition !== 'outside' && labelPosition !== 'outer') {
|
||||
sector.removeTextGuideLine();
|
||||
} else {
|
||||
var polyline = this.getTextGuideLine();
|
||||
if (!polyline) {
|
||||
polyline = new graphic.Polyline();
|
||||
this.setTextGuideLine(polyline);
|
||||
}
|
||||
// Default use item visual color
|
||||
setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {
|
||||
stroke: visualColor,
|
||||
opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)
|
||||
});
|
||||
}
|
||||
};
|
||||
return PiePiece;
|
||||
}(graphic.Sector);
|
||||
// Pie view
|
||||
var PieView = /** @class */function (_super) {
|
||||
__extends(PieView, _super);
|
||||
function PieView() {
|
||||
var _this = _super !== null && _super.apply(this, arguments) || this;
|
||||
_this.ignoreLabelLineUpdate = true;
|
||||
return _this;
|
||||
}
|
||||
PieView.prototype.render = function (seriesModel, ecModel, api, payload) {
|
||||
var data = seriesModel.getData();
|
||||
var oldData = this._data;
|
||||
var group = this.group;
|
||||
var startAngle;
|
||||
// First render
|
||||
if (!oldData && data.count() > 0) {
|
||||
var shape = data.getItemLayout(0);
|
||||
for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {
|
||||
shape = data.getItemLayout(s);
|
||||
}
|
||||
if (shape) {
|
||||
startAngle = shape.startAngle;
|
||||
}
|
||||
}
|
||||
// remove empty-circle if it exists
|
||||
if (this._emptyCircleSector) {
|
||||
group.remove(this._emptyCircleSector);
|
||||
}
|
||||
// when all data are filtered, show lightgray empty circle
|
||||
if (data.count() === 0 && seriesModel.get('showEmptyCircle')) {
|
||||
var layoutData = getSeriesLayoutData(seriesModel);
|
||||
var sector = new graphic.Sector({
|
||||
shape: extend(getBasicPieLayout(seriesModel, api), layoutData)
|
||||
});
|
||||
sector.useStyle(seriesModel.getModel('emptyCircleStyle').getItemStyle());
|
||||
this._emptyCircleSector = sector;
|
||||
group.add(sector);
|
||||
}
|
||||
data.diff(oldData).add(function (idx) {
|
||||
var piePiece = new PiePiece(data, idx, startAngle);
|
||||
data.setItemGraphicEl(idx, piePiece);
|
||||
group.add(piePiece);
|
||||
}).update(function (newIdx, oldIdx) {
|
||||
var piePiece = oldData.getItemGraphicEl(oldIdx);
|
||||
piePiece.updateData(data, newIdx, startAngle);
|
||||
piePiece.off('click');
|
||||
group.add(piePiece);
|
||||
data.setItemGraphicEl(newIdx, piePiece);
|
||||
}).remove(function (idx) {
|
||||
var piePiece = oldData.getItemGraphicEl(idx);
|
||||
graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);
|
||||
}).execute();
|
||||
labelLayout(seriesModel);
|
||||
// Always use initial animation.
|
||||
if (seriesModel.get('animationTypeUpdate') !== 'expansion') {
|
||||
this._data = data;
|
||||
}
|
||||
};
|
||||
PieView.prototype.dispose = function () {};
|
||||
PieView.prototype.containPoint = function (point, seriesModel) {
|
||||
var data = seriesModel.getData();
|
||||
var itemLayout = data.getItemLayout(0);
|
||||
if (itemLayout) {
|
||||
var dx = point[0] - itemLayout.cx;
|
||||
var dy = point[1] - itemLayout.cy;
|
||||
var radius = Math.sqrt(dx * dx + dy * dy);
|
||||
return radius <= itemLayout.r && radius >= itemLayout.r0;
|
||||
}
|
||||
};
|
||||
PieView.type = 'pie';
|
||||
return PieView;
|
||||
}(ChartView);
|
||||
export default PieView;
|
Reference in New Issue
Block a user