| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 | 
/** 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.*/var createListSimply = require("../helper/createListSimply");var zrUtil = require("zrender/lib/core/util");var _dimensionHelper = require("../../data/helper/dimensionHelper");var getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis;var _sourceHelper = require("../../data/helper/sourceHelper");var makeSeriesEncodeForAxisCoordSys = _sourceHelper.makeSeriesEncodeForAxisCoordSys;/** 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.*/var seriesModelMixin = {  /**   * @private   * @type {string}   */  _baseAxisDim: null,  /**   * @override   */  getInitialData: function (option, ecModel) {    // When both types of xAxis and yAxis are 'value', layout is    // needed to be specified by user. Otherwise, layout can be    // judged by which axis is category.    var ordinalMeta;    var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex'));    var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex'));    var xAxisType = xAxisModel.get('type');    var yAxisType = yAxisModel.get('type');    var addOrdinal; // FIXME    // Consider time axis.    if (xAxisType === 'category') {      option.layout = 'horizontal';      ordinalMeta = xAxisModel.getOrdinalMeta();      addOrdinal = true;    } else if (yAxisType === 'category') {      option.layout = 'vertical';      ordinalMeta = yAxisModel.getOrdinalMeta();      addOrdinal = true;    } else {      option.layout = option.layout || 'horizontal';    }    var coordDims = ['x', 'y'];    var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;    var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];    var otherAxisDim = coordDims[1 - baseAxisDimIndex];    var axisModels = [xAxisModel, yAxisModel];    var baseAxisType = axisModels[baseAxisDimIndex].get('type');    var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type');    var data = option.data; // ??? FIXME make a stage to perform data transfrom.    // MUST create a new data, consider setOption({}) again.    if (data && addOrdinal) {      var newOptionData = [];      zrUtil.each(data, function (item, index) {        var newItem;        if (item.value && zrUtil.isArray(item.value)) {          newItem = item.value.slice();          item.value.unshift(index);        } else if (zrUtil.isArray(item)) {          newItem = item.slice();          item.unshift(index);        } else {          newItem = item;        }        newOptionData.push(newItem);      });      option.data = newOptionData;    }    var defaultValueDimensions = this.defaultValueDimensions;    var coordDimensions = [{      name: baseAxisDim,      type: getDimensionTypeByAxis(baseAxisType),      ordinalMeta: ordinalMeta,      otherDims: {        tooltip: false,        itemName: 0      },      dimsDef: ['base']    }, {      name: otherAxisDim,      type: getDimensionTypeByAxis(otherAxisType),      dimsDef: defaultValueDimensions.slice()    }];    return createListSimply(this, {      coordDimensions: coordDimensions,      dimensionsCount: defaultValueDimensions.length + 1,      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)    });  },  /**   * If horizontal, base axis is x, otherwise y.   * @override   */  getBaseAxis: function () {    var dim = this._baseAxisDim;    return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;  }};exports.seriesModelMixin = seriesModelMixin;
 |