MCPcopy
hub / github.com/tdewolff/minify / completeDimensions

Function completeDimensions

_benchmarks/sample_echarts.js:34109–34285  ·  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`)" * + "w

(sysDims, source, opt)

Source from the content-addressed store, hash-verified

34107 */
34108
34109 function completeDimensions(sysDims, source, opt) {
34110 if (!isSourceInstance(source)) {
34111 source = createSourceFromSeriesDataOption(source);
34112 }
34113
34114 opt = opt || {};
34115 sysDims = (sysDims || []).slice();
34116 var dimsDef = (opt.dimsDef || []).slice();
34117 var dataDimNameMap = createHashMap();
34118 var coordDimNameMap = createHashMap(); // let valueCandidate;
34119
34120 var result = [];
34121 var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount); // Apply user defined dims (`name` and `type`) and init result.
34122
34123 for (var i = 0; i < dimCount; i++) {
34124 var dimDefItemRaw = dimsDef[i];
34125 var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : {
34126 name: dimDefItemRaw
34127 });
34128 var userDimName = dimDefItem.name;
34129 var resultItem = result[i] = new DataDimensionInfo(); // Name will be applied later for avoiding duplication.
34130
34131 if (userDimName != null && dataDimNameMap.get(userDimName) == null) {
34132 // Only if `series.dimensions` is defined in option
34133 // displayName, will be set, and dimension will be diplayed vertically in
34134 // tooltip by default.
34135 resultItem.name = resultItem.displayName = userDimName;
34136 dataDimNameMap.set(userDimName, i);
34137 }
34138
34139 dimDefItem.type != null && (resultItem.type = dimDefItem.type);
34140 dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);
34141 }
34142
34143 var encodeDef = opt.encodeDef;
34144
34145 if (!encodeDef && opt.encodeDefaulter) {
34146 encodeDef = opt.encodeDefaulter(source, dimCount);
34147 }
34148
34149 var encodeDefMap = createHashMap(encodeDef); // Set `coordDim` and `coordDimIndex` by `encodeDefMap` and normalize `encodeDefMap`.
34150
34151 encodeDefMap.each(function (dataDimsRaw, coordDim) {
34152 var dataDims = normalizeToArray(dataDimsRaw).slice(); // Note: It is allowed that `dataDims.length` is `0`, e.g., options is
34153 // `{encode: {x: -1, y: 1}}`. Should not filter anything in
34154 // this case.
34155
34156 if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {
34157 encodeDefMap.set(coordDim, false);
34158 return;
34159 }
34160
34161 var validDataDims = encodeDefMap.set(coordDim, []);
34162 each(dataDims, function (resultDimIdxOrName, idx) {
34163 // The input resultDimIdx can be dim name or index.
34164 var resultDimIdx = isString(resultDimIdxOrName) ? dataDimNameMap.get(resultDimIdxOrName) : resultDimIdxOrName;
34165
34166 if (resultDimIdx != null && resultDimIdx < dimCount) {

Callers 1

createDimensionsFunction · 0.85

Calls 14

isSourceInstanceFunction · 0.85
createHashMapFunction · 0.85
getDimCountFunction · 0.85
normalizeToArrayFunction · 0.85
applyDimFunction · 0.85
genNameFunction · 0.85
guessOrdinalFunction · 0.85
extendFunction · 0.70
isObjectFunction · 0.70
isStringFunction · 0.70
eachFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…