123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- var _util = require("zrender/lib/core/util");
- var each = _util.each;
- var isString = _util.isString;
- function enableDataStack(seriesModel, dimensionInfoList, opt) {
- opt = opt || {};
- var byIndex = opt.byIndex;
- var stackedCoordDimension = opt.stackedCoordDimension;
- var mayStack = !!(seriesModel && seriesModel.get('stack'));
- var stackedByDimInfo;
- var stackedDimInfo;
- var stackResultDimension;
- var stackedOverDimension;
- each(dimensionInfoList, function (dimensionInfo, index) {
- if (isString(dimensionInfo)) {
- dimensionInfoList[index] = dimensionInfo = {
- name: dimensionInfo
- };
- }
- if (mayStack && !dimensionInfo.isExtraCoord) {
-
- if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {
- stackedByDimInfo = dimensionInfo;
- }
- if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {
- stackedDimInfo = dimensionInfo;
- }
- }
- });
- if (stackedDimInfo && !byIndex && !stackedByDimInfo) {
-
-
- byIndex = true;
- }
-
-
- if (stackedDimInfo) {
-
- stackResultDimension = '__\0ecstackresult';
- stackedOverDimension = '__\0ecstackedover';
- if (stackedByDimInfo) {
- stackedByDimInfo.createInvertedIndices = true;
- }
- var stackedDimCoordDim = stackedDimInfo.coordDim;
- var stackedDimType = stackedDimInfo.type;
- var stackedDimCoordIndex = 0;
- each(dimensionInfoList, function (dimensionInfo) {
- if (dimensionInfo.coordDim === stackedDimCoordDim) {
- stackedDimCoordIndex++;
- }
- });
- dimensionInfoList.push({
- name: stackResultDimension,
- coordDim: stackedDimCoordDim,
- coordDimIndex: stackedDimCoordIndex,
- type: stackedDimType,
- isExtraCoord: true,
- isCalculationCoord: true
- });
- stackedDimCoordIndex++;
- dimensionInfoList.push({
- name: stackedOverDimension,
-
-
- coordDim: stackedOverDimension,
- coordDimIndex: stackedDimCoordIndex,
- type: stackedDimType,
- isExtraCoord: true,
- isCalculationCoord: true
- });
- }
- return {
- stackedDimension: stackedDimInfo && stackedDimInfo.name,
- stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,
- isStackedByIndex: byIndex,
- stackedOverDimension: stackedOverDimension,
- stackResultDimension: stackResultDimension
- };
- }
- function isDimensionStacked(data, stackedDim
- /*, stackedByDim*/
- ) {
-
-
- return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');
-
-
-
-
- }
- function getStackedDimension(data, targetDim) {
- return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim;
- }
- exports.enableDataStack = enableDataStack;
- exports.isDimensionStacked = isDimensionStacked;
- exports.getStackedDimension = getStackedDimension;
|