123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- var _util = require("zrender/lib/core/util");
- var each = _util.each;
- var createHashMap = _util.createHashMap;
- var assert = _util.assert;
- var _config = require("../../config");
- var __DEV__ = _config.__DEV__;
- var OTHER_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);
- function summarizeDimensions(data) {
- var summary = {};
- var encode = summary.encode = {};
- var notExtraCoordDimMap = createHashMap();
- var defaultedLabel = [];
- var defaultedTooltip = [];
- var userOutput = summary.userOutput = {
- dimensionNames: data.dimensions.slice(),
- encode: {}
- };
- each(data.dimensions, function (dimName) {
- var dimItem = data.getDimensionInfo(dimName);
- var coordDim = dimItem.coordDim;
- if (coordDim) {
- var coordDimIndex = dimItem.coordDimIndex;
- getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;
- if (!dimItem.isExtraCoord) {
- notExtraCoordDimMap.set(coordDim, 1);
-
-
-
- if (mayLabelDimType(dimItem.type)) {
- defaultedLabel[0] = dimName;
- }
-
- getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;
- }
- if (dimItem.defaultTooltip) {
- defaultedTooltip.push(dimName);
- }
- }
- OTHER_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];
-
- dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);
- });
- summary.dataDimsOnCoord = dataDimsOnCoord;
- summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;
- var encodeLabel = encode.label;
-
- 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;
- return summary;
- }
- function getOrCreateEncodeArr(encode, dim) {
- if (!encode.hasOwnProperty(dim)) {
- encode[dim] = [];
- }
- return encode[dim];
- }
- function getDimensionTypeByAxis(axisType) {
- return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';
- }
- function mayLabelDimType(dimType) {
-
-
- return !(dimType === 'ordinal' || dimType === 'time');
- }
- exports.OTHER_DIMENSIONS = OTHER_DIMENSIONS;
- exports.summarizeDimensions = summarizeDimensions;
- exports.getDimensionTypeByAxis = getDimensionTypeByAxis;
|