逐步完成前后端服务器
This commit is contained in:
172
frontend/node_modules/echarts/lib/data/helper/dimensionHelper.js
generated
vendored
Normal file
172
frontend/node_modules/echarts/lib/data/helper/dimensionHelper.js
generated
vendored
Normal file
@ -0,0 +1,172 @@
|
||||
|
||||
/*
|
||||
* 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 { each, createHashMap, assert, map } from 'zrender/lib/core/util.js';
|
||||
import { VISUAL_DIMENSIONS } from '../../util/types.js';
|
||||
var DimensionUserOuput = /** @class */function () {
|
||||
function DimensionUserOuput(encode, dimRequest) {
|
||||
this._encode = encode;
|
||||
this._schema = dimRequest;
|
||||
}
|
||||
DimensionUserOuput.prototype.get = function () {
|
||||
return {
|
||||
// Do not generate full dimension name until fist used.
|
||||
fullDimensions: this._getFullDimensionNames(),
|
||||
encode: this._encode
|
||||
};
|
||||
};
|
||||
/**
|
||||
* Get all data store dimension names.
|
||||
* Theoretically a series data store is defined both by series and used dataset (if any).
|
||||
* If some dimensions are omitted for performance reason in `this.dimensions`,
|
||||
* the dimension name may not be auto-generated if user does not specify a dimension name.
|
||||
* In this case, the dimension name is `null`/`undefined`.
|
||||
*/
|
||||
DimensionUserOuput.prototype._getFullDimensionNames = function () {
|
||||
if (!this._cachedDimNames) {
|
||||
this._cachedDimNames = this._schema ? this._schema.makeOutputDimensionNames() : [];
|
||||
}
|
||||
return this._cachedDimNames;
|
||||
};
|
||||
return DimensionUserOuput;
|
||||
}();
|
||||
;
|
||||
export function summarizeDimensions(data, schema) {
|
||||
var summary = {};
|
||||
var encode = summary.encode = {};
|
||||
var notExtraCoordDimMap = createHashMap();
|
||||
var defaultedLabel = [];
|
||||
var defaultedTooltip = [];
|
||||
var userOutputEncode = {};
|
||||
each(data.dimensions, function (dimName) {
|
||||
var dimItem = data.getDimensionInfo(dimName);
|
||||
var coordDim = dimItem.coordDim;
|
||||
if (coordDim) {
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
assert(VISUAL_DIMENSIONS.get(coordDim) == null);
|
||||
}
|
||||
var coordDimIndex = dimItem.coordDimIndex;
|
||||
getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;
|
||||
if (!dimItem.isExtraCoord) {
|
||||
notExtraCoordDimMap.set(coordDim, 1);
|
||||
// Use the last coord dim (and label friendly) as default label,
|
||||
// because when dataset is used, it is hard to guess which dimension
|
||||
// can be value dimension. If both show x, y on label is not look good,
|
||||
// and conventionally y axis is focused more.
|
||||
if (mayLabelDimType(dimItem.type)) {
|
||||
defaultedLabel[0] = dimName;
|
||||
}
|
||||
// User output encode do not contain generated coords.
|
||||
// And it only has index. User can use index to retrieve value from the raw item array.
|
||||
getOrCreateEncodeArr(userOutputEncode, coordDim)[coordDimIndex] = data.getDimensionIndex(dimItem.name);
|
||||
}
|
||||
if (dimItem.defaultTooltip) {
|
||||
defaultedTooltip.push(dimName);
|
||||
}
|
||||
}
|
||||
VISUAL_DIMENSIONS.each(function (v, otherDim) {
|
||||
var encodeArr = getOrCreateEncodeArr(encode, otherDim);
|
||||
var dimIndex = dimItem.otherDims[otherDim];
|
||||
if (dimIndex != null && dimIndex !== false) {
|
||||
encodeArr[dimIndex] = dimItem.name;
|
||||
}
|
||||
});
|
||||
});
|
||||
var dataDimsOnCoord = [];
|
||||
var encodeFirstDimNotExtra = {};
|
||||
notExtraCoordDimMap.each(function (v, coordDim) {
|
||||
var dimArr = encode[coordDim];
|
||||
encodeFirstDimNotExtra[coordDim] = dimArr[0];
|
||||
// Not necessary to remove duplicate, because a data
|
||||
// dim canot on more than one coordDim.
|
||||
dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);
|
||||
});
|
||||
summary.dataDimsOnCoord = dataDimsOnCoord;
|
||||
summary.dataDimIndicesOnCoord = map(dataDimsOnCoord, function (dimName) {
|
||||
return data.getDimensionInfo(dimName).storeDimIndex;
|
||||
});
|
||||
summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;
|
||||
var encodeLabel = encode.label;
|
||||
// FIXME `encode.label` is not recommended, because formatter cannot be set
|
||||
// in this way. Use label.formatter instead. Maybe remove this approach someday.
|
||||
if (encodeLabel && encodeLabel.length) {
|
||||
defaultedLabel = encodeLabel.slice();
|
||||
}
|
||||
var encodeTooltip = encode.tooltip;
|
||||
if (encodeTooltip && encodeTooltip.length) {
|
||||
defaultedTooltip = encodeTooltip.slice();
|
||||
} else if (!defaultedTooltip.length) {
|
||||
defaultedTooltip = defaultedLabel.slice();
|
||||
}
|
||||
encode.defaultedLabel = defaultedLabel;
|
||||
encode.defaultedTooltip = defaultedTooltip;
|
||||
summary.userOutput = new DimensionUserOuput(userOutputEncode, schema);
|
||||
return summary;
|
||||
}
|
||||
function getOrCreateEncodeArr(encode, dim) {
|
||||
if (!encode.hasOwnProperty(dim)) {
|
||||
encode[dim] = [];
|
||||
}
|
||||
return encode[dim];
|
||||
}
|
||||
// FIXME:TS should be type `AxisType`
|
||||
export function getDimensionTypeByAxis(axisType) {
|
||||
return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';
|
||||
}
|
||||
function mayLabelDimType(dimType) {
|
||||
// In most cases, ordinal and time do not suitable for label.
|
||||
// Ordinal info can be displayed on axis. Time is too long.
|
||||
return !(dimType === 'ordinal' || dimType === 'time');
|
||||
}
|
||||
// function findTheLastDimMayLabel(data) {
|
||||
// // Get last value dim
|
||||
// let dimensions = data.dimensions.slice();
|
||||
// let valueType;
|
||||
// let valueDim;
|
||||
// while (dimensions.length && (
|
||||
// valueDim = dimensions.pop(),
|
||||
// valueType = data.getDimensionInfo(valueDim).type,
|
||||
// valueType === 'ordinal' || valueType === 'time'
|
||||
// )) {} // jshint ignore:line
|
||||
// return valueDim;
|
||||
// }
|
Reference in New Issue
Block a user