"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[42441],{ /***/ 97774: /*!******************************************************************************!*\ !*** ./node_modules/_echarts-for-react@2.0.16@echarts-for-react/lib/core.js ***! \******************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = __webpack_require__(/*! react */ 59301); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(/*! prop-types */ 12708); var _propTypes2 = _interopRequireDefault(_propTypes); var _fastDeepEqual = __webpack_require__(/*! fast-deep-equal */ 53291); var _fastDeepEqual2 = _interopRequireDefault(_fastDeepEqual); var _sizeSensor = __webpack_require__(/*! size-sensor */ 10413); var _utils = __webpack_require__(/*! ./utils */ 65429); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var EchartsReactCore = function (_Component) { _inherits(EchartsReactCore, _Component); function EchartsReactCore(props) { _classCallCheck(this, EchartsReactCore); var _this = _possibleConstructorReturn(this, (EchartsReactCore.__proto__ || Object.getPrototypeOf(EchartsReactCore)).call(this, props)); _this.getEchartsInstance = function () { return _this.echartsLib.getInstanceByDom(_this.echartsElement) || _this.echartsLib.init(_this.echartsElement, _this.props.theme, _this.props.opts); }; _this.dispose = function () { if (_this.echartsElement) { try { (0, _sizeSensor.clear)(_this.echartsElement); } catch (e) { console.warn(e); } // dispose echarts instance _this.echartsLib.dispose(_this.echartsElement); } }; _this.rerender = function () { var _this$props = _this.props, onEvents = _this$props.onEvents, onChartReady = _this$props.onChartReady; var echartObj = _this.renderEchartDom(); _this.bindEvents(echartObj, onEvents || {}); // on chart ready if (typeof onChartReady === 'function') _this.props.onChartReady(echartObj); // on resize if (_this.echartsElement) { (0, _sizeSensor.bind)(_this.echartsElement, function () { try { echartObj.resize(); } catch (e) { console.warn(e); } }); } }; _this.bindEvents = function (instance, events) { var _bindEvent = function _bindEvent(eventName, func) { // ignore the event config which not satisfy if (typeof eventName === 'string' && typeof func === 'function') { // binding event // instance.off(eventName); // 已经 dispose 在重建,所以无需 off 操作 instance.on(eventName, function (param) { func(param, instance); }); } }; // loop and bind for (var eventName in events) { if (Object.prototype.hasOwnProperty.call(events, eventName)) { _bindEvent(eventName, events[eventName]); } } }; _this.renderEchartDom = function () { // init the echart object var echartObj = _this.getEchartsInstance(); // set the echart option echartObj.setOption(_this.props.option, _this.props.notMerge || false, _this.props.lazyUpdate || false); // set loading mask if (_this.props.showLoading) echartObj.showLoading(_this.props.loadingOption || null);else echartObj.hideLoading(); return echartObj; }; _this.echartsLib = props.echarts; // the echarts object. _this.echartsElement = null; // echarts div element return _this; } // first add _createClass(EchartsReactCore, [{ key: 'componentDidMount', value: function componentDidMount() { this.rerender(); } // update }, { key: 'componentDidUpdate', value: function componentDidUpdate(prevProps) { // 判断是否需要 setOption,由开发者自己来确定。默认为 true if (typeof this.props.shouldSetOption === 'function' && !this.props.shouldSetOption(prevProps, this.props)) { return; } // 以下属性修改的时候,需要 dispose 之后再新建 // 1. 切换 theme 的时候 // 2. 修改 opts 的时候 // 3. 修改 onEvents 的时候,这样可以取消所有之前绑定的事件 issue #151 if (!(0, _fastDeepEqual2['default'])(prevProps.theme, this.props.theme) || !(0, _fastDeepEqual2['default'])(prevProps.opts, this.props.opts) || !(0, _fastDeepEqual2['default'])(prevProps.onEvents, this.props.onEvents)) { this.dispose(); this.rerender(); // 重建 return; } // 当这些属性保持不变的时候,不 setOption var pickKeys = ['option', 'notMerge', 'lazyUpdate', 'showLoading', 'loadingOption']; if ((0, _fastDeepEqual2['default'])((0, _utils.pick)(this.props, pickKeys), (0, _utils.pick)(prevProps, pickKeys))) { return; } var echartObj = this.renderEchartDom(); // 样式修改的时候,可能会导致大小变化,所以触发一下 resize if (!(0, _fastDeepEqual2['default'])(prevProps.style, this.props.style) || !(0, _fastDeepEqual2['default'])(prevProps.className, this.props.className)) { try { echartObj.resize(); } catch (e) { console.warn(e); } } } // remove }, { key: 'componentWillUnmount', value: function componentWillUnmount() { this.dispose(); } // return the echart object // dispose echarts and clear size-sensor // bind the events // render the dom }, { key: 'render', value: function render() { var _this2 = this; var _props = this.props, style = _props.style, className = _props.className; var newStyle = _extends({ height: 300 }, style); // for render return _react2['default'].createElement('div', { ref: function ref(e) { _this2.echartsElement = e; }, style: newStyle, className: 'echarts-for-react ' + className }); } }]); return EchartsReactCore; }(_react.Component); exports["default"] = EchartsReactCore; EchartsReactCore.propTypes = { option: _propTypes2['default'].object.isRequired, // eslint-disable-line react/forbid-prop-types echarts: _propTypes2['default'].object, // eslint-disable-line react/forbid-prop-types notMerge: _propTypes2['default'].bool, lazyUpdate: _propTypes2['default'].bool, style: _propTypes2['default'].object, // eslint-disable-line react/forbid-prop-types className: _propTypes2['default'].string, theme: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].object]), onChartReady: _propTypes2['default'].func, showLoading: _propTypes2['default'].bool, loadingOption: _propTypes2['default'].object, // eslint-disable-line react/forbid-prop-types onEvents: _propTypes2['default'].object, // eslint-disable-line react/forbid-prop-types opts: _propTypes2['default'].shape({ devicePixelRatio: _propTypes2['default'].number, renderer: _propTypes2['default'].oneOf(['canvas', 'svg']), width: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].oneOf([null, undefined, 'auto'])]), height: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].oneOf([null, undefined, 'auto'])]) }), shouldSetOption: _propTypes2['default'].func }; EchartsReactCore.defaultProps = { echarts: {}, notMerge: false, lazyUpdate: false, style: {}, className: '', theme: null, onChartReady: function onChartReady() {}, showLoading: false, loadingOption: null, onEvents: {}, opts: {}, shouldSetOption: function shouldSetOption() { return true; } }; /***/ }), /***/ 42441: /*!*******************************************************************************!*\ !*** ./node_modules/_echarts-for-react@2.0.16@echarts-for-react/lib/index.js ***! \*******************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { var __webpack_unused_export__; __webpack_unused_export__ = ({ value: true }); exports.Z = undefined; var _echarts = __webpack_require__(/*! echarts */ 76411); var _echarts2 = _interopRequireDefault(_echarts); var _core = __webpack_require__(/*! ./core */ 97774); var _core2 = _interopRequireDefault(_core); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // export the Component the echarts Object. var EchartsReact = function (_EchartsReactCore) { _inherits(EchartsReact, _EchartsReactCore); function EchartsReact(props) { _classCallCheck(this, EchartsReact); var _this = _possibleConstructorReturn(this, (EchartsReact.__proto__ || Object.getPrototypeOf(EchartsReact)).call(this, props)); _this.echartsLib = _echarts2['default']; return _this; } return EchartsReact; }(_core2['default']); exports.Z = EchartsReact; /***/ }), /***/ 65429: /*!*******************************************************************************!*\ !*** ./node_modules/_echarts-for-react@2.0.16@echarts-for-react/lib/utils.js ***! \*******************************************************************************/ /***/ (function(__unused_webpack_module, exports) { Object.defineProperty(exports, "__esModule", ({ value: true })); /* eslint-disable import/prefer-default-export */ var pick = exports.pick = function pick(obj, keys) { var r = {}; keys.forEach(function (key) { r[key] = obj[key]; }); return r; }; /***/ }), /***/ 53291: /*!**********************************************************************!*\ !*** ./node_modules/_fast-deep-equal@2.0.1@fast-deep-equal/index.js ***! \**********************************************************************/ /***/ (function(module) { var isArray = Array.isArray; var keyList = Object.keys; var hasProp = Object.prototype.hasOwnProperty; module.exports = function equal(a, b) { if (a === b) return true; if (a && b && typeof a == 'object' && typeof b == 'object') { var arrA = isArray(a) , arrB = isArray(b) , i , length , key; if (arrA && arrB) { length = a.length; if (length != b.length) return false; for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false; return true; } if (arrA != arrB) return false; var dateA = a instanceof Date , dateB = b instanceof Date; if (dateA != dateB) return false; if (dateA && dateB) return a.getTime() == b.getTime(); var regexpA = a instanceof RegExp , regexpB = b instanceof RegExp; if (regexpA != regexpB) return false; if (regexpA && regexpB) return a.toString() == b.toString(); var keys = keyList(a); length = keys.length; if (length !== keyList(b).length) return false; for (i = length; i-- !== 0;) if (!hasProp.call(b, keys[i])) return false; for (i = length; i-- !== 0;) { key = keys[i]; if (!equal(a[key], b[key])) return false; } return true; } return a!==a && b!==b; }; /***/ }), /***/ 62752: /*!*********************************************************************!*\ !*** ./node_modules/_size-sensor@1.0.3@size-sensor/lib/constant.js ***! \*********************************************************************/ /***/ (function(__unused_webpack_module, exports) { Object.defineProperty(exports, "__esModule", ({ value: true })); exports.SizeSensorId = exports.SensorTabIndex = exports.SensorClassName = void 0; /** * Created by hustcc on 18/6/9. * Contract: i@hust.cc */ var SizeSensorId = exports.SizeSensorId = 'size-sensor-id'; var SensorClassName = exports.SensorClassName = 'size-sensor-object'; var SensorTabIndex = exports.SensorTabIndex = '-1'; /***/ }), /***/ 25224: /*!*********************************************************************!*\ !*** ./node_modules/_size-sensor@1.0.3@size-sensor/lib/debounce.js ***! \*********************************************************************/ /***/ (function(__unused_webpack_module, exports) { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; /** * Created by hustcc on 18/6/9. * Contract: i@hust.cc */ var _default = exports["default"] = function _default(fn) { var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 60; var timer = null; return function () { var _this = this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } clearTimeout(timer); timer = setTimeout(function () { fn.apply(_this, args); }, delay); }; }; /***/ }), /***/ 82196: /*!***************************************************************!*\ !*** ./node_modules/_size-sensor@1.0.3@size-sensor/lib/id.js ***! \***************************************************************/ /***/ (function(__unused_webpack_module, exports) { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; /** * Created by hustcc on 18/6/9. * Contract: i@hust.cc */ var id = 1; /** * generate unique id in application * @return {string} */ var _default = exports["default"] = function _default() { return "".concat(id++); }; /***/ }), /***/ 10413: /*!******************************************************************!*\ !*** ./node_modules/_size-sensor@1.0.3@size-sensor/lib/index.js ***! \******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", ({ value: true })); exports.ver = exports.clear = exports.bind = void 0; var _sensorPool = __webpack_require__(/*! ./sensorPool */ 2963); /** * Created by hustcc on 18/6/9.[高考时间] * Contract: i@hust.cc */ /** * bind an element with resize callback function * @param {*} element * @param {*} cb */ var bind = exports.bind = function bind(element, cb) { var sensor = (0, _sensorPool.getSensor)(element); // listen with callback sensor.bind(cb); // return unbind function return function () { sensor.unbind(cb); }; }; /** * clear all the listener and sensor of an element * @param element */ var clear = exports.clear = function clear(element) { var sensor = (0, _sensorPool.getSensor)(element); (0, _sensorPool.removeSensor)(sensor); }; var ver = exports.ver = "1.0.3"; /***/ }), /***/ 2963: /*!***********************************************************************!*\ !*** ./node_modules/_size-sensor@1.0.3@size-sensor/lib/sensorPool.js ***! \***********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", ({ value: true })); exports.removeSensor = exports.getSensor = exports.Sensors = void 0; var _id = _interopRequireDefault(__webpack_require__(/*! ./id */ 82196)); var _sensors = __webpack_require__(/*! ./sensors */ 42065); var _constant = __webpack_require__(/*! ./constant */ 62752); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } /** * Created by hustcc on 18/6/9. * Contract: i@hust.cc */ /** * all the sensor objects. * sensor pool */ var Sensors = exports.Sensors = {}; /** * When destroy the sensor, remove it from the pool */ function clean(sensorId) { // exist, then remove from pool if (sensorId && Sensors[sensorId]) { delete Sensors[sensorId]; } } /** * get one sensor * @param element * @returns {*} */ var getSensor = exports.getSensor = function getSensor(element) { var sensorId = element.getAttribute(_constant.SizeSensorId); // 1. if the sensor exists, then use it if (sensorId && Sensors[sensorId]) { return Sensors[sensorId]; } // 2. not exist, then create one var newId = (0, _id["default"])(); element.setAttribute(_constant.SizeSensorId, newId); var sensor = (0, _sensors.createSensor)(element, function () { return clean(newId); }); // add sensor into pool Sensors[newId] = sensor; return sensor; }; /** * 移除 sensor * @param sensor */ var removeSensor = exports.removeSensor = function removeSensor(sensor) { var sensorId = sensor.element.getAttribute(_constant.SizeSensorId); // remove event, dom of the sensor used sensor.destroy(); clean(sensorId); }; /***/ }), /***/ 42065: /*!**************************************************************************!*\ !*** ./node_modules/_size-sensor@1.0.3@size-sensor/lib/sensors/index.js ***! \**************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", ({ value: true })); exports.createSensor = void 0; var _object = __webpack_require__(/*! ./object */ 38132); var _resizeObserver = __webpack_require__(/*! ./resizeObserver */ 38950); /** * Created by hustcc on 18/7/5. * Contract: i@hust.cc */ /** * sensor strategies */ // export const createSensor = createObjectSensor; var createSensor = exports.createSensor = typeof ResizeObserver !== 'undefined' ? _resizeObserver.createSensor : _object.createSensor; /***/ }), /***/ 38132: /*!***************************************************************************!*\ !*** ./node_modules/_size-sensor@1.0.3@size-sensor/lib/sensors/object.js ***! \***************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", ({ value: true })); exports.createSensor = void 0; var _debounce = _interopRequireDefault(__webpack_require__(/*! ../debounce */ 25224)); var _constant = __webpack_require__(/*! ../constant */ 62752); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } /** * Created by hustcc on 18/6/9. * Contract: i@hust.cc */ var createSensor = exports.createSensor = function createSensor(element, whenDestroy) { var sensor = undefined; // callback var listeners = []; /** * create object DOM of sensor * @returns {HTMLObjectElement} */ var newSensor = function newSensor() { // adjust style if (getComputedStyle(element).position === 'static') { element.style.position = 'relative'; } var obj = document.createElement('object'); obj.onload = function () { obj.contentDocument.defaultView.addEventListener('resize', resizeListener); // 直接触发一次 resize resizeListener(); }; obj.style.display = 'block'; obj.style.position = 'absolute'; obj.style.top = '0'; obj.style.left = '0'; obj.style.height = '100%'; obj.style.width = '100%'; obj.style.overflow = 'hidden'; obj.style.pointerEvents = 'none'; obj.style.zIndex = '-1'; obj.style.opacity = '0'; obj.setAttribute('class', _constant.SensorClassName); obj.setAttribute('tabindex', _constant.SensorTabIndex); obj.type = 'text/html'; // append into dom element.appendChild(obj); // for ie, should set data attribute delay, or will be white screen obj.data = 'about:blank'; return obj; }; /** * trigger listeners */ var resizeListener = (0, _debounce["default"])(function () { // trigger all listener listeners.forEach(function (listener) { listener(element); }); }); /** * listen with one callback function * @param cb */ var bind = function bind(cb) { // if not exist sensor, then create one if (!sensor) { sensor = newSensor(); } if (listeners.indexOf(cb) === -1) { listeners.push(cb); } }; /** * destroy all */ var destroy = function destroy() { if (sensor && sensor.parentNode) { if (sensor.contentDocument) { // remote event sensor.contentDocument.defaultView.removeEventListener('resize', resizeListener); } // remove dom sensor.parentNode.removeChild(sensor); // initial variable element.removeAttribute(_constant.SizeSensorId); sensor = undefined; listeners = []; whenDestroy && whenDestroy(); } }; /** * cancel listener bind * @param cb */ var unbind = function unbind(cb) { var idx = listeners.indexOf(cb); if (idx !== -1) { listeners.splice(idx, 1); } // no listener, and sensor is exist // then destroy the sensor if (listeners.length === 0 && sensor) { destroy(); } }; return { element: element, bind: bind, destroy: destroy, unbind: unbind }; }; /***/ }), /***/ 38950: /*!***********************************************************************************!*\ !*** ./node_modules/_size-sensor@1.0.3@size-sensor/lib/sensors/resizeObserver.js ***! \***********************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { Object.defineProperty(exports, "__esModule", ({ value: true })); exports.createSensor = void 0; var _constant = __webpack_require__(/*! ../constant */ 62752); var _debounce = _interopRequireDefault(__webpack_require__(/*! ../debounce */ 25224)); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } /** * Created by hustcc on 18/7/5. * Contract: i@hust.cc */ var createSensor = exports.createSensor = function createSensor(element, whenDestroy) { var sensor = undefined; // callback var listeners = []; /** * trigger listeners */ var resizeListener = (0, _debounce["default"])(function () { // trigger all listeners.forEach(function (listener) { listener(element); }); }); /** * create ResizeObserver sensor * @returns */ var newSensor = function newSensor() { var s = new ResizeObserver(resizeListener); // listen element s.observe(element); // trigger once resizeListener(); return s; }; /** * listen with callback * @param cb */ var bind = function bind(cb) { if (!sensor) { sensor = newSensor(); } if (listeners.indexOf(cb) === -1) { listeners.push(cb); } }; /** * destroy */ var destroy = function destroy() { if (sensor) { sensor.disconnect(); } listeners = []; sensor = undefined; element.removeAttribute(_constant.SizeSensorId); whenDestroy && whenDestroy(); }; /** * cancel bind * @param cb */ var unbind = function unbind(cb) { var idx = listeners.indexOf(cb); if (idx !== -1) { listeners.splice(idx, 1); } // no listener, and sensor is exist // then destroy the sensor if (listeners.length === 0 && sensor) { destroy(); } }; return { element: element, bind: bind, destroy: destroy, unbind: unbind }; }; /***/ }) }]);