module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "lib/leaflet/";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 490);
/******/ })
/************************************************************************/
/******/ ({

/***/ 0:
/***/ (function(module, exports) {

module.exports = require("@babel/runtime/helpers/interopRequireDefault");

/***/ }),

/***/ 1:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
/* globals __VUE_SSR_CONTEXT__ */

// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.

function normalizeComponent (
  scriptExports,
  render,
  staticRenderFns,
  functionalTemplate,
  injectStyles,
  scopeId,
  moduleIdentifier, /* server only */
  shadowMode /* vue-cli only */
) {
  // Vue.extend constructor export interop
  var options = typeof scriptExports === 'function'
    ? scriptExports.options
    : scriptExports

  // render functions
  if (render) {
    options.render = render
    options.staticRenderFns = staticRenderFns
    options._compiled = true
  }

  // functional template
  if (functionalTemplate) {
    options.functional = true
  }

  // scopedId
  if (scopeId) {
    options._scopeId = 'data-v-' + scopeId
  }

  var hook
  if (moduleIdentifier) { // server build
    hook = function (context) {
      // 2.3 injection
      context =
        context || // cached call
        (this.$vnode && this.$vnode.ssrContext) || // stateful
        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
      // 2.2 with runInNewContext: true
      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
        context = __VUE_SSR_CONTEXT__
      }
      // inject component styles
      if (injectStyles) {
        injectStyles.call(this, context)
      }
      // register component module identifier for async chunk inferrence
      if (context && context._registeredComponents) {
        context._registeredComponents.add(moduleIdentifier)
      }
    }
    // used by ssr in case component is cached and beforeCreate
    // never gets called
    options._ssrRegister = hook
  } else if (injectStyles) {
    hook = shadowMode
      ? function () {
        injectStyles.call(
          this,
          (options.functional ? this.parent : this).$root.$options.shadowRoot
        )
      }
      : injectStyles
  }

  if (hook) {
    if (options.functional) {
      // for template-only hot-reload because in that case the render fn doesn't
      // go through the normalizer
      options._injectStyles = hook
      // register for functional component in vue file
      var originalRender = options.render
      options.render = function renderWithStyleInjection (h, context) {
        hook.call(context)
        return originalRender(h, context)
      }
    } else {
      // inject component registration as beforeCreate hook
      var existing = options.beforeCreate
      options.beforeCreate = existing
        ? [].concat(existing, hook)
        : [hook]
    }
  }

  return {
    exports: scriptExports,
    options: options
  }
}


/***/ }),

/***/ 12:
/***/ (function(module, exports) {

module.exports = require("@babel/runtime/helpers/extends");

/***/ }),

/***/ 15:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__(0);

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _Message = _interopRequireDefault(__webpack_require__(16));

var _default = _Message.default;
exports.default = _default;

/***/ }),

/***/ 16:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__(0);

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _extends2 = _interopRequireDefault(__webpack_require__(12));

var _message = _interopRequireDefault(__webpack_require__(17));

var defaultPrefixCls = 'sm-component-message';
var configCallback = _message.default.config;
configCallback({
  prefixCls: defaultPrefixCls
});

_message.default.config = function (options) {
  if (options.prefixCls && options.prefixCls !== defaultPrefixCls) {
    _message.default.destroy();
  }

  configCallback((0, _extends2.default)({}, options, {
    prefixCls: options.prefixCls || defaultPrefixCls
  }));
};

var _default = _message.default;
exports.default = _default;

/***/ }),

/***/ 17:
/***/ (function(module, exports) {

module.exports = require("ant-design-vue/es/message");

/***/ }),

/***/ 18:
/***/ (function(module, exports) {

module.exports = require("lodash.clonedeep");

/***/ }),

/***/ 19:
/***/ (function(module, exports) {

module.exports = require("leaflet");

/***/ }),

/***/ 2:
/***/ (function(module, exports) {

module.exports = require("@supermap/vue-iclient-leaflet/lib/_mixin/Theme.js");

/***/ }),

/***/ 22:
/***/ (function(module, exports) {

module.exports = require("lodash.uniqueid");

/***/ }),

/***/ 221:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Chart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(222);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Chart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Chart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Chart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Chart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Chart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ 222:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__(0);

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _mapGetter = _interopRequireDefault(__webpack_require__(28));

var _ChartMixin = _interopRequireDefault(__webpack_require__(492));

var _ChartViewModel = _interopRequireDefault(__webpack_require__(497));

__webpack_require__(33);

var _default = {
  name: 'SmChart',
  mixins: [_ChartMixin.default, _mapGetter.default],
  loaded: function loaded() {
    this.viewModel = new _ChartViewModel.default(this.map);
  },
  beforeDestroy: function beforeDestroy() {
    this.$options.removed.call(this);
  },
  removed: function removed() {
    this.clearPopup();
  },
  methods: {
    clearPopup: function clearPopup() {
      this.viewModel && this.viewModel.clear();
    }
  }
};
exports.default = _default;

/***/ }),

/***/ 223:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ChartMixin_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(224);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ChartMixin_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ChartMixin_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ChartMixin_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ChartMixin_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
 /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ChartMixin_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 

/***/ }),

/***/ 224:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__(0);

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _extends2 = _interopRequireDefault(__webpack_require__(12));

__webpack_require__(235);

var _vueEcharts = _interopRequireDefault(__webpack_require__(51));

var _lodash = _interopRequireDefault(__webpack_require__(22));

var _lodash2 = _interopRequireDefault(__webpack_require__(493));

var _lodash3 = _interopRequireDefault(__webpack_require__(43));

var _lodash4 = _interopRequireDefault(__webpack_require__(24));

var _lodash5 = _interopRequireDefault(__webpack_require__(18));

var _Card = _interopRequireDefault(__webpack_require__(240));

var _Theme = _interopRequireDefault(__webpack_require__(2));

var _Timer = _interopRequireDefault(__webpack_require__(25));

var _chart = __webpack_require__(494);

var _EchartsDataService = _interopRequireDefault(__webpack_require__(495));

var _util = __webpack_require__(9);

var _TablePopup = _interopRequireDefault(__webpack_require__(496));

var _index = _interopRequireDefault(__webpack_require__(15));

var _resizeDetector = __webpack_require__(23);

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
// 枚举事件类型
var EVENTS = ['legendselectchanged', 'legendselected', 'legendunselected', 'legendscroll', 'datazoom', 'datarangeselected', 'timelinechanged', 'timelineplaychanged', 'restore', 'dataviewchanged', 'magictypechanged', 'geoselectchanged', 'geoselected', 'geounselected', 'pieselectchanged', 'pieselected', 'pieunselected', 'mapselectchanged', 'mapselected', 'mapunselected', 'axisareaselected', 'focusnodeadjacency', 'unfocusnodeadjacency', 'brush', 'brushselected', 'rendered', 'finished', 'click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];
var _default2 = {
  components: {
    'v-chart': _vueEcharts.default,
    TablePopup: _TablePopup.default
  },
  mixins: [_Theme.default, _Card.default, _Timer.default],
  props: {
    iconClass: {
      type: String,
      default: 'sm-components-icon-chart'
    },
    dataset: {
      type: Object,
      default: function _default() {
        return null;
      }
    },
    datasetOptions: {
      type: Array,
      default: function _default() {
        return null;
      }
    },
    colorGroup: {
      type: Array
    },
    options: {
      type: Object,
      default: function _default() {
        return {};
      }
    },
    autoresize: {
      type: Boolean,
      default: true
    },
    theme: {
      type: [Object, String]
    },
    initOptions: {
      type: Object
    },
    group: {
      type: String
    },
    manualUpdate: {
      type: Boolean,
      default: false
    },
    autoPlay: {
      type: Boolean,
      default: false
    },
    associatedMap: {
      type: Boolean,
      default: false
    },
    highlightOptions: {
      type: Array,
      default: function _default() {
        return [];
      }
    },
    highlightColor: {
      type: String,
      default: '#01ffff'
    },
    isShow: {
      type: Boolean,
      default: true
    }
  },
  data: function data() {
    return {
      chartId: (0, _lodash.default)(this.$options.name.toLowerCase() + "-"),
      chartTheme: {},
      // 图表的主题
      echartOptions: {},
      // 最后生成的echart数据
      datasetChange: false,
      // dataset是否改变
      dataSeriesCache: {},
      tablePopupProps: {},
      startSpin: null,
      customSeries: [],
      dataZoomHandler: function dataZoomHandler() {}
    };
  },
  computed: {
    width: function width() {
      return this.smChart && this.smChart.width;
    },
    height: function height() {
      return this.smChart && this.smChart.height;
    },
    computedOptions: function computedOptions() {
      return this.smChart && this.smChart.computedOptions;
    },
    _chartStyle: function _chartStyle() {
      return {
        width: '100%',
        height: this.headerName ? 'calc(100% - 30px)' : '100%'
      };
    },
    parseOptions: function parseOptions() {
      var _this2 = this;

      if (!this.options.series) {
        return this.options;
      }

      if (this.options.series.find(function (item) {
        return item.type === '2.5Bar';
      })) {
        return (0, _extends2.default)({}, this.options, {
          series: []
        });
      }

      if (this.options.series[0] && this.options.series[0].customType === 'customRingsSeries') {
        return (0, _extends2.default)({}, this.options, {
          series: [].concat(this.options.series, this.customSeries)
        });
      }

      var series = this.options.series.map(function (serie) {
        if (serie.label) {
          var cloneSerie = (0, _lodash5.default)(serie);
          cloneSerie.label.normal = _this2._controlLabel(cloneSerie.label.normal, cloneSerie.maxLabels);
          return cloneSerie;
        }

        return serie;
      });
      return (0, _extends2.default)({}, this.options, {
        series: series
      });
    },
    _chartOptions: function _chartOptions() {
      return this._isRequestData && this.echartOptions || this.parseOptions;
    },
    // 是否传入dataset和datasetOptions
    _isRequestData: function _isRequestData() {
      return this.dataset && Object.keys(this.dataset).length > 0 && (this.dataset.url || this.dataset.geoJSON) && this.datasetOptions && this.datasetOptions.length > 0;
    },
    xBar: function xBar() {
      return this.options && this.options.yAxis && this.options.yAxis.type === 'category';
    },
    colorNumber: function colorNumber() {
      var length = this.datasetOptions && this.datasetOptions.length || this.echartOptions.series && this.echartOptions.series.length;
      var colorNumber = this.colorGroupsData.length;

      if (length && length > colorNumber) {
        colorNumber = length;
      }

      return colorNumber;
    }
  },
  watch: {
    theme: function theme() {
      this.chartTheme = null;
    },
    colorGroupsData: function colorGroupsData(newVal, oldVal) {
      if (!(0, _lodash3.default)(newVal, oldVal)) {
        this._setChartTheme();
      }
    },
    textColorsData: function textColorsData(newVal, oldVal) {
      if (!(0, _lodash3.default)(newVal, oldVal)) {
        this._setChartTheme();
      }
    },
    getBackground: function getBackground(newVal, oldVal) {
      if (!(0, _lodash3.default)(newVal, oldVal)) {
        this._setChartTheme();
      }
    },
    dataset: {
      handler: function handler() {
        this._isRequestData && this._setEchartOptions(this.dataset, this.datasetOptions, this.options);
        this.datasetChange = true;
      },
      deep: true
    },
    datasetOptions: {
      handler: function handler(newVal, oldVal) {
        if (!(0, _lodash3.default)(newVal, oldVal)) {
          this._setChartTheme();

          this.registerShape();
        }

        !this.echartsDataService && this._isRequestData && this._setEchartOptions(this.dataset, this.datasetOptions, this.options);
        this.echartsDataService && this.echartsDataService.setDatasetOptions(this.datasetOptions);
        this.echartsDataService && this.dataSeriesCache && this._changeChartData(this.echartsDataService, this.datasetOptions, this.options);
      }
    },
    options: {
      handler: function handler() {
        if (this.datasetChange && !this.dataSeriesCache) {
          return;
        }

        if (this.dataSeriesCache && JSON.stringify(this.dataSeriesCache) !== '{}') {
          this.echartOptions = this._optionsHandler(this.options, this.dataSeriesCache);
        } else {
          this.echartOptions = Object.assign({}, this.parseOptions);
        }
      },
      deep: true
    },
    autoresize: function autoresize() {
      if (this.autoresize) {
        (0, _resizeDetector.addListener)(this.$el, this.__resizeHandler);
      } else {
        (0, _resizeDetector.removeListener)(this.$el, this.__resizeHandler);
      }
    },
    autoPlay: function autoPlay() {
      this._handlePieAutoPlay();
    },
    associatedMap: function associatedMap() {
      if (!this.associatedMap) {
        this.clearPopup && this.clearPopup();
      }
    },
    highlightOptions: {
      handler: function handler() {
        this.setItemStyleColor();
      },
      deep: true
    }
  },
  created: function created() {
    this._setChartTheme(); // // 切换主题
    // this.$on('theme-style-changed', () => {
    //   this._setChartTheme();
    // });


    this.registerShape();
  },
  mounted: function mounted() {
    // 设置echarts实例
    this.smChart = this.$refs[this.chartId]; // 派发echart所有事件

    var smChart = this._getEchart();

    var self = this;
    EVENTS.forEach(function (event) {
      smChart.$on(event, function (params) {
        if (event === 'click') {
          self.handleChartClick(params);
        }

        self.$emit(event, params);
      });
    });

    this._initAutoResize();

    this._initDataZoom();

    if (this.options.series && this.options.series[0] && this.options.series[0].customType === 'customRingsSeries') {
      this.startEffect();
    }

    !this._isRequestData && this.autoPlay && this._handlePieAutoPlay(); // 请求数据, 合并echartopiton, 设置echartOptions

    this._isRequestData && this._setEchartOptions(this.dataset, this.datasetOptions, this.options);
  },
  updated: function updated() {
    this._handlePieAutoPlay(); // 更新自动播放

  },
  beforeDestroy: function beforeDestroy() {
    clearInterval(this.pieAutoPlay); // clear 自动播放

    clearInterval(this.startAngle);

    if (this.autoresize) {
      (0, _resizeDetector.removeListener)(this.$el, this.__resizeHandler);
    }
  },
  methods: {
    _initAutoResize: function _initAutoResize() {
      var _this3 = this;

      this.__resizeHandler = (0, _lodash4.default)(function () {
        _this3.resize();
      }, 100, {
        leading: true
      });

      if (this.autoresize) {
        // @ts-ignore
        (0, _resizeDetector.addListener)(this.$el, this.__resizeHandler);
      }
    },
    _initDataZoom: function _initDataZoom() {
      var _this4 = this;

      this.dataZoomHandler = (0, _lodash4.default)(function () {
        _this4._dataZoomChanged();
      }, 500, {
        leading: true
      });
    },
    getStringColor: function getStringColor(color) {
      if (color instanceof Object) {
        return ((color.colorStops || [])[0] || {}).color;
      }

      return color;
    },
    setGradientColor: function setGradientColor(color, nextColor) {
      if (typeof color === 'string') {
        return new this.$options.graphic.LinearGradient(0, 0, 0, 1, [{
          offset: 0,
          color: color
        }, {
          offset: 1,
          color: nextColor || color
        }]);
      }

      return color;
    },
    _initAxisLabel: function _initAxisLabel(axisLabel, data, visualMap, series) {
      if (!this.xBar) {
        return;
      }

      var sortSeriesIndex = this.datasetOptions.findIndex(function (item) {
        return item.sort !== 'unsort' && item.rankLabel;
      });

      if (sortSeriesIndex > -1 && axisLabel && data) {
        for (var index = 0, len = data.length, rankIndex = len - 1; index < len; index++, rankIndex--) {
          data[index] = rankIndex < 10 ? "0" + rankIndex + data[index] : "" + rankIndex + data[index];
        }

        var firstVisualMap = visualMap && visualMap.find(function (item) {
          return item.seriesIndex === sortSeriesIndex;
        });
        axisLabel.rich = axisLabel.rich || {};
        axisLabel.rich.default = {
          backgroundColor: this.getStringColor(this.colorGroup[sortSeriesIndex]),
          width: 20,
          height: 20,
          align: 'center',
          borderRadius: 2
        };
        firstVisualMap && firstVisualMap.pieces.forEach(function (item) {
          axisLabel.rich[parseInt(item.min) + "_" + parseInt(item.max)] = {
            backgroundColor: item.color,
            width: 20,
            height: 20,
            align: 'center',
            borderRadius: 2
          };
        });
        var serieData = series && series[sortSeriesIndex].data;

        axisLabel.formatter = function (label, index) {
          var orderNum = parseInt(label.slice(0, 2)) + 1;
          var leftLabel = label.slice(2);
          var labelValue = serieData && +serieData[index];

          if (firstVisualMap) {
            var matchItem = firstVisualMap.pieces.find(function (item) {
              return labelValue >= item.min && labelValue <= item.max;
            });

            if (matchItem) {
              return ["{" + parseInt(matchItem.min) + "_" + parseInt(matchItem.max) + "|" + orderNum + "}  " + leftLabel].join('\n');
            }
          }

          return ["{default|" + orderNum + "}  " + leftLabel].join('\n');
        };
      }
    },
    setItemStyleColor: function setItemStyleColor(isSet, series, highlightOptions, color) {
      var _this5 = this;

      if (isSet === void 0) {
        isSet = true;
      }

      if (highlightOptions === void 0) {
        highlightOptions = this.highlightOptions;
      }

      if (color === void 0) {
        color = this.highlightColor;
      }

      series = series || (0, _lodash5.default)(this.echartOptions && this.echartOptions.series) || [];
      series.forEach(function (serie, seriesIndex) {
        var dataIndexs = highlightOptions.map(function (item) {
          if (item.seriesIndex && item.seriesIndex.includes(seriesIndex)) {
            return item.dataIndex;
          }
        });
        var colors = highlightOptions.map(function (item) {
          if (item.seriesIndex && item.seriesIndex.includes(seriesIndex)) {
            return item.color || color;
          }
        });
        var serieColor = _this5.options.series && _this5.options.series[seriesIndex] && _this5.options.series[seriesIndex].itemStyle && _this5.options.series[seriesIndex].itemStyle.color;
        serie.itemStyle = serie.itemStyle || {
          color: ''
        };

        serie.itemStyle.color = function (_ref) {
          var dataIndex = _ref.dataIndex;
          var index = dataIndexs.indexOf(dataIndex);

          if (index > -1) {
            return colors[index];
          } else if (serie.type === 'pie') {
            var colorGroup = _this5._handlerColorGroup(serie.data.length);

            return colorGroup[dataIndex];
          } else {
            return serieColor;
          }
        };
      });
      isSet && this.$set(this.echartOptions, 'series', series);
    },
    _handlePieAutoPlay: function _handlePieAutoPlay() {
      var seriesType = this._chartOptions.series && this._chartOptions.series[0] && this._chartOptions.series[0].type;
      var echartsNode = this.smChart.chart;

      if (this._chartOptions.legend && this._chartOptions.legend.data && this._chartOptions.legend.data.length && echartsNode && seriesType === 'pie') {
        this.clearPieAutoPlay(echartsNode);

        if (this.autoPlay) {
          this.setPieAutoPlay(echartsNode);
        }
      }
    },
    setPieAutoPlay: function setPieAutoPlay(echartsNode) {
      var _this6 = this;

      var i = -1;
      this.pieAutoPlay = setInterval(function () {
        echartsNode.dispatchAction({
          type: 'downplay',
          seriesIndex: 0,
          dataIndex: i
        });
        i++;

        if (i >= _this6._chartOptions.legend.data.length) {
          i = 0;
        }

        echartsNode.dispatchAction({
          type: 'highlight',
          seriesIndex: 0,
          dataIndex: i
        });
      }, 2000);
    },
    clearPieAutoPlay: function clearPieAutoPlay(echartsNode) {
      clearInterval(this.pieAutoPlay);

      for (var i = 0; i < this._chartOptions.legend.data.length; i++) {
        echartsNode.dispatchAction({
          type: 'downplay',
          seriesIndex: 0,
          dataIndex: i
        });
      }
    },
    timing: function timing() {
      var _this7 = this;

      this.echartsDataService && this.echartsDataService.getDataOption(this.dataset, this.xBar).then(function (options) {
        _this7.hideLoading(); // 缓存dataSeriesCache，请求后格式化成echart的数据


        _this7.dataSeriesCache = Object.assign({}, options);
        _this7.datasetChange = false; // 设置echartOptions

        _this7.echartOptions = _this7._optionsHandler(_this7.options, options);
      });
    },
    // 请求数据,设置echartOptions
    _setEchartOptions: function _setEchartOptions(dataset, datasetOptions, echartOptions) {
      var _this8 = this;

      this.echartsDataService = null;
      this.dataSeriesCache = null;

      if (this.dataset.type !== 'geoJSON') {
        this.showLoading('default', {
          text: this.$t('info.loading'),
          color: this.colorGroupsData[0],
          textColor: this.textColorsData,
          maskColor: 'rgba(0,0,0,0.8)',
          zlevel: 0
        });
      }

      this.echartsDataService = new _EchartsDataService.default(dataset, datasetOptions);
      this.echartsDataService.getDataOption(dataset, this.xBar).then(function (options) {
        _this8.hideLoading(); // 缓存dataSeriesCache，请求后格式化成echart的数据


        _this8.dataSeriesCache = Object.assign({}, options);
        _this8.datasetChange = false; // 设置echartOptions

        _this8.echartOptions = _this8._optionsHandler(echartOptions, options);
      });
    },
    _optionsHandler: function _optionsHandler(options, dataOptions, dataZoomChanged) {
      var _this9 = this;

      dataOptions = dataOptions && (0, _lodash5.default)(dataOptions); // clone 避免引起重复刷新

      options = options && (0, _lodash5.default)(options); // clone 避免引起重复刷新

      var extraSeries = [];

      if (options && options.legend && !options.legend.type) {
        options.legend.type = 'scroll';
      }

      var yAxis = options.yAxis;
      var xAxis = options.xAxis;

      if (xAxis && dataOptions.xAxis) {
        var axis = xAxis;
        var axisData = dataOptions.xAxis[0];
        var type = 'xAxis';

        if (yAxis && yAxis.type === 'category') {
          // 处理条形图
          type = 'yAxis';
          axis = yAxis;
          dataOptions.yAxis = dataOptions.xAxis;
          delete dataOptions.xAxis;

          this._initAxisLabel(yAxis.axisLabel, dataOptions.yAxis[0].data, options.visualMap, dataOptions.series);
        }

        if (dataOptions.series.length === 0) {
          axis = [{}];
        } else if (!Array.isArray(axis)) {
          if (axisData.data && axisData.data.length) {
            axis.data = [];
          }

          axis = [Object.assign({}, axisData, axis)];
        }

        options[type] = axis;
      }

      if (options && options.series && dataOptions.series) {
        if (dataOptions.series.length === 0) {
          options.series = [];
        } else {
          options.series = options.series.map(function (element, index) {
            return Object.assign({}, element, dataOptions.series[index] || {});
          });
          var dataZoom = options.dataZoom && options.dataZoom[0];
          options.series = options.series.map(function (serie, index) {
            var label = serie.label && serie.label.normal;

            if (label && !label.smart) {
              serie.label.normal = _this9._controlLabel(label, serie.maxLabels);
            }

            if (label && label.show && label.smart) {
              label.position = label.position || 'top';
              var data = serie.data || [];
              var startDataIndex = 0;
              var endDataIndex = data.length > 0 ? data.length - 1 : 0;

              if (dataZoom && dataZoom.show !== false) {
                if (dataZoom.start > dataZoom.end) {
                  var oldStart = dataZoom.start;
                  dataZoom.start = dataZoom.end;
                  dataZoom.end = oldStart;
                }

                if (dataZoomChanged) {
                  var _ref2 = _this9.smChart.chart.getOption().dataZoom[0] || {},
                      startValue = _ref2.startValue,
                      endValue = _ref2.endValue;

                  startDataIndex = startValue;
                  endDataIndex = endValue;
                  options.dataZoom = options.dataZoom.map(function (val) {
                    if (startValue >= 0 && endValue >= 0) {
                      val.startValue = startValue;
                      val.endValue = endValue;
                      delete val.start;
                      delete val.end;
                      return val;
                    }

                    return val;
                  });
                } else {
                  startDataIndex = Math.floor(dataZoom.start / 100 * data.length);
                  endDataIndex = Math.ceil(dataZoom.end / 100 * data.length);
                }

                data = serie.data.slice(startDataIndex, endDataIndex + 1);
              }

              label.formatter = function (_ref3) {
                var dataIndex = _ref3.dataIndex,
                    value = _ref3.value;
                var result = '';

                if (dataIndex === startDataIndex || dataIndex === endDataIndex || Math.max.apply(null, data) + '' === value + '') {
                  result = value;
                }

                return result;
              };
            } else if (serie && serie.type !== 'pie' && serie.type !== 'radar') {
              var colorGroup = (0, _chart.getMultiColorGroup)(_this9.colorGroupsData, _this9.colorNumber);

              if (serie.type === '2.5Bar') {
                var shape = serie.shape;
                var defaultColor = serie.itemStyle && serie.itemStyle.color;

                if (['square', 'rectangle'].includes(shape)) {
                  var cubeType = shape;
                  serie.type = 'custom';
                  dataOptions.series[index] && (dataOptions.series[index].type = 'custom');
                  var _this = _this9;

                  serie.renderItem = function (params, api) {
                    var location = api.coord([api.value(0), api.value(1)]);
                    var fillColor = defaultColor || colorGroup[params.seriesIndex];

                    if (_this.highlightOptions && _this.highlightOptions.length > 0) {
                      var matchData = _this.highlightOptions.find(function (item) {
                        return item.seriesIndex.includes(params.seriesIndex) && item.dataIndex === params.dataIndex;
                      });

                      if (matchData && (matchData.color || _this.highlightColor)) {
                        fillColor = matchData.color || _this.highlightColor;
                      }
                    }

                    var leftColor, rightColor, topColor;

                    if (typeof fillColor === 'object') {
                      var copyLeftColor = (0, _lodash5.default)(fillColor);
                      var copyRightColor = (0, _lodash5.default)(fillColor);
                      var copyTopColor = (0, _lodash5.default)(fillColor);
                      copyLeftColor.colorStops[0].color = (0, _util.getColorWithOpacity)(copyLeftColor.colorStops[0].color, 0.4);
                      copyLeftColor.colorStops[1].color = (0, _util.getColorWithOpacity)(copyLeftColor.colorStops[1].color, 0.4);
                      copyRightColor.colorStops[0].color = (0, _util.getColorWithOpacity)(copyRightColor.colorStops[0].color, 0.7);
                      copyRightColor.colorStops[1].color = (0, _util.getColorWithOpacity)(copyRightColor.colorStops[1].color, 0.7);
                      copyTopColor.colorStops[0].color = (0, _util.getColorWithOpacity)(copyTopColor.colorStops[0].color, 0.85);
                      copyTopColor.colorStops[1].color = (0, _util.getColorWithOpacity)(copyTopColor.colorStops[1].color, 0.85);
                      leftColor = copyLeftColor;
                      rightColor = copyRightColor;
                      topColor = copyTopColor;
                    } else {
                      leftColor = (0, _util.getColorWithOpacity)(fillColor, 0.4);
                      rightColor = (0, _util.getColorWithOpacity)(fillColor, 0.7);
                      topColor = (0, _util.getColorWithOpacity)(fillColor, 0.85);
                    }

                    return {
                      type: 'group',
                      children: [{
                        type: "Cube" + cubeType + "Left",
                        shape: {
                          api: api,
                          xValue: api.value(0),
                          yValue: api.value(1),
                          x: location[0],
                          y: location[1],
                          xAxisPoint: api.coord([api.value(0), 0])
                        },
                        style: {
                          fill: leftColor
                        }
                      }, {
                        type: "Cube" + cubeType + "Right",
                        shape: {
                          api: api,
                          xValue: api.value(0),
                          yValue: api.value(1),
                          x: location[0],
                          y: location[1],
                          xAxisPoint: api.coord([api.value(0), 0])
                        },
                        style: {
                          fill: rightColor
                        }
                      }, {
                        type: "Cube" + cubeType + "Top",
                        shape: {
                          api: api,
                          xValue: api.value(0),
                          yValue: api.value(1),
                          x: location[0],
                          y: location[1],
                          xAxisPoint: api.coord([api.value(0), 0])
                        },
                        style: {
                          fill: topColor
                        }
                      }]
                    };
                  };
                } else if (shape === 'cylinder') {
                  var baseWidth = '100%';
                  var nextSerieDatas = dataOptions.series[index + 1] && dataOptions.series[index + 1].data;
                  serie.type = 'bar';
                  serie.barGap = '-100%';
                  options.tooltip && options.tooltip.trigger === 'axis' && (options.tooltip.trigger = 'item');
                  dataOptions.series[index] && (dataOptions.series[index].type = 'bar');
                  var cirCleColor = defaultColor || colorGroup[index];
                  var cirCleColorFnList = [];

                  if (typeof cirCleColor === 'string') {
                    cirCleColor = _this9.setGradientColor(cirCleColor, '#fff');
                  }

                  if (_this9.highlightOptions && _this9.highlightOptions.length > 0) {
                    var matchDataList = [];

                    _this9.highlightOptions.forEach(function (item) {
                      if (item.seriesIndex.includes(index)) {
                        var color = item.color || _this9.highlightColor;

                        if (typeof color === 'string') {
                          color = _this9.setGradientColor(color, '#fff');
                        }

                        matchDataList.push({
                          dataIndex: item.dataIndex,
                          color: color
                        });
                      }
                    });

                    if (matchDataList.length > 0) {
                      cirCleColorFnList = ['topCirCleColorFn', 'bottomCirCleColorFn'].map(function () {
                        return function (_ref4) {
                          var dataIndex = _ref4.dataIndex;
                          var matchData = matchDataList.find(function (item) {
                            return item.dataIndex === dataIndex;
                          });
                          return matchData ? matchData.color : cirCleColor;
                        };
                      });
                    }
                  }

                  extraSeries.push( // 头部的圆片
                  {
                    name: '',
                    type: 'pictorialBar',
                    symbolOffset: [0, -8],
                    symbolPosition: 'end',
                    z: 12,
                    itemStyle: {
                      normal: {
                        color: cirCleColorFnList[0] || cirCleColor
                      }
                    },
                    data: dataOptions.series[index].data.map(function (item, dataIndex) {
                      return {
                        value: item,
                        symbolSize: !nextSerieDatas || nextSerieDatas[dataIndex] && +item >= +nextSerieDatas[dataIndex] ? [baseWidth, 15] : [0, 15]
                      };
                    })
                  }, {
                    // 底部的圆片
                    name: '',
                    type: 'pictorialBar',
                    symbolSize: [baseWidth, 10],
                    symbolOffset: [0, 5],
                    z: 12,
                    itemStyle: {
                      normal: {
                        color: cirCleColorFnList[1] || cirCleColor
                      }
                    },
                    data: dataOptions.series[index].data
                  });
                }

                delete serie.shape;
              }
            }

            return serie;
          }); // 玫瑰图多个选中

          if (options.series[0].type === 'pie' && options.series[0].roseType) {
            options.series = options.series.map(function (serie) {
              if (!serie.roseType) {
                serie.roseType = options.series[0].roseType;
              }

              return serie;
            });
          } // pie的图例需要一个扇形是一个图例


          if (options.legend && options.series.length > 0 && options.series[0].type === 'pie') {
            options.legend.data = [];
            options.series.forEach(function (element) {
              if (element.data) {
                var _options$legend$data;

                (_options$legend$data = options.legend.data).push.apply(_options$legend$data, element.data.map(function (item) {
                  return item.name;
                }));
              }
            });
          }
        }
      }

      if (options && options.radar && dataOptions.radar) {
        options.radar.indicator = Object.assign({}, dataOptions.radar.indicator || {});
      }

      var series = dataOptions.series;
      var isRingShine = options.series && options.series[0] && options.series[0].outerGap >= 0;

      if (series && series.length && series[0].type === 'pie') {
        this.setItemStyleColor(false, series);
      }

      if (isRingShine) {
        dataOptions.series = this._createRingShineSeries(series, options.series);
      }

      if (this.highlightOptions && this.highlightOptions.length > 0) {
        if (isRingShine) {
          dataOptions.series = this._createRingShineHighlight(series, this.highlightOptions);
        } else {
          this.setItemStyleColor(true, series);
        }
      }

      var mergeOptions = (0, _lodash2.default)(options, dataOptions);

      if (extraSeries.length > 0) {
        var _mergeOptions$series;

        (_mergeOptions$series = mergeOptions.series).push.apply(_mergeOptions$series, extraSeries);
      }

      return mergeOptions;
    },
    _createRingShineSeries: function _createRingShineSeries(series, optionsSeries) {
      var _this10 = this;

      if (optionsSeries) {
        this.datasetOptions.forEach(function (datasetOption, index) {
          var _ref5 = optionsSeries[index] || {},
              type = _ref5.type,
              outerGap = _ref5.outerGap,
              isShine = _ref5.isShine;

          if (type === 'pie' && outerGap >= 0) {
            var data = series[index].data.map(function (val) {
              return val.value;
            });
            outerGap = outerGap || Math.min.apply(null, data) / 5;
            series[index].data = _this10._createRingShineDataOption(series[index].data, outerGap, isShine);
            delete optionsSeries[index].outerGap;
            delete optionsSeries[index].isShine;
          }
        });
      }

      return series;
    },
    _createRingShineDataOption: function _createRingShineDataOption(data, outerGap, isShine) {
      if (!data) {
        return;
      }

      var colors = this._handlerColorGroup(data.length);

      var gapItem = {
        value: outerGap,
        name: '',
        itemStyle: {
          normal: {
            label: {
              show: false
            },
            labelLine: {
              show: false
            },
            color: 'rgba(0, 0, 0, 0)',
            borderColor: 'rgba(0, 0, 0, 0)',
            borderWidth: 0
          }
        }
      };
      var result = [];

      for (var i = 0; i < data.length; i++) {
        var dataItem = {
          value: data[i].value,
          name: data[i].name
        };

        if (isShine) {
          dataItem.itemStyle = {
            borderWidth: 5,
            shadowBlur: 10,
            color: colors[i],
            borderColor: colors[i],
            shadowColor: colors[i]
          };
        }

        result.push(dataItem);

        if (data.length > 1) {
          result.push(gapItem);
        }
      }

      return result;
    },
    _createRingShineHighlight: function _createRingShineHighlight(series, highlightOptions, color) {
      if (color === void 0) {
        color = this.highlightColor;
      }

      series = series || [];
      series = series.map(function (serie, seriesIndex) {
        var dataIndexs = highlightOptions.map(function (item) {
          if (item.seriesIndex && item.seriesIndex.includes(seriesIndex)) {
            return item.dataIndex;
          }
        });
        var colors = highlightOptions.map(function (item) {
          if (item.seriesIndex && item.seriesIndex.includes(seriesIndex)) {
            return item.color || color;
          }
        });
        var serieDatas = serie && serie.data || [];
        dataIndexs.forEach(function (dataIndex, index) {
          serieDatas[dataIndex].itemStyle.color = colors[index];
          serieDatas[dataIndex].itemStyle.borderColor = colors[index];
          serieDatas[dataIndex].itemStyle.shadowColor = colors[index];
        });
        return serie;
      });
      return series;
    },
    _handlerColorGroup: function _handlerColorGroup(serielDataLength) {
      if (typeof this.colorGroupsData[0] === 'object') {
        return (0, _chart.handleMultiGradient)(this.colorGroupsData, serielDataLength);
      } else {
        return SuperMap.ColorsPickerUtil.getGradientColors(this.colorGroupsData, serielDataLength, 'RANGE');
      }
    },
    // 控制label显示条数
    _controlLabel: function _controlLabel(normalLabel, maxLabels) {
      if (normalLabel && normalLabel.show && maxLabels) {
        var endNormalLabel = (0, _lodash5.default)(normalLabel);
        var formatMode;

        if (endNormalLabel.formatter && typeof endNormalLabel.formatter === 'string') {
          formatMode = endNormalLabel.formatter;
        }

        endNormalLabel.formatter = function (_ref6) {
          var dataIndex = _ref6.dataIndex,
              value = _ref6.value,
              name = _ref6.name,
              percent = _ref6.percent;
          var FORMATTER_MAP = {
            '{b}: {c}': name + ": " + value,
            '{b}': "" + name,
            '{c}': "" + value,
            '{d}%': percent + "%"
          };
          var result = '';

          if (dataIndex < maxLabels) {
            result = FORMATTER_MAP[formatMode || '{c}'];
          }

          return result;
        };

        return endNormalLabel;
      }

      return normalLabel;
    },
    // 当datasetUrl不变，datasetOptions改变时
    _changeChartData: function _changeChartData(echartsDataService, datasetOptions, echartOptions) {
      var options;
      options = echartsDataService.formatChartData(datasetOptions, this.xBar); // 缓存dataSeriesCache，格式化成echart的数据

      this.dataSeriesCache = Object.assign({}, options); // 设置echartOptions

      this.echartOptions = this._optionsHandler(echartOptions, options);
    },
    _setChartTheme: function _setChartTheme() {
      if (!this.theme) {
        var colorNumber = this.colorNumber;
        this.chartTheme = (0, _chart.chartThemeUtil)(this.getBackground, this.textColorsData, this.colorGroupsData, colorNumber);
      }
    },
    // 获取echart实例
    _getEchart: function _getEchart() {
      return this.smChart;
    },
    // 以下全是同名调用echart的方法

    /**
     * 提供了一个更贴切的名称来描述 setOption 方法的实际行为。
     * @param {Object} options - 图表的配置项和数据
     * @param {Boolean} [notMerge = false] - 可选，是否不跟之前设置的 option 进行合并，默认为 false，即合并
     * @param {Boolean} [lazyUpdate = false] - 可选，阻止调用 setOption 时抛出事件，默认为 false，即抛出事件
     */
    mergeOptions: function mergeOptions(options, notMerge, lazyUpdate) {
      this._delegateMethod('mergeOptions', options, notMerge, lazyUpdate);
    },

    /**
     * 此接口用于，在大数据量（百万以上）的渲染场景，分片加载数据和增量渲染。
     * @param {Object} params - 数据配置
     */
    appendData: function appendData(params) {
      this._delegateMethod('appendData', params);
    },

    /**
     * 此接口用于，改变图表尺寸，在容器大小发生改变时需要手动调用。
     * @param {Object} [options] - options可缺省。有下面几个可选项：width, height, silent
     */
    resize: function resize(options) {
      this._delegateMethod('resize', options);
    },

    /**
     * 此接口用于，触发图表行为。
     * @param {Object} payload - 参数可以通过batch属性同时触发多个行为。
     */
    dispatchAction: function dispatchAction(payload) {
      this._delegateMethod('dispatchAction', payload);
    },

    /**
     * 此接口用于，转换坐标系上的点到像素坐标值。
     * @param {Object} finder - 用于指示『在哪个坐标系或者系列上判断』。
     * @param {Array|string} value - 要被转换的值。
     */
    convertToPixel: function convertToPixel(finder, value) {
      return this._delegateMethod('convertToPixel', finder, value);
    },

    /**
     * 此接口用于，转换像素坐标值到逻辑坐标系上的点。是 convertToPixel 的逆运算。
     * @param {Object} finder - 用于指示『在哪个坐标系或者系列上判断』。
     * @param {Array|string} value - 要被转换的值。
     */
    convertFromPixel: function convertFromPixel(finder, value) {
      return this._delegateMethod('convertFromPixel', finder, value);
    },

    /**
     * 此接口用于，判断给定的点是否在指定的坐标系或者系列上。
     * @param {Object} finder - 用于指示『在哪个坐标系或者系列上判断』。
     * @param {Array} value - 要被判断的点。
     */
    containPixel: function containPixel(finder, value) {
      return this._delegateMethod('containPixel', finder, value);
    },

    /**
     * 此接口用于，显示加载动画效果。可以在加载数据前手动调用该接口显示加载动画，在数据加载完成后调用 hideLoading 隐藏加载动画。
     * @param {Object} [type] - 可选，加载动画类型，目前只有一种'default'。
     * @param {Object} [options] - 可选，加载动画配置项，跟type有关。
     */
    showLoading: function showLoading(type, options) {
      this._delegateMethod('showLoading', type, options);
    },

    /**
     * 此接口用于，隐藏动画加载效果。
     */
    hideLoading: function hideLoading() {
      this._delegateMethod('hideLoading');
    },

    /**
     * 此接口用于，导出图表图片，返回一个 base64 的 URL，可以设置为Image的src。
     * @param {Object} options - 导出配置
     */
    getDataURL: function getDataURL(options) {
      return this._delegateMethod('getDataURL', options);
    },

    /**
     * 此接口用于，导出联动的图表图片，返回一个 base64 的 url，可以设置为Image的src。导出图片中每个图表的相对位置跟容器的相对位置有关。
     * @param {Object} options - 导出配置
     */
    getConnectedDataURL: function getConnectedDataURL(options) {
      return this._delegateMethod('getConnectedDataURL', options);
    },

    /**
     * 此接口用于，清空当前实例，会移除实例中所有的组件和图表。清空后调用 getOption 方法返回一个{}空对象。
     */
    clear: function clear() {
      this._delegateMethod('clear');
    },

    /**
     * 此接口用于，销毁实例，销毁后实例无法再被使用。
     */
    dispose: function dispose() {
      this._delegateMethod('dispose');
    },
    // 内部调用的方法
    _delegateMethod: function _delegateMethod(name) {
      var _this$smChart;

      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
        args[_key - 1] = arguments[_key];
      }

      return (_this$smChart = this.smChart)[name].apply(_this$smChart, args);
    },
    unSupportedFeatureTip: function unSupportedFeatureTip() {
      // @ts-ignore
      _index.default.destroy(); // @ts-ignore


      _index.default.warning(this.$t('chart.unSupportedData'));
    },
    handleChartClick: function handleChartClick(params) {
      if (this.associatedMap) {
        var dataIndex = params.dataIndex;
        var features = [];

        if (this.echartsDataService && this.echartsDataService.sortDataCache) {
          features = this.echartsDataService.sortDataCache.features || features;
        }

        var selectedFeature = features[dataIndex];
        this.showDetailInfo(selectedFeature);
      }
    },
    showDetailInfo: function showDetailInfo(feature) {
      var _this11 = this;

      var coordinates = ((feature || {}).geometry || {}).coordinates;
      var hasCoordinates = coordinates && !!coordinates.length;

      if (hasCoordinates && this.viewModel) {
        var properties = feature.properties || {};

        var _coordinates = (0, _util.getFeatureCenter)(feature);

        var propsData = this.generateTableData(properties);
        this.tablePopupProps = (0, _extends2.default)({}, propsData);
        this.$nextTick(function () {
          _this11.viewModel.setPopupContent(_coordinates, _this11.$refs.chartTablePopup.$el, function () {
            return (0, _util.setPopupArrowStyle)(_this11.tablePopupBgData);
          });
        });
      } else {
        var mapNotLoaded = this.mapNotLoadedTip();

        if (mapNotLoaded) {
          return;
        }

        if (!hasCoordinates) {
          this.unSupportedFeatureTip();
        }
      }
    },
    generateTableData: function generateTableData(properties) {
      var propsData = {
        columns: [{
          title: this.$t('search.attribute'),
          dataIndex: 'attribute',
          width: 120
        }, {
          title: this.$t('search.attributeValue'),
          dataIndex: 'attributeValue',
          width: 150
        }],
        data: []
      };

      for (var key in properties) {
        if (key && properties[key]) {
          var dataItem = {};
          dataItem.attribute = key;
          dataItem.attributeValue = properties[key];
          propsData.data.push(dataItem);
        }
      }

      return propsData;
    },
    mapNotLoadedTip: function mapNotLoadedTip() {},
    _dataZoomChanged: function _dataZoomChanged() {
      var flag = false;
      this.options.series && this.options.series.forEach(function (serie) {
        var labelConfig = serie.label && serie.label.normal;
        flag = labelConfig.show && labelConfig.smart;
      });

      if (flag) {
        this.echartOptions = this._optionsHandler(this.options, this.dataSeriesCache, true);
      }
    },
    registerShape: function registerShape() {
      var _this12 = this;

      this.datasetOptions && this.options.series && this.datasetOptions.forEach(function (item, index) {
        var graphicIntance = _this12.$options.graphic;

        if (item.seriesType === '2.5Bar') {
          var cubeType = _this12.options.series[index].shape;

          if (graphicIntance.getShapeClass("Cube" + cubeType + "Left")) {
            return;
          }

          var CubeLeft, CubeRight, CubeTop;

          switch (cubeType) {
            case 'square':
              // 绘制左侧面
              CubeLeft = graphicIntance.extendShape({
                shape: {
                  x: 0,
                  y: 0
                },
                buildPath: function buildPath(ctx, shape) {
                  // 会canvas的应该都能看得懂，shape是从custom传入的
                  var xAxisPoint = shape.xAxisPoint;
                  var c0 = [shape.x, shape.y];
                  var c1 = [shape.x - 13, shape.y - 13];
                  var c2 = [xAxisPoint[0] - 13, xAxisPoint[1] - 13];
                  var c3 = [xAxisPoint[0], xAxisPoint[1]];
                  ctx.moveTo(c0[0], c0[1]).lineTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).closePath();
                }
              }); // 绘制右侧面

              CubeRight = graphicIntance.extendShape({
                shape: {
                  x: 0,
                  y: 0
                },
                buildPath: function buildPath(ctx, shape) {
                  var xAxisPoint = shape.xAxisPoint;
                  var c1 = [shape.x, shape.y];
                  var c2 = [xAxisPoint[0], xAxisPoint[1]];
                  var c3 = [xAxisPoint[0] + 18, xAxisPoint[1] - 9];
                  var c4 = [shape.x + 18, shape.y - 9];
                  ctx.moveTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).lineTo(c4[0], c4[1]).closePath();
                }
              }); // 绘制顶面

              CubeTop = graphicIntance.extendShape({
                shape: {
                  x: 0,
                  y: 0
                },
                buildPath: function buildPath(ctx, shape) {
                  var c1 = [shape.x, shape.y];
                  var c2 = [shape.x + 18, shape.y - 9];
                  var c3 = [shape.x + 5, shape.y - 22];
                  var c4 = [shape.x - 13, shape.y - 13];
                  ctx.moveTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).lineTo(c4[0], c4[1]).closePath();
                }
              });
              break;

            case 'rectangle':
              // 绘制左侧面
              CubeLeft = graphicIntance.extendShape({
                shape: {
                  x: 0,
                  y: 0
                },
                buildPath: function buildPath(ctx, shape) {
                  var xAxisPoint = shape.xAxisPoint;
                  var c0 = [shape.x, shape.y];
                  var c1 = [shape.x - 9, shape.y - 9];
                  var c2 = [xAxisPoint[0] - 9, xAxisPoint[1] - 9];
                  var c3 = [xAxisPoint[0], xAxisPoint[1]];
                  ctx.moveTo(c0[0], c0[1]).lineTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).closePath();
                }
              });
              CubeRight = graphicIntance.extendShape({
                shape: {
                  x: 0,
                  y: 0
                },
                buildPath: function buildPath(ctx, shape) {
                  var xAxisPoint = shape.xAxisPoint;
                  var c1 = [shape.x, shape.y];
                  var c2 = [xAxisPoint[0], xAxisPoint[1]];
                  var c3 = [xAxisPoint[0] + 18, xAxisPoint[1] - 9];
                  var c4 = [shape.x + 18, shape.y - 9];
                  ctx.moveTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).lineTo(c4[0], c4[1]).closePath();
                }
              });
              CubeTop = graphicIntance.extendShape({
                shape: {
                  x: 0,
                  y: 0
                },
                buildPath: function buildPath(ctx, shape) {
                  var c1 = [shape.x, shape.y];
                  var c2 = [shape.x + 18, shape.y - 9];
                  var c3 = [shape.x + 9, shape.y - 18];
                  var c4 = [shape.x - 9, shape.y - 9];
                  ctx.moveTo(c1[0], c1[1]).lineTo(c2[0], c2[1]).lineTo(c3[0], c3[1]).lineTo(c4[0], c4[1]).closePath();
                }
              });
              break;
          }

          CubeLeft && graphicIntance.registerShape("Cube" + cubeType + "Left", CubeLeft);
          CubeRight && graphicIntance.registerShape("Cube" + cubeType + "Right", CubeRight);
          CubeTop && graphicIntance.registerShape("Cube" + cubeType + "Top", CubeTop);
        }
      });
    },
    getCirlPoint: function getCirlPoint(x0, y0, r, angle) {
      var x1 = x0 + r * Math.cos(angle * Math.PI / 180);
      var y1 = y0 + r * Math.sin(angle * Math.PI / 180);
      return {
        x: x1,
        y: y1
      };
    },
    spinLine: function spinLine(startAngle, endAngle, angle, effectColor, radius) {
      return function (params, api) {
        return {
          type: 'arc',
          shape: {
            cx: api.getWidth() / 2,
            cy: api.getHeight() / 2,
            r: Math.min(api.getWidth(), api.getHeight()) / 2 * radius,
            startAngle: (startAngle + angle) * Math.PI / 180,
            endAngle: (endAngle + angle) * Math.PI / 180
          },
          style: {
            stroke: effectColor,
            fill: 'transparent',
            lineWidth: 1.5
          },
          silent: true
        };
      };
    },
    spinPoint: function spinPoint(angle, spinAngle, effectColor, radius) {
      var _this13 = this;

      return function (params, api) {
        var x0 = api.getWidth() / 2;
        var y0 = api.getHeight() / 2;
        var r = Math.min(api.getWidth(), api.getHeight()) / 2 * radius;

        var point = _this13.getCirlPoint(x0, y0, r, angle + spinAngle);

        return {
          type: 'circle',
          shape: {
            cx: point.x,
            cy: point.y,
            r: 4
          },
          style: {
            stroke: effectColor,
            fill: effectColor
          },
          silent: true
        };
      };
    },
    customRingsLine: function customRingsLine(startAngle, endAngle, angle, effectColor, effectRadius) {
      var series = {
        name: 'ring0',
        type: 'custom',
        coordinateSystem: 'none',
        renderItem: null,
        data: [0]
      };
      series.renderItem = this.spinLine(startAngle, endAngle, angle, effectColor, effectRadius);
      return series;
    },
    customRingsPoint: function customRingsPoint(startAngle, angle, effectColor, outEffectRadius) {
      var series = {
        name: 'ring4',
        type: 'custom',
        coordinateSystem: 'none',
        renderItem: null,
        data: [0]
      };
      series.renderItem = this.spinPoint(startAngle, angle, effectColor, outEffectRadius);
      return series;
    },
    addEffect: function addEffect(angle) {
      angle = angle || 0;
      var effectColor = this.options.series[0].customOptions.color;
      var effectRadius = this.options.series[0].customOptions.radius;
      var outEffectRadius = effectRadius + 0.1; // customRightBottomLine

      this.customSeries.push(this.customRingsLine(0, 90, angle, effectColor, effectRadius)); // customRightTopLine

      this.customSeries.push(this.customRingsLine(270, 40, -angle, effectColor, outEffectRadius)); // customLeftTopLine

      this.customSeries.push(this.customRingsLine(180, 270, angle, effectColor, effectRadius)); // customLeftBottomLine

      this.customSeries.push(this.customRingsLine(90, 220, -angle, effectColor, outEffectRadius));

      if (this.options.series[0].customOptions.pointState === 'startPoint') {
        this.customSeries.push(this.customRingsPoint(270, -angle, effectColor, outEffectRadius));
        this.customSeries.push(this.customRingsPoint(90, -angle, effectColor, outEffectRadius));
      }
    },
    startEffect: function startEffect() {
      var _this14 = this;

      var angle = 0;
      this.startSpin = setInterval(function () {
        if (!_this14.options.series) {
          return;
        }

        if (_this14.options.series[0].customType === 'customRingsSeries') {
          _this14.customSeries = [];
          angle += 3;

          _this14.addEffect(angle);
        }
      }, 100);
    },
    customRenderItem: function customRenderItem() {}
  },
  // echarts所有静态方法

  /**
   * @function connect
   * 多个图表实例实现联动。
   * @param {string|Array} group - group的id，或者图表实例的数组。
   */
  connect: function connect(group) {
    _vueEcharts.default && _vueEcharts.default.connect(group);
  },

  /**
   * 解除图表实例的联动，如果只需要移除单个实例，可以将通过将该图表实例 group 设为空。
   * @param {string} group - group的id。
   */
  disconnect: function disconnect(group) {
    _vueEcharts.default && _vueEcharts.default.disConnect(group);
  },

  /**
   * 注册可用的地图，必须在包括 geo 组件或者 map 图表类型的时候才能使用。
   * @param {string} mapName - 地图名称，在 geo 组件或者 map 图表类型中设置的 map 对应的就是该值。
   * @param {Object} geoJSON - GeoJson 格式的数据，具体格式见 http://geojson.org/。
   * @param {Object} [specialAreas] - 可选。将地图中的部分区域缩放到合适的位置，可以使得整个地图的显示更加好看。
   */
  registerMap: function registerMap(mapName, geoJSON, specialAreas) {
    _vueEcharts.default && _vueEcharts.default.registerMap(mapName, geoJSON, specialAreas);
  },

  /**
   * 注册主题，用于初始化实例的时候指定。
   * @param {string} name - 主题命名。
   * @param {Object} theme - 主题配置。
   */
  registerTheme: function registerTheme(name, theme) {
    _vueEcharts.default && _vueEcharts.default.registerTheme(name, theme);
  },

  /**
   * @desc 图形相关帮助方法。
   */
  graphic: _vueEcharts.default && _vueEcharts.default.graphic
};
exports.default = _default2;

/***/ }),

/***/ 23:
/***/ (function(module, exports) {

module.exports = require("resize-detector");

/***/ }),

/***/ 235:
/***/ (function(module, exports) {

module.exports = require("echarts");

/***/ }),

/***/ 24:
/***/ (function(module, exports) {

module.exports = require("lodash.debounce");

/***/ }),

/***/ 240:
/***/ (function(module, exports) {

module.exports = require("@supermap/vue-iclient-leaflet/lib/_mixin/Card.js");

/***/ }),

/***/ 25:
/***/ (function(module, exports) {

module.exports = require("@supermap/vue-iclient-leaflet/lib/_mixin/Timer.js");

/***/ }),

/***/ 274:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ render; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ staticRenderFns; });

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/common/chart/ChartMixin.vue?vue&type=template&id=0b8a7fe2&
var render = function () {
  var _vm = this
  var _h = _vm.$createElement
  var _c = _vm._self._c || _h
  return _c(
    "sm-collapse-card",
    {
      directives: [
        {
          name: "show",
          rawName: "v-show",
          value: _vm.isShow,
          expression: "isShow",
        },
      ],
      staticClass: "sm-component-chart",
      attrs: {
        "icon-class": _vm.iconClass,
        "icon-position": _vm.position,
        "header-name": _vm.headerName,
        "auto-rotate": _vm.autoRotate,
        collapsed: _vm.collapsed,
        "split-line": _vm.splitLine,
      },
    },
    [
      _c("v-chart", {
        ref: _vm.chartId,
        style: _vm._chartStyle,
        attrs: {
          id: _vm.chartId,
          options: _vm._chartOptions,
          initOptions: _vm.initOptions,
          group: _vm.group,
          "manual-update": _vm.manualUpdate,
          theme: _vm.theme || _vm.chartTheme,
        },
        on: { datazoom: _vm.dataZoomHandler },
      }),
      _c(
        "TablePopup",
        _vm._b(
          {
            directives: [
              {
                name: "show",
                rawName: "v-show",
                value: false,
                expression: "false",
              },
            ],
            ref: "chartTablePopup",
            attrs: {
              "split-line": _vm.splitLine,
              "text-color": _vm.textColor,
              background: _vm.background,
            },
          },
          "TablePopup",
          _vm.tablePopupProps,
          false
        )
      ),
    ],
    1
  )
}
var staticRenderFns = []
render._withStripped = true


// CONCATENATED MODULE: ./src/common/chart/ChartMixin.vue?vue&type=template&id=0b8a7fe2&


/***/ }),

/***/ 28:
/***/ (function(module, exports) {

module.exports = require("@supermap/vue-iclient-leaflet/lib/_mixin/map-getter.js");

/***/ }),

/***/ 29:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__(0);

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _leaflet = _interopRequireDefault(__webpack_require__(19));

// @property lastId: Number
// Last unique ID used by [`stamp()`](#util-stamp)
var lastId = 0; // @function stamp(obj: Object): Number
// Returns the unique ID of an object, assigning it one if it doesn't have it.

function stamp(obj) {
  /*eslint-disable */
  obj._leaflet_id = obj._leaflet_id || ++lastId;
  return obj._leaflet_id;
  /* eslint-enable */
}

_leaflet.default.Map.prototype.addLayer = function (layer, name) {
  if (!layer._layerAdd) {
    throw new Error('The provided object is not a Layer.');
  }

  var id = stamp(layer); // 如果layer已存在，返回this

  if (this._layers[id] || this._layers[name]) {
    return this;
  } // 如果用户没有传入name，就生成一个name


  if (!name) {
    name = 'sm-custom' + id;
  } // 如果该name已存在，就生成新的name


  if (this._layers[name]) {
    this.fire('addLayerFailed', 'layer name重复,请输入唯一的name');
    return this;
  } // 将layer和name添加到layersOnMap


  layer.name = name; // 不要将featureLayer加入layersOnMap
  // let _layersId = {};
  // for (let key in this._layers) {
  //   if (this._layers[key]._layers) {
  //     _layersId[key] = [];
  //     for (let key2 in this._layers[key]._layers) {
  //       _layersId[key].push(key2);
  //     }
  //   }
  // }
  // let layersOnMapFlag = true;
  // for (let key in _layersId) {
  //   if (_layersId[key].indexOf(id + '') > -1) {
  //     layersOnMapFlag = false;
  //   }
  // }

  if (!this.layersOnMap) {
    this.layersOnMap = [];
  }

  this.layersOnMap.push({
    name: name,
    layer: layer
  }); // if (layersOnMapFlag) {
  //   this.layersOnMap.push({ name, layer });
  // }

  this._layers[id] = layer;
  layer._mapToAdd = this;

  if (layer.beforeAdd) {
    layer.beforeAdd(this);
  }

  this.whenReady(layer._layerAdd, layer);
  return this;
};

_leaflet.default.Map.prototype.removeLayer = function (layer, name) {
  // 重新构造layersOnMap
  this.layersOnMap = this.layersOnMap.filter(function (l) {
    return l.name !== (layer.name || name);
  }); // 如果是传入图层，就用图层id; 如果传入name,通过name去获取图层id

  var id = stamp(layer) || this._layers[name].id;

  if (!this._layers[id]) {
    return this;
  }

  if (this._loaded) {
    layer.onRemove(this);
  }

  if (layer.getAttribution && this.attributionControl) {
    this.attributionControl.removeAttribution(layer.getAttribution());
  }

  delete this._layers[id];

  if (this._loaded) {
    this.fire('layerremove', {
      layer: layer,
      name: name
    });
    layer.fire('remove');
  }

  layer._map = layer._mapToAdd = null;
  return this;
};

_leaflet.default.Map.include({
  getLayersOnMap: function getLayersOnMap() {
    return this.layersOnMap;
  },
  getLayerById: function getLayerById(id) {
    return this._layers[id];
  },
  getLayerByName: function getLayerByName(name) {
    for (var key in this._layers) {
      if (name === this._layers[key].name) {
        return this._layers[key];
      }
    }
  },
  getAllLayers: function getAllLayers() {
    return this._layers;
  }
});

delete _leaflet.default.Icon.Default.prototype._getIconUrl;

_leaflet.default.Icon.Default.mergeOptions({
  iconRetinaUrl: __webpack_require__(30),
  iconUrl: __webpack_require__(31),
  shadowUrl: __webpack_require__(32)
});

window.L = _leaflet.default;
var _default = _leaflet.default;
exports.default = _default;

/***/ }),

/***/ 3:
/***/ (function(module, exports) {

module.exports = require("@supermap/vue-iclient-leaflet/lib/init.js");

/***/ }),

/***/ 30:
/***/ (function(module, exports) {

module.exports = require("leaflet/dist/images/marker-icon-2x.png");

/***/ }),

/***/ 31:
/***/ (function(module, exports) {

module.exports = require("leaflet/dist/images/marker-icon.png");

/***/ }),

/***/ 32:
/***/ (function(module, exports) {

module.exports = require("leaflet/dist/images/marker-shadow.png");

/***/ }),

/***/ 33:
/***/ (function(module, exports) {

module.exports = require("@supermap/vue-iclient-leaflet/static/libs/iclient-leaflet/iclient-leaflet.min.js");

/***/ }),

/***/ 43:
/***/ (function(module, exports) {

module.exports = require("lodash.isequal");

/***/ }),

/***/ 490:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__(0);

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _Chart = _interopRequireDefault(__webpack_require__(491));

var _init = _interopRequireDefault(__webpack_require__(3));

_Chart.default.install = function (Vue, opts) {
  (0, _init.default)(Vue, opts);
  Vue.component(_Chart.default.options ? _Chart.default.options.name : _Chart.default.name, _Chart.default);
};

var _default = _Chart.default;
exports.default = _default;

/***/ }),

/***/ 491:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Chart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(221);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Chart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Chart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
var render, staticRenderFns




/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(
  _Chart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"],
  render,
  staticRenderFns,
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "src/leaflet/chart/Chart.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ 492:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _ChartMixin_vue_vue_type_template_id_0b8a7fe2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(274);
/* harmony import */ var _ChartMixin_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(223);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _ChartMixin_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _ChartMixin_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1);





/* normalize component */

var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(
  _ChartMixin_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
  _ChartMixin_vue_vue_type_template_id_0b8a7fe2___WEBPACK_IMPORTED_MODULE_0__[/* render */ "a"],
  _ChartMixin_vue_vue_type_template_id_0b8a7fe2___WEBPACK_IMPORTED_MODULE_0__[/* staticRenderFns */ "b"],
  false,
  null,
  null,
  null
  
)

/* hot reload */
if (false) { var api; }
component.options.__file = "src/common/chart/ChartMixin.vue"
/* harmony default export */ __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ 493:
/***/ (function(module, exports) {

module.exports = require("lodash.merge");

/***/ }),

/***/ 494:
/***/ (function(module, exports) {

module.exports = require("@supermap/vue-iclient-leaflet/lib/_utils/style/theme/chart.js");

/***/ }),

/***/ 495:
/***/ (function(module, exports) {

module.exports = require("@supermap/vue-iclient-leaflet/lib/_utils/EchartsDataService.js");

/***/ }),

/***/ 496:
/***/ (function(module, exports) {

module.exports = require("@supermap/vue-iclient-leaflet/lib/table-popup");

/***/ }),

/***/ 497:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__(0);

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _inheritsLoose2 = _interopRequireDefault(__webpack_require__(6));

var _leafletWrapper = _interopRequireDefault(__webpack_require__(29));

var ChartViewModel = /*#__PURE__*/function (_L$Evented) {
  (0, _inheritsLoose2.default)(ChartViewModel, _L$Evented);

  function ChartViewModel(map, options) {
    var _this;

    _this = _L$Evented.call(this, null) || this;
    _this.map = map;
    _this.options = options;
    return _this;
  }

  var _proto = ChartViewModel.prototype;

  _proto.setPopupContent = function setPopupContent(coordinates, popupContainer, callback) {
    this.clear();

    var fromatCoordinates = _leafletWrapper.default.GeoJSON.coordsToLatLng(coordinates);

    popupContainer.style.display = 'block';
    this.popup = new _leafletWrapper.default.Popup({
      className: 'sm-leaflet-tabel-popup sm-component-chart-result-popup',
      closeOnClick: true,
      maxWidth: 800
    });
    this.marker = new _leafletWrapper.default.Marker();
    this.popup.setLatLng(fromatCoordinates).setContent(popupContainer);
    this.map.on('popupopen', function () {
      callback && callback();
    });
    this.marker.setLatLng(fromatCoordinates).bindPopup(this.popup).addTo(this.map);
    this.map.flyTo(fromatCoordinates);
  };

  _proto.clear = function clear() {
    if (this.popup) {
      this.popup.remove();
      this.popup = null;
    }

    if (this.marker) {
      this.marker.remove();
      this.marker = null;
    }

    if (this.map) {
      this.map.off('popupopen', function () {});
    }
  };

  return ChartViewModel;
}(_leafletWrapper.default.Evented);

exports.default = ChartViewModel;

/***/ }),

/***/ 51:
/***/ (function(module, exports) {

module.exports = require("vue-echarts");

/***/ }),

/***/ 6:
/***/ (function(module, exports) {

module.exports = require("@babel/runtime/helpers/inheritsLoose");

/***/ }),

/***/ 9:
/***/ (function(module, exports) {

module.exports = require("@supermap/vue-iclient-leaflet/lib/_utils/util.js");

/***/ })

/******/ });