UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

94 lines (93 loc) 3.33 kB
import { createHashMap, each, map } from "../../../../zrender/lib/core/util.mjs"; import { VISUAL_DIMENSIONS } from "../../util/types.mjs"; var DimensionUserOuput = function() { function DimensionUserOuput2(encode, dimRequest) { this._encode = encode; this._schema = dimRequest; } DimensionUserOuput2.prototype.get = function() { return { fullDimensions: this._getFullDimensionNames(), encode: this._encode }; }; DimensionUserOuput2.prototype._getFullDimensionNames = function() { if (!this._cachedDimNames) { this._cachedDimNames = this._schema ? this._schema.makeOutputDimensionNames() : []; } return this._cachedDimNames; }; return DimensionUserOuput2; }(); 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) { var coordDimIndex = dimItem.coordDimIndex; getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName; if (!dimItem.isExtraCoord) { notExtraCoordDimMap.set(coordDim, 1); if (mayLabelDimType(dimItem.type)) { defaultedLabel[0] = dimName; } 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]; 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; 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]; } function getDimensionTypeByAxis(axisType) { return axisType === "category" ? "ordinal" : axisType === "time" ? "time" : "float"; } function mayLabelDimType(dimType) { return !(dimType === "ordinal" || dimType === "time"); } export { getDimensionTypeByAxis, summarizeDimensions };