| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- var _config = require("../../config");
- var __DEV__ = _config.__DEV__;
- var echarts = require("../../echarts");
- var zrUtil = require("zrender/lib/core/util");
- var env = require("zrender/lib/core/env");
- var modelUtil = require("../../util/model");
- var formatUtil = require("../../util/format");
- var addCommas = formatUtil.addCommas;
- var encodeHTML = formatUtil.encodeHTML;
- function fillLabel(opt) {
- modelUtil.defaultEmphasis(opt.label, ['show']);
- }
- var MarkerModel = echarts.extendComponentModel({
- type: 'marker',
- dependencies: ['series', 'grid', 'polar', 'geo'],
- /**
- * @overrite
- */
- init: function (option, parentModel, ecModel, extraOpt) {
- this.mergeDefaultAndTheme(option, ecModel);
- this.mergeOption(option, ecModel, extraOpt.createdBySelf, true);
- },
- /**
- * @return {boolean}
- */
- isAnimationEnabled: function () {
- if (env.node) {
- return false;
- }
- var hostSeries = this.__hostSeries;
- return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();
- },
- mergeOption: function (newOpt, ecModel, createdBySelf, isInit) {
- var MarkerModel = this.constructor;
- var modelPropName = this.mainType + 'Model';
- if (!createdBySelf) {
- ecModel.eachSeries(function (seriesModel) {
- var markerOpt = seriesModel.get(this.mainType);
- var markerModel = seriesModel[modelPropName];
- if (!markerOpt || !markerOpt.data) {
- seriesModel[modelPropName] = null;
- return;
- }
- if (!markerModel) {
- if (isInit) {
- // Default label emphasis `position` and `show`
- fillLabel(markerOpt);
- }
- zrUtil.each(markerOpt.data, function (item) {
- // FIXME Overwrite fillLabel method ?
- if (item instanceof Array) {
- fillLabel(item[0]);
- fillLabel(item[1]);
- } else {
- fillLabel(item);
- }
- });
- markerModel = new MarkerModel(markerOpt, this, ecModel);
- zrUtil.extend(markerModel, {
- mainType: this.mainType,
- // Use the same series index and name
- seriesIndex: seriesModel.seriesIndex,
- name: seriesModel.name,
- createdBySelf: true
- });
- markerModel.__hostSeries = seriesModel;
- } else {
- markerModel.mergeOption(markerOpt, ecModel, true);
- }
- seriesModel[modelPropName] = markerModel;
- }, this);
- }
- },
- formatTooltip: function (dataIndex) {
- var data = this.getData();
- var value = this.getRawValue(dataIndex);
- var formattedValue = zrUtil.isArray(value) ? zrUtil.map(value, addCommas).join(', ') : addCommas(value);
- var name = data.getName(dataIndex);
- var html = encodeHTML(this.name);
- if (value != null || name) {
- html += '<br />';
- }
- if (name) {
- html += encodeHTML(name);
- if (value != null) {
- html += ' : ';
- }
- }
- if (value != null) {
- html += encodeHTML(formattedValue);
- }
- return html;
- },
- getData: function () {
- return this._data;
- },
- setData: function (data) {
- this._data = data;
- }
- });
- zrUtil.mixin(MarkerModel, modelUtil.dataFormatMixin);
- var _default = MarkerModel;
- module.exports = _default;
|