MCPcopy Index your code
hub / github.com/SuperMap/iClient-JavaScript / completeDimensions

Function completeDimensions

libs/echarts/echarts.simple.js:32096–32283  ·  view source on GitHub ↗

* @see {module:echarts/test/ut/spec/data/completeDimensions} * * This method builds the relationship between: * + "what the coord sys or series requires (see `sysDims`)", * + "what the user defines (in `encode` and `dimensions`, see `opt.dimsDef` and `opt.encodeDef`)" * + "what the data source

(sysDims, source, opt)

Source from the content-addressed store, hash-verified

32094 * @return {Array.<module:data/DataDimensionInfo>}
32095 */
32096function completeDimensions(sysDims, source, opt) {
32097 if (!Source.isInstance(source)) {
32098 source = Source.seriesDataToSource(source);
32099 }
32100
32101 opt = opt || {};
32102 sysDims = (sysDims || []).slice();
32103 var dimsDef = (opt.dimsDef || []).slice();
32104 var dataDimNameMap = createHashMap();
32105 var coordDimNameMap = createHashMap();
32106 // var valueCandidate;
32107 var result = [];
32108
32109 var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);
32110
32111 // Apply user defined dims (`name` and `type`) and init result.
32112 for (var i = 0; i < dimCount; i++) {
32113 var dimDefItem = dimsDef[i] = extend(
32114 {}, isObject$1(dimsDef[i]) ? dimsDef[i] : {name: dimsDef[i]}
32115 );
32116 var userDimName = dimDefItem.name;
32117 var resultItem = result[i] = new DataDimensionInfo();
32118 // Name will be applied later for avoiding duplication.
32119 if (userDimName != null && dataDimNameMap.get(userDimName) == null) {
32120 // Only if `series.dimensions` is defined in option
32121 // displayName, will be set, and dimension will be diplayed vertically in
32122 // tooltip by default.
32123 resultItem.name = resultItem.displayName = userDimName;
32124 dataDimNameMap.set(userDimName, i);
32125 }
32126 dimDefItem.type != null && (resultItem.type = dimDefItem.type);
32127 dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);
32128 }
32129
32130 var encodeDef = opt.encodeDef;
32131 if (!encodeDef && opt.encodeDefaulter) {
32132 encodeDef = opt.encodeDefaulter(source, dimCount);
32133 }
32134 encodeDef = createHashMap(encodeDef);
32135
32136 // Set `coordDim` and `coordDimIndex` by `encodeDef` and normalize `encodeDef`.
32137 encodeDef.each(function (dataDims, coordDim) {
32138 dataDims = normalizeToArray(dataDims).slice();
32139
32140 // Note: It is allowed that `dataDims.length` is `0`, e.g., options is
32141 // `{encode: {x: -1, y: 1}}`. Should not filter anything in
32142 // this case.
32143 if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {
32144 encodeDef.set(coordDim, false);
32145 return;
32146 }
32147
32148 var validDataDims = encodeDef.set(coordDim, []);
32149 each$1(dataDims, function (resultDimIdx, idx) {
32150 // The input resultDimIdx can be dim name or index.
32151 isString(resultDimIdx) && (resultDimIdx = dataDimNameMap.get(resultDimIdx));
32152 if (resultDimIdx != null && resultDimIdx < dimCount) {
32153 validDataDims[idx] = resultDimIdx;

Callers 1

createDimensionsFunction · 0.70

Calls 15

pushMethod · 0.80
createHashMapFunction · 0.70
getDimCountFunction · 0.70
extendFunction · 0.70
isObject$1Function · 0.70
normalizeToArrayFunction · 0.70
isStringFunction · 0.70
each$1Function · 0.70
applyDimFunction · 0.70
cloneFunction · 0.70
defaultsFunction · 0.70
genNameFunction · 0.70

Tested by

no test coverage detected