Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// dimension of data. But `data.encode` has higher priority.
// Moreover, parallelModel.dimension should not be regarded as data
// dimensions. Consider dimensions = ['dim4', 'dim2', 'dim6'];
if (source.encodeDefine) {
return;
}
var parallelModel = seriesModel.ecModel.getComponent(
'parallel', seriesModel.get('parallelIndex')
);
if (!parallelModel) {
return;
}
var encodeDefine = source.encodeDefine = createHashMap();
each(parallelModel.dimensions, function (axisDim) {
var dataDimIndex = convertDimNameToNumber(axisDim);
encodeDefine.set(axisDim, dataDimIndex);
});
}
function createSeriesStageTask(scheduler, stageHandler, stageHandlerRecord, ecModel, api) {
var seriesTaskMap = stageHandlerRecord.seriesTaskMap
|| (stageHandlerRecord.seriesTaskMap = createHashMap());
var seriesType = stageHandler.seriesType;
var getTargetSeries = stageHandler.getTargetSeries;
// If a stageHandler should cover all series, `createOnAllSeries` should be declared mandatorily,
// to avoid some typo or abuse. Otherwise if an extension do not specify a `seriesType`,
// it works but it may cause other irrelevant charts blocked.
if (stageHandler.createOnAllSeries) {
ecModel.eachRawSeries(create);
}
else if (seriesType) {
ecModel.eachRawSeriesByType(seriesType, create);
}
else if (getTargetSeries) {
getTargetSeries(ecModel, api).each(create);
}
export default function (ecModel) {
var stackInfoMap = createHashMap();
ecModel.eachSeries(function (seriesModel) {
var stack = seriesModel.get('stack');
// Compatibal: when `stack` is set as '', do not stack.
if (stack) {
var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);
var data = seriesModel.getData();
var stackInfo = {
// Used for calculate axis extent automatically.
stackResultDimension: data.getCalculationInfo('stackResultDimension'),
stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),
stackedDimension: data.getCalculationInfo('stackedDimension'),
stackedByDimension: data.getCalculationInfo('stackedByDimension'),
isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),
data: data,
seriesModel: seriesModel
seriesModel, datasetModel, data, sourceFormat, seriesLayoutBy, completeResult
) {
var coordSysDefine = getCoordSysDefineBySeries(seriesModel);
var encode = {};
// var encodeTooltip = [];
// var encodeLabel = [];
var encodeItemName = [];
var encodeSeriesName = [];
var seriesType = seriesModel.subType;
// ??? TODO refactor: provide by series itself.
// Consider the case: 'map' series is based on geo coordSys,
// 'graph', 'heatmap' can be based on cartesian. But can not
// give default rule simply here.
var nSeriesMap = createHashMap(['pie', 'map', 'funnel']);
var cSeriesMap = createHashMap([
'line', 'bar', 'pictorialBar', 'scatter', 'effectScatter', 'candlestick', 'boxplot'
]);
// Usually in this case series will use the first data
// dimension as the "value" dimension, or other default
// processes respectively.
if (coordSysDefine && cSeriesMap.get(seriesType) != null) {
var ecModel = seriesModel.ecModel;
var datasetMap = inner(ecModel).datasetMap;
var key = datasetModel.uid + '_' + seriesLayoutBy;
var datasetRecord = datasetMap.get(key)
|| datasetMap.set(key, {categoryWayDim: 1, valueWayDim: 0});
// TODO
// Auto detect first time axis and do arrangement.
each(coordSysDefine.coordSysDims, function (coordDim) {
function createOverallStageTask(scheduler, stageHandler, stageHandlerRecord, ecModel, api) {
var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask
// For overall task, the function only be called on reset stage.
|| createTask({reset: overallTaskReset});
overallTask.context = {
ecModel: ecModel,
api: api,
overallReset: stageHandler.overallReset,
scheduler: scheduler
};
// Reuse orignal stubs.
var agentStubMap = overallTask.agentStubMap = overallTask.agentStubMap || createHashMap();
var seriesType = stageHandler.seriesType;
var getTargetSeries = stageHandler.getTargetSeries;
var overallProgress = true;
var modifyOutputEnd = stageHandler.modifyOutputEnd;
// An overall task with seriesType detected or has `getTargetSeries`, we add
// stub in each pipelines, it will set the overall task dirty when the pipeline
// progress. Moreover, to avoid call the overall task each frame (too frequent),
// we set the pipeline block.
if (seriesType) {
ecModel.eachRawSeriesByType(seriesType, createStub);
}
else if (getTargetSeries) {
getTargetSeries(ecModel, api).each(createStub);
}
function normalizeDimensionsDefine(dimensionsDefine) {
if (!dimensionsDefine) {
// The meaning of null/undefined is different from empty array.
return;
}
var nameMap = createHashMap();
return map(dimensionsDefine, function (item, index) {
item = extend({}, isObject(item) ? item : {name: item});
// User can set null in dimensions.
// We dont auto specify name, othewise a given name may
// cause it be refered unexpectedly.
if (item.name == null) {
return item;
}
// Also consider number form like 2012.
item.name += '';
// User may also specify displayName.
// displayName will always exists except user not
// specified or dim name is not specified or detected.
// (A auto generated dim name will not be used as
function Parallel(parallelModel, ecModel, api) {
/**
* key: dimension
* @type {Object.}
* @private
*/
this._axesMap = zrUtil.createHashMap();
/**
* key: dimension
* value: {position: [], rotation, }
* @type {Object.}
* @private
*/
this._axesLayout = {};
/**
* Always follow axis order.
* @type {Array.}
* @readOnly
*/
this.dimensions = parallelModel.dimensions;
function CoordSysInfo(coordSysName) {
/**
* @type {string}
*/
this.coordSysName = coordSysName;
/**
* @type {Array.}
*/
this.coordSysDims = [];
/**
* @type {module:zrender/core/util#HashMap}
*/
this.axisMap = createHashMap();
/**
* @type {module:zrender/core/util#HashMap}
*/
this.categoryAxisMap = createHashMap();
/**
* @type {number}
*/
this.firstCategoryDimIndex = null;
}
/**