* [Caution]: * MUST be called after series option merged and * before "series.getInitailData()" called. * * [The rule of making default encode]: * Category axis (if exists) alway map to the first dimension. * Each other axis occupies a subsequent dimension. * * [Why make default encode]: *
(seriesModel)
| 20691 | * @param {module:echarts/model/Series} seriesModel |
| 20692 | */ |
| 20693 | function prepareSource(seriesModel) { |
| 20694 | var seriesOption = seriesModel.option; |
| 20695 | |
| 20696 | var data = seriesOption.data; |
| 20697 | var sourceFormat = isTypedArray(data) |
| 20698 | ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL; |
| 20699 | var fromDataset = false; |
| 20700 | |
| 20701 | var seriesLayoutBy = seriesOption.seriesLayoutBy; |
| 20702 | var sourceHeader = seriesOption.sourceHeader; |
| 20703 | var dimensionsDefine = seriesOption.dimensions; |
| 20704 | |
| 20705 | var datasetModel = getDatasetModel(seriesModel); |
| 20706 | if (datasetModel) { |
| 20707 | var datasetOption = datasetModel.option; |
| 20708 | |
| 20709 | data = datasetOption.source; |
| 20710 | sourceFormat = inner$3(datasetModel).sourceFormat; |
| 20711 | fromDataset = true; |
| 20712 | |
| 20713 | // These settings from series has higher priority. |
| 20714 | seriesLayoutBy = seriesLayoutBy || datasetOption.seriesLayoutBy; |
| 20715 | sourceHeader == null && (sourceHeader = datasetOption.sourceHeader); |
| 20716 | dimensionsDefine = dimensionsDefine || datasetOption.dimensions; |
| 20717 | } |
| 20718 | |
| 20719 | var completeResult = completeBySourceData( |
| 20720 | data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine |
| 20721 | ); |
| 20722 | |
| 20723 | inner$3(seriesModel).source = new Source({ |
| 20724 | data: data, |
| 20725 | fromDataset: fromDataset, |
| 20726 | seriesLayoutBy: seriesLayoutBy, |
| 20727 | sourceFormat: sourceFormat, |
| 20728 | dimensionsDefine: completeResult.dimensionsDefine, |
| 20729 | startIndex: completeResult.startIndex, |
| 20730 | dimensionsDetectCount: completeResult.dimensionsDetectCount, |
| 20731 | // Note: dataset option does not have `encode`. |
| 20732 | encodeDefine: seriesOption.encode |
| 20733 | }); |
| 20734 | } |
| 20735 | |
| 20736 | // return {startIndex, dimensionsDefine, dimensionsCount} |
| 20737 | function completeBySourceData(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) { |
no test coverage detected