逐步完成前后端服务器
This commit is contained in:
187
frontend/node_modules/echarts/lib/chart/treemap/Breadcrumb.js
generated
vendored
Normal file
187
frontend/node_modules/echarts/lib/chart/treemap/Breadcrumb.js
generated
vendored
Normal file
@ -0,0 +1,187 @@
|
||||
|
||||
/*
|
||||
* 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 * as graphic from '../../util/graphic.js';
|
||||
import { getECData } from '../../util/innerStore.js';
|
||||
import * as layout from '../../util/layout.js';
|
||||
import { wrapTreePathInfo } from '../helper/treeHelper.js';
|
||||
import { curry, defaults } from 'zrender/lib/core/util.js';
|
||||
import { convertOptionIdName } from '../../util/model.js';
|
||||
import { toggleHoverEmphasis, Z2_EMPHASIS_LIFT } from '../../util/states.js';
|
||||
import { createTextStyle } from '../../label/labelStyle.js';
|
||||
var TEXT_PADDING = 8;
|
||||
var ITEM_GAP = 8;
|
||||
var ARRAY_LENGTH = 5;
|
||||
var Breadcrumb = /** @class */function () {
|
||||
function Breadcrumb(containerGroup) {
|
||||
this.group = new graphic.Group();
|
||||
containerGroup.add(this.group);
|
||||
}
|
||||
Breadcrumb.prototype.render = function (seriesModel, api, targetNode, onSelect) {
|
||||
var model = seriesModel.getModel('breadcrumb');
|
||||
var thisGroup = this.group;
|
||||
thisGroup.removeAll();
|
||||
if (!model.get('show') || !targetNode) {
|
||||
return;
|
||||
}
|
||||
var normalStyleModel = model.getModel('itemStyle');
|
||||
var emphasisModel = model.getModel('emphasis');
|
||||
var textStyleModel = normalStyleModel.getModel('textStyle');
|
||||
var emphasisTextStyleModel = emphasisModel.getModel(['itemStyle', 'textStyle']);
|
||||
var layoutParam = {
|
||||
pos: {
|
||||
left: model.get('left'),
|
||||
right: model.get('right'),
|
||||
top: model.get('top'),
|
||||
bottom: model.get('bottom')
|
||||
},
|
||||
box: {
|
||||
width: api.getWidth(),
|
||||
height: api.getHeight()
|
||||
},
|
||||
emptyItemWidth: model.get('emptyItemWidth'),
|
||||
totalWidth: 0,
|
||||
renderList: []
|
||||
};
|
||||
this._prepare(targetNode, layoutParam, textStyleModel);
|
||||
this._renderContent(seriesModel, layoutParam, normalStyleModel, emphasisModel, textStyleModel, emphasisTextStyleModel, onSelect);
|
||||
layout.positionElement(thisGroup, layoutParam.pos, layoutParam.box);
|
||||
};
|
||||
/**
|
||||
* Prepare render list and total width
|
||||
* @private
|
||||
*/
|
||||
Breadcrumb.prototype._prepare = function (targetNode, layoutParam, textStyleModel) {
|
||||
for (var node = targetNode; node; node = node.parentNode) {
|
||||
var text = convertOptionIdName(node.getModel().get('name'), '');
|
||||
var textRect = textStyleModel.getTextRect(text);
|
||||
var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);
|
||||
layoutParam.totalWidth += itemWidth + ITEM_GAP;
|
||||
layoutParam.renderList.push({
|
||||
node: node,
|
||||
text: text,
|
||||
width: itemWidth
|
||||
});
|
||||
}
|
||||
};
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
Breadcrumb.prototype._renderContent = function (seriesModel, layoutParam, normalStyleModel, emphasisModel, textStyleModel, emphasisTextStyleModel, onSelect) {
|
||||
// Start rendering.
|
||||
var lastX = 0;
|
||||
var emptyItemWidth = layoutParam.emptyItemWidth;
|
||||
var height = seriesModel.get(['breadcrumb', 'height']);
|
||||
var availableSize = layout.getAvailableSize(layoutParam.pos, layoutParam.box);
|
||||
var totalWidth = layoutParam.totalWidth;
|
||||
var renderList = layoutParam.renderList;
|
||||
var emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();
|
||||
for (var i = renderList.length - 1; i >= 0; i--) {
|
||||
var item = renderList[i];
|
||||
var itemNode = item.node;
|
||||
var itemWidth = item.width;
|
||||
var text = item.text;
|
||||
// Hdie text and shorten width if necessary.
|
||||
if (totalWidth > availableSize.width) {
|
||||
totalWidth -= itemWidth - emptyItemWidth;
|
||||
itemWidth = emptyItemWidth;
|
||||
text = null;
|
||||
}
|
||||
var el = new graphic.Polygon({
|
||||
shape: {
|
||||
points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)
|
||||
},
|
||||
style: defaults(normalStyleModel.getItemStyle(), {
|
||||
lineJoin: 'bevel'
|
||||
}),
|
||||
textContent: new graphic.Text({
|
||||
style: createTextStyle(textStyleModel, {
|
||||
text: text
|
||||
})
|
||||
}),
|
||||
textConfig: {
|
||||
position: 'inside'
|
||||
},
|
||||
z2: Z2_EMPHASIS_LIFT * 1e4,
|
||||
onclick: curry(onSelect, itemNode)
|
||||
});
|
||||
el.disableLabelAnimation = true;
|
||||
el.getTextContent().ensureState('emphasis').style = createTextStyle(emphasisTextStyleModel, {
|
||||
text: text
|
||||
});
|
||||
el.ensureState('emphasis').style = emphasisItemStyle;
|
||||
toggleHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'), emphasisModel.get('disabled'));
|
||||
this.group.add(el);
|
||||
packEventData(el, seriesModel, itemNode);
|
||||
lastX += itemWidth + ITEM_GAP;
|
||||
}
|
||||
};
|
||||
Breadcrumb.prototype.remove = function () {
|
||||
this.group.removeAll();
|
||||
};
|
||||
return Breadcrumb;
|
||||
}();
|
||||
function makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {
|
||||
var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]];
|
||||
!tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);
|
||||
!head && points.push([x, y + itemHeight / 2]);
|
||||
return points;
|
||||
}
|
||||
// Package custom mouse event.
|
||||
function packEventData(el, seriesModel, itemNode) {
|
||||
getECData(el).eventData = {
|
||||
componentType: 'series',
|
||||
componentSubType: 'treemap',
|
||||
componentIndex: seriesModel.componentIndex,
|
||||
seriesIndex: seriesModel.seriesIndex,
|
||||
seriesName: seriesModel.name,
|
||||
seriesType: 'treemap',
|
||||
selfType: 'breadcrumb',
|
||||
nodeData: {
|
||||
dataIndex: itemNode && itemNode.dataIndex,
|
||||
name: itemNode && itemNode.name
|
||||
},
|
||||
treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)
|
||||
};
|
||||
}
|
||||
export default Breadcrumb;
|
Reference in New Issue
Block a user