123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- /**
- * AUTO-GENERATED FILE. DO NOT MODIFY.
- */
- /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- import * as zrUtil from 'zrender/lib/core/util.js';
- import SeriesData from '../../data/SeriesData.js';
- import prepareSeriesDataSchema from '../../data/helper/createDimensions.js';
- import { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper.js';
- import { getDataItemValue } from '../../util/model.js';
- import CoordinateSystem from '../../core/CoordinateSystem.js';
- import { getCoordSysInfoBySeries } from '../../model/referHelper.js';
- import { createSourceFromSeriesDataOption } from '../../data/Source.js';
- import { enableDataStack } from '../../data/helper/dataStackHelper.js';
- import { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper.js';
- import { SOURCE_FORMAT_ORIGINAL } from '../../util/types.js';
- function getCoordSysDimDefs(seriesModel, coordSysInfo) {
- var coordSysName = seriesModel.get('coordinateSystem');
- var registeredCoordSys = CoordinateSystem.get(coordSysName);
- var coordSysDimDefs;
- if (coordSysInfo && coordSysInfo.coordSysDims) {
- coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {
- var dimInfo = {
- name: dim
- };
- var axisModel = coordSysInfo.axisMap.get(dim);
- if (axisModel) {
- var axisType = axisModel.get('type');
- dimInfo.type = getDimensionTypeByAxis(axisType);
- }
- return dimInfo;
- });
- }
- if (!coordSysDimDefs) {
- // Get dimensions from registered coordinate system
- coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];
- }
- return coordSysDimDefs;
- }
- function injectOrdinalMeta(dimInfoList, createInvertedIndices, coordSysInfo) {
- var firstCategoryDimIndex;
- var hasNameEncode;
- coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {
- var coordDim = dimInfo.coordDim;
- var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);
- if (categoryAxisModel) {
- if (firstCategoryDimIndex == null) {
- firstCategoryDimIndex = dimIndex;
- }
- dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();
- if (createInvertedIndices) {
- dimInfo.createInvertedIndices = true;
- }
- }
- if (dimInfo.otherDims.itemName != null) {
- hasNameEncode = true;
- }
- });
- if (!hasNameEncode && firstCategoryDimIndex != null) {
- dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;
- }
- return firstCategoryDimIndex;
- }
- /**
- * Caution: there are side effects to `sourceManager` in this method.
- * Should better only be called in `Series['getInitialData']`.
- */
- function createSeriesData(sourceRaw, seriesModel, opt) {
- opt = opt || {};
- var sourceManager = seriesModel.getSourceManager();
- var source;
- var isOriginalSource = false;
- if (sourceRaw) {
- isOriginalSource = true;
- source = createSourceFromSeriesDataOption(sourceRaw);
- } else {
- source = sourceManager.getSource();
- // Is series.data. not dataset.
- isOriginalSource = source.sourceFormat === SOURCE_FORMAT_ORIGINAL;
- }
- var coordSysInfo = getCoordSysInfoBySeries(seriesModel);
- var coordSysDimDefs = getCoordSysDimDefs(seriesModel, coordSysInfo);
- var useEncodeDefaulter = opt.useEncodeDefaulter;
- var encodeDefaulter = zrUtil.isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null;
- var createDimensionOptions = {
- coordDimensions: coordSysDimDefs,
- generateCoord: opt.generateCoord,
- encodeDefine: seriesModel.getEncode(),
- encodeDefaulter: encodeDefaulter,
- canOmitUnusedDimensions: !isOriginalSource
- };
- var schema = prepareSeriesDataSchema(source, createDimensionOptions);
- var firstCategoryDimIndex = injectOrdinalMeta(schema.dimensions, opt.createInvertedIndices, coordSysInfo);
- var store = !isOriginalSource ? sourceManager.getSharedDataStore(schema) : null;
- var stackCalculationInfo = enableDataStack(seriesModel, {
- schema: schema,
- store: store
- });
- var data = new SeriesData(schema, seriesModel);
- data.setCalculationInfo(stackCalculationInfo);
- var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {
- // Use dataIndex as ordinal value in categoryAxis
- return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);
- } : null;
- data.hasItemOption = false;
- data.initData(
- // Try to reuse the data store in sourceManager if using dataset.
- isOriginalSource ? source : store, null, dimValueGetter);
- return data;
- }
- function isNeedCompleteOrdinalData(source) {
- if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {
- var sampleItem = firstDataNotNull(source.data || []);
- return !zrUtil.isArray(getDataItemValue(sampleItem));
- }
- }
- function firstDataNotNull(arr) {
- var i = 0;
- while (i < arr.length && arr[i] == null) {
- i++;
- }
- return arr[i];
- }
- export default createSeriesData;
|