123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- var zrUtil = require("zrender/lib/core/util");
- var List = require("../../data/List");
- var createDimensions = require("../../data/helper/createDimensions");
- var _sourceType = require("../../data/helper/sourceType");
- var SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL;
- var _dimensionHelper = require("../../data/helper/dimensionHelper");
- var getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis;
- var _model = require("../../util/model");
- var getDataItemValue = _model.getDataItemValue;
- var CoordinateSystem = require("../../CoordinateSystem");
- var _referHelper = require("../../model/referHelper");
- var getCoordSysInfoBySeries = _referHelper.getCoordSysInfoBySeries;
- var Source = require("../../data/Source");
- var _dataStackHelper = require("../../data/helper/dataStackHelper");
- var enableDataStack = _dataStackHelper.enableDataStack;
- var _sourceHelper = require("../../data/helper/sourceHelper");
- var makeSeriesEncodeForAxisCoordSys = _sourceHelper.makeSeriesEncodeForAxisCoordSys;
- function createListFromArray(source, seriesModel, opt) {
- opt = opt || {};
- if (!Source.isInstance(source)) {
- source = Source.seriesDataToSource(source);
- }
- var coordSysName = seriesModel.get('coordinateSystem');
- var registeredCoordSys = CoordinateSystem.get(coordSysName);
- var coordSysInfo = getCoordSysInfoBySeries(seriesModel);
- var coordSysDimDefs;
- if (coordSysInfo) {
- 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) {
-
- coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];
- }
- var dimInfoList = createDimensions(source, {
- coordDimensions: coordSysDimDefs,
- generateCoord: opt.generateCoord,
- encodeDefaulter: opt.useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null
- });
- 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 (dimInfo.otherDims.itemName != null) {
- hasNameEncode = true;
- }
- });
- if (!hasNameEncode && firstCategoryDimIndex != null) {
- dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;
- }
- var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);
- var list = new List(dimInfoList, seriesModel);
- list.setCalculationInfo(stackCalculationInfo);
- var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {
-
- return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);
- } : null;
- list.hasItemOption = false;
- list.initData(source, null, dimValueGetter);
- return list;
- }
- function isNeedCompleteOrdinalData(source) {
- if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {
- var sampleItem = firstDataNotNull(source.data || []);
- return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem));
- }
- }
- function firstDataNotNull(data) {
- var i = 0;
- while (i < data.length && data[i] == null) {
- i++;
- }
- return data[i];
- }
- var _default = createListFromArray;
- module.exports = _default;
|