PHP Classes

File: vendors/echarts/src/model/Series.js

Recommend this page to a friend!
  Classes of Jorge Castro   Gentelella BladeOne   vendors/echarts/src/model/Series.js   Download  
File: vendors/echarts/src/model/Series.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Gentelella BladeOne
Render templates using Bootstrap for presentation
Author: By
Last change:
Date: 3 years ago
Size: 6,930 bytes
 

Contents

Class file image Download
define(function(require) { 'use strict'; var zrUtil = require('zrender/core/util'); var formatUtil = require('../util/format'); var modelUtil = require('../util/model'); var ComponentModel = require('./Component'); var encodeHTML = formatUtil.encodeHTML; var addCommas = formatUtil.addCommas; var SeriesModel = ComponentModel.extend({ type: 'series.__base__', /** * @readOnly */ seriesIndex: 0, // coodinateSystem will be injected in the echarts/CoordinateSystem coordinateSystem: null, /** * @type {Object} * @protected */ defaultOption: null, /** * Data provided for legend * @type {Function} */ // PENDING legendDataProvider: null, init: function (option, parentModel, ecModel, extraOpt) { /** * @type {number} * @readOnly */ this.seriesIndex = this.componentIndex; this.mergeDefaultAndTheme(option, ecModel); /** * @type {module:echarts/data/List|module:echarts/data/Tree|module:echarts/data/Graph} * @private */ this._dataBeforeProcessed = this.getInitialData(option, ecModel); // If we reverse the order (make this._data firstly, and then make // this._dataBeforeProcessed by cloneShallow), cloneShallow will // cause this._data.graph.data !== this._data when using // module:echarts/data/Graph or module:echarts/data/Tree. // See module:echarts/data/helper/linkList this._data = this._dataBeforeProcessed.cloneShallow(); }, /** * Util for merge default and theme to option * @param {Object} option * @param {module:echarts/model/Global} ecModel */ mergeDefaultAndTheme: function (option, ecModel) { zrUtil.merge( option, ecModel.getTheme().get(this.subType) ); zrUtil.merge(option, this.getDefaultOption()); // Default label emphasis `position` and `show` // FIXME Set label in mergeOption modelUtil.defaultEmphasis(option.label, modelUtil.LABEL_OPTIONS); this.fillDataTextStyle(option.data); }, mergeOption: function (newSeriesOption, ecModel) { newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true); this.fillDataTextStyle(newSeriesOption.data); var data = this.getInitialData(newSeriesOption, ecModel); // TODO Merge data? if (data) { this._data = data; this._dataBeforeProcessed = data.cloneShallow(); } }, fillDataTextStyle: function (data) { // Default data label emphasis `position` and `show` // FIXME Tree structure data ? // FIXME Performance ? if (data) { for (var i = 0; i < data.length; i++) { if (data[i] && data[i].label) { modelUtil.defaultEmphasis(data[i].label, modelUtil.LABEL_OPTIONS); } } } }, /** * Init a data structure from data related option in series * Must be overwritten */ getInitialData: function () {}, /** * @param {string} [dataType] * @return {module:echarts/data/List} */ getData: function (dataType) { return dataType == null ? this._data : this._data.getLinkedData(dataType); }, /** * @param {module:echarts/data/List} data */ setData: function (data) { this._data = data; }, /** * Get data before processed * @return {module:echarts/data/List} */ getRawData: function () { return this._dataBeforeProcessed; }, /** * Coord dimension to data dimension. * * By default the result is the same as dimensions of series data. * But in some series data dimensions are different from coord dimensions (i.e. * candlestick and boxplot). Override this method to handle those cases. * * Coord dimension to data dimension can be one-to-many * * @param {string} coordDim * @return {Array.<string>} dimensions on the axis. */ coordDimToDataDim: function (coordDim) { return [coordDim]; }, /** * Convert data dimension to coord dimension. * * @param {string|number} dataDim * @return {string} */ dataDimToCoordDim: function (dataDim) { return dataDim; }, /** * Get base axis if has coordinate system and has axis. * By default use coordSys.getBaseAxis(); * Can be overrided for some chart. * @return {type} description */ getBaseAxis: function () { var coordSys = this.coordinateSystem; return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis(); }, // FIXME /** * Default tooltip formatter * * @param {number} dataIndex * @param {boolean} [multipleSeries=false] * @param {number} [dataType] */ formatTooltip: function (dataIndex, multipleSeries, dataType) { var data = this._data; var value = this.getRawValue(dataIndex); var formattedValue = zrUtil.isArray(value) ? zrUtil.map(value, addCommas).join(', ') : addCommas(value); var name = data.getName(dataIndex); var color = data.getItemVisual(dataIndex, 'color'); var colorEl = '<span style="display:inline-block;margin-right:5px;' + 'border-radius:10px;width:9px;height:9px;background-color:' + color + '"></span>'; var seriesName = this.name; // FIXME if (seriesName === '\0-') { // Not show '-' seriesName = ''; } return !multipleSeries ? ((seriesName && encodeHTML(seriesName) + '<br />') + colorEl + (name ? encodeHTML(name) + ' : ' + formattedValue : formattedValue) ) : (colorEl + encodeHTML(this.name) + ' : ' + formattedValue); }, restoreData: function () { this._data = this._dataBeforeProcessed.cloneShallow(); }, getAxisTooltipDataIndex: null }); zrUtil.mixin(SeriesModel, modelUtil.dataFormatMixin); return SeriesModel; });